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 Görüşme Üniversitesi: Web Geliştiricisinin Yazılım Mühendisliğine Yolculuğu

butch

John Washam, eğitimini ekonomi alanında tamamlamış ama kariyerini web programcısı olarak yapmış biri. Başarılı olan bir kaç iş de kurmuş. Hayatını bu alandan kazanıyor. Kariyerini, çocukluğunda hayal ettiği yazılım geliştiricilik üzerine kurduğunu, iyi bir yazılımcı olduğunu düşünürken bunun doğru olmadığı gerçeğiyle yüzleşmiş. Bundan birkaç yıl önce iş aramaya karar verdiğinde, aslında...

Google Video Arama

mgulcemal

Google kurucularından Larry Page pazartesi günü San Francisco da yaptığı bir açıklamada video arama kısmını başlattıklarını duyurmuş.

Şu anda beta yayınında olan siyete video.google.com adresinden ulaşılabiliyor.

e daha ne olsun...

Google Türkiye adam arıyor!

sundance

Haydi bakalım arkadaşlar, var mı Google Türkiye'de çalışmak isteyen?

to google

anonim

Google sözcüğü İngilizce sözlüğe girdi.

Main Entry: goo·gle
Pronunciation: 'gü-g&l
Function: transitive verb
Inflected Form(s): goo·gled; goo·gling /-g(&-) li[ng]/
Usage: often capitalized
Etymology: Google, trademark for a search engine
: to use the Google search engine to obtain information about (as a person) on the World Wide Web

Kaynak: Ntvmsnbc
Sözlük: Webster

Linux'da GTalk VoIP kullanmak isteyenler için

sundance

GTalk'la yapılan ses iletişimini başarılı buluyor fakat sırf bunun için Windows kullanmak istemiyor musunuz? Gözünüz aydın, bu konuda artık Tapioca isimli bir yazılım var.

Ekran görüntülerine'de bakabileceğiniz yazılımın, gerçekleşebilmesinin en önemli sebebi tabi ki Google'ın libjingle API'si.