Google'dan yeni bir sistem programlama dili: Go

0
gismo

Görüşler

0
auselen
Niye C++'a rakip oluyormuş ki? :)
0
Tarık
Windows vs. platform için kararlı derleyiciler üretilirse gayet rakip olur aslında, afiyetle de kullanırız. Kıçı kırık iki sql sorgusu için onlarca megabyte ramin canını alıp, sistemi kanser eden dillere benzemesin yeter :)
0
auselen
para verip aldığın ram ile programcının saatine ödediğin parayı karşılaştır :)
0
Tarık
ramlere vereceğim paralarla köyüme gidip, jscript+php le istisnasız heryerde çalışacak ultra hafif kodlar kassam? :)
0
auselen
içimden şunun gibi bir cevap geçiyor;

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
0
FZ
Saygi duydum.
0
auselen
"You will never make me crack."

hehe...
0
Tarık
perl, python, ruby, etc...
0
roktas
efsane geri dönüyor galiba...
0
roktas
plan9 yani...

http://vistasmalltalk.wordpress.com/2007/03/02/google-limbo-inferno-and-plan-9/
0
FZ
2020 yılında bilgisayar işi ile uğraşanların nasıl bir ortamda çalışıyor olacaklarını tahmin etmekte iyice güçlük çekmeye başladım. Gerçekten de önümüzdeki yıllar ciddi sürprizlere gebe sanırım.
0
tongucyumruk
"safety of a compiled language like C or C++." Hahahaha... Göbeğimi hoplata hoplata gülüyorum. İlgilenenler için: http://en.wikipedia.org/wiki/Type_safety

Şaka bir yana, sistem programlama dili ile tam olarak ne kastedildiğini merak ettim. Go'nun web sitesi veya dökümantasyonunda sistem programlama gibi bir hedefe ilişkin hiçbirşey yazmıyor.

Eğer sistem programlamadan kasıt işletim sistemi yazmak gibi işler ise genellikle daha alt seviye (misal C) diller hala tercih sebebi. Bunun da temelnde bu dillerin bellek öynetimi gibi kritik konularda programcıya tam bir hakimiyet sunması.

Go'nun asıl parlayacağı nokta Google'ın da birincil ilgi alanı olan paralel programlama gibi gözüküyor. Paralellik kavramı dilin içinde CSP tekniğini merkez alır bir biçimde yerleşmiş. Bu da Go'nun ile geliştirilen uygulamaların sisteminizdeki her çekirdekten sonuna kadar faydalanacağı izlenimini uyandırıyor.

İlgilenenler için:
http://www.usingcsp.com/cspbook.pdf
http://www.usingcsp.com/

Bir de aynı deerecede paralelizm sağlayabilen, gerçekten Type safe bir dil için:
http://www.cs.kent.ac.uk/projects/ofa/chp/
0
auselen
safety: orada çok gülünecek birşey yok aslında, neyi neyle karşılaştırdığınız önemli.

Buradaki (http://www.youtube.com/watch?v=rKnDgT73v8s) videoda Rob Pike bir çok noktayı açıklamaya çalışıyor. Sistem programlamaya örnek olarak mesela 'web server' deniyor.

Internette 'System Software Research is Irrelevant' diye arattığınızda (fm'de daha öncede bahsettiğimiz) Rob Pike'ın bu dille 10 sene önceki sıkıntısını çözmeye çalıştığını da görüyoruz.
(Bu konuyla ilgili Rob Pike'ın youtube'da bir videosu vardı 1-2 sene önce google'a katıldıktan sonra yaptığı bir sunum. Orada neler üzerinde çalışma yapılması gerektiğini düşündüğünü söylüyordu.)

Bence tam da yapılmaya çalışılan yeni 'C'. Videoyu dinlerseniz artık bellek yönetiminin artık lafı edilecek bir konu olmadığı vurgulanıyor. Bunu bugün itibariyle de düşünmek yanlış olur, bu dil düne, bugüne değil yarına göre tasarlanıyor. Bellek yönetimi özellikle garbage collection konusunda bir çok yapılmış çalışma var. Açıkçası teorik olarak bellek yönetimini programlama dili (+runtime) programcıdan daha iyi yapabilir.

Paralellik konusunda katılıyorum, ama yukarıda bulamadığımdan bahsettiğim video neredeyse tamamiyle bu konu üzerineydi. Temel olarak paralel programlamayı başka şekillerde yapmayı araştırmamız gerektiğini - ve kendi önerdiği methodu (goroutine oldu herhalde şimdi) anlatıyordu.

Go'yu tanıtan video'da yapılan demoda bir amacında programların hızlı derlenip birleştirilmesi gerektiğini ve bunun başarıldığını gösteriyordu. Linux'u hızlı derlediğinizi düşünsenize, tadından yenmez herhalde. Benim çalıştığımı projelerde son imajın oluşması 1 saat 20 dakkayı bulabiliyor ve C derleyicisinin çıktılarını seyretmeyi hiç de seksi bulmuyorum. Bir hedef olarak geliştirilen programlama diline bunun bir kısıt olarak konması çok güzel.

Go ile yapılan çalışma oldukça güzel, Ken Thompson'ın da bir süredi Google'da çalıştığını böylece öğrenmiş olduk. Bildiğiniz gibi kendisi Unix'in gerçekten babası. Google çeteye Dennis Ritchie ile Brian Kernighan'ı da katsaydı artık nolurdu bilemiyorum. Google'ın neredeyse yeni Bell lab. olması bilgisayar dünyası için sanırım oldukça iyi olacak.

Beni acaip rahatsız eden şey dilin syntax'ı oldu. if'in etrafındaki parantezlerin kaldırılmasından diğer bir çok kolaylığa kadar... Sanırım hakikatten dilin oldukça basit olmasını istiyorlar ama ben şahsen herşeyin etrafına parantez koyan biri olarak düz yazıyı kafamda çözmekte (parse) zorlanıyorum.

Python ile ilginç bir ayrıntı da var golang ile ortaya çıkan: http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e?pli=1 . Görünüşe bakılırsa, Google python kullanımını azaltmaya çalışıyor.
0
Tarık
maalesef, bellek yönetimi daha çok uzun seneler lafı edilecek bir konu. açıkçası ileriki 10 sene içerisinde de yazılımın, işini iyi bilen bir programcıdan daha iyi bellek yönetimi yapacağını düşünmüyorum.
0
roktas
meseleyi güzel özetlemişsiniz. linkini verdiğiniz vidyo çok önemli. aldığım rastgele notlar:

- rob pike'ın bellek yönetimi konusunda yaptığı vurgular var. şimdilik basit bir "mark 'n sweep" kullanıyorlar fakat (yanlış aklımda kalmadıysa) IBM'in geliştirdiği bir algoritmadan bahsetmiş ona geçeceklerini söylüyor.

- başarım olarak C ile (gcc) kıyaslandığında %10'luk bir fark var diyor. bunu rahatlıkla tolere edebileceklerini de söylüyor. tabii o bahsettiği yeni garbage collector bu farkı daha da aşağıya çekebilir. ayrıca implementasyon daha çok yeni. (derleyiciyi bootstraping nedeniyle C'de yazmışlar, Go'ya geçtiklerinde iş biraz daha değişebilir.)

- ayrıştırıcı kısmında başlangıç olarak lex & yacc kullanılmış, o kısmı da geliştireceklerini söylüyor.

- çok doğru bulduğum bir tasarım seçimi. string'e ek olarak map (yani hash, dict, associative array artık ne derseniz) yapısı builtin olarak dilin içinde. hakikaten olmazsa olmaz bir şey bu.

- çok hoş closure örnekleri var. closure birinci sınıf vatandaş.

sözdizimine gelince. bir ölçüde katılıyorum size. o parantezsiz ifadeler göze tuhaf geliyor hakikaten. fakat tuvalin o kısmında "terse" kodları seven bir "ken thompson" dokunuşu görüyorum (FAQ'da da okudum bir yerde, hatırlamıyorum). "ambiguation" yoksa sözdizimini sade tut durumu var. tuş sayısını azaltmaya çalışmışlar. benzer bir tuhaflık deklarasyonlarda var, tipi sona yazıyorlar. ama bütün bunlar alışılabilir ve anlaşılabilir şeyler.

- genel olarak şunu hissettim: unix'i düzeltseydik plan9 olurdu, 2009'da C'yi düzeltseydik Go olurdu. rob pike'ın bir Limbo'su vardı ama burada işe ken thompson net olarak girmiş. tabii bu lafın müşterisi değilim henüz, biraz daha incelemem lazım. C dili günümüzün mevcut CPU tasarımlarını, çok çekirdekler bir yana, yazılımsal olarak en gerçekçi temsil eden dil ve bu durumun kısa vadede değişmesi de zor. ama Go'daki goroutine'ler, channel'lar da önemli... multicore açısından yani.

70'lerin 2-3 kişilik yaratıcı bell&labs ekipleri efsanedir hakikaten. bu adamlar (rob pike, ken thompson) önemli adamlar. şahsen ben ellerinden ne çıksa severek yerim.

son olarak... walter bright'ın D'sini de ilgiyle takip ediyorum. ama burada daha modern bir yapı söz konusu. biraz daha mainstream olurlar umarım (her iki dil de)...
0
FZ
Ken Thompson deyince aklima geldi, dun gece The New Hacker's Dictionary'nin 'backdoor' maddesini okuyordum, tum zamanlarin en muthis backdoor'undan bahsediyordu, Ken Thompson'in yaptigi, C derleyicisinin parcasi olan ve login komutu yeniden terlendiginde Thompson'a giris izni veren sey (C derleyicisinin kodunu degistirip C derleyicisi ile derlemeye kalktiginizda gene benzer bir sey oluyor). ACM Turing odulunu aldiginda yaptigi konusmada da bahsetmistir bundan Ken Thompson. Her ne kadar bu seytani 'exploit'in dagitilmadigini soylese de sozluge gore vakti zamaninda BBN'ye geceyarisi 'kt' ismi ile birilerinin login oldugu belirtilmis ;-)
0
auselen
Diğer video:

"Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak"

imiş.

http://video.google.com/videoplay?docid=810232012617965344

http://www.youtube.com/watch?v=HmxnCEa8Ctw
0
FZ
"Safety of a compiled language such as C" lafi icin bir ornek de ben vereyim birkac eglenceli alinti ile, bakiniz C ne kadar guvenli (segmentation fault, vs acisindan):

C is weakly typed. Lisp is strongly typed.

Ve yine 'safety' ile ilgili guzel bir aciklama: Technical reasons to why Lisp is more secure than other languages

Ve tabii type safety acisindan alternatifler, diger aciklamalar vs icin bkz. tongucyumruk'un yukaridaki linkleri...
0
conan
0
gismo
:) adam haklı google'da aratınca bile ikinci sırada gelen link Go!
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Google Hacker Edition

Geryon

4 1 cihana nam salmış Google, hackerlar için özel hizmet başlatı.
Hekerim,hekersin,heker felsefesini kullanan insan değil mi ? :) :) :)

Google'ın hacker verisyonu için tıklayın

`Google Code Search´ Hacker'ların İşini Kolaylaştırıyor

Guardian

networkworld.com 'daki haberde Google'ın kasıtsız olarak hacker'lara yeni bir araç sunduğu belirtiliyor.

Google Evlere Şenlik!

cbc

İngilizce "Home Page" olarak adlandırılan, Türkçe'ye kelime kelime çevirirsek "Ev Sayfası" olarak adlandırabileceğimiz, kişisel site yapmanızı sağlayacak bir hizmet Google'dan sonunda geldi. "Evlere Şenlik"teki ev kelimesi de işte buradan geliyor.

Sanal Kitaplık Yayında

ozhan

Google en son servisi sanal kütaphane yayına başladı. Yayınevleri ve Google arasında geçen uzun tartışmalar sonuca vardı ve telif hakları sorunu beli kısıtlamalarla aşıldı.

Google: Gizlilik mi?

tongucyumruk

Bundan 10 yıl kadar önce Sun Microsystems'tan Scott McNealy "Kişisel gizlilik mi? Aşın artık böyle şeyleri" demişti. Günümüzde her hareketiyle kişisel gizlilik konusunda yeni soru işaretleri yaratan ailenizin arama motoru (web tarayıcısı, ofis programı, e-posta sistemi, reklamcısı, anında mesajlaşma yazılımı ...) Google'ın CEO'su Eric Schmidt CNBC ile yaptığı bir röpörtajda "eğer birşey yapıyor ve insanların haberi olmasın istiyorsanız, belki de o şeyi yapmıyor olmanız gerekiyordur" şeklinde bir açıklamada bulundu. Daha açık cümlelerle ifade etmek gerekirse: Neden birşeyleri gizlemeye çalışıyorsun? Yoksa sakıncalı birşeyler mi yapıyorsun?