KAS
14

Google'dan Yeni Bir Programlama Dili: Google Go

0 yorum | Kategori: Genel | 14 Kasım 2009 Cumartesi

Evet Google sonunda bu işe de el attığını, uzun süredir üzerinde çalıştığı programlama dili olan Google Go'nun çalışan bir sürümünü kullanıcılarla paylaşarak resmi olarak duyurmuş oldu.

Google bu dil ile yazılmış programların daha hızlı derlendiğini, daha hızlı çalıştığını, daha güvenli olduğunu iddia ediyor. Python gibi dinamik bir programlama dili ile çalışmanın hızı ile, C++ gibi bir dilin performans ve güvenilirliğini birleştiriyormuş (Vay be iddiaya bak!). Go'nun göze çarpan diğer özellikleri ise şöyle:

  • Açık kaynaklı olması.
  • Garbage collection'a sahip olması. Yani kullanılan bellek alanlarını geri verme derdi yok (Java ve C#'ta olduğu gibi).
  • Çok işlemcili sistemlere yönelik yazılım geliştirmeyi kolaylaştıracak yapılara sahip olması.
  • C++ kadar yüksek performansa sahip olması.
  • Basit olması.

Şu an için Windows üzerinde çalışan bir versiyonu olmayan ve daha emekleme aşamasında olan Google Go'nun ne kadar yaygınlaşacağını zaman gösterecek. Bu yazıda dil hakkında genel bilgi vereceğim. Detaylı bilgileri bu adresten öğrenebilirsiniz.

Dil daha çok C++ kullanıcılarını hedefliyor gibi. Ancak C++ ile arasında hem yapı hem de sentaks olarak çok fark var. Bunlardan bazıları şunlar:

  • Go'da yapıcı ve yıkıcı metodlara sahip sınıflar yok. Sınıf metodları, sınıflar arasında kalıtım ve sanal fonksiyonlar yerine burada açıklanmış olan interface'ler getirilmiş. Bu interface'ler aynı zamanda C++'daki template özelliği yerine de kullanılıyor.
  • Go'da işaretçiler var ancak işaretçilerle aritmetik işlem yapma imkanı yok.
  • Go'da hazır string yapıları var ancak bir kere yaratıldıktan sonra bir daha değiştirilmeleri mümkün değil.
  • Çok thread'li çalışma ve thread'ler arasındaki haberleşme doğrudan dil ile birlikte gelen yapılar ile gerçekleştirilebiliyor.
  • Go header dosyaları kullanmıyor. Her kaynak kod dosyası bir paketin parçası olarak düşünülüyor ve paket içerisinde yaratılmış olan değişken ve fonksiyonlar bu paketi import eden tüm dosyalar içerisinden görülebiliyor. Bu biraz Java'ya benzeyen bir özellik aslında.
  • Go'da türler arasında çeviri yapmak için casting yapmak şart, çeviri hiçbir zaman otomatik olarak yapılmıyor.
  • Go'da ne fonksiyonları ne de operatörleri overload etmek mümkün değil.

Dilin neye benzediğini görmek açısından klasik bir "Merhaba Dünya" programının nasıl yazıldığına bakmak yeterli olur sanırım.

package main

import "fmt"

func main() {
  fmt.Printf("Merhaba Dünya\n")
}
Buradan bakıldığında dil C++ ile Java karışımıymış gibi duruyor ancak verdiğim adresten detaylarına bakarsanız her ikisinden de çok farklı olduğunu görebilirsiniz.

Dil ile ilgili araştırma yaparken karşılaştığım ilginç bir bilgi de, Go adında bir dilin zaten daha önceden var olduğu. McCabe diye bir şahsiyet 2004 yılında kendi geliştirdiği Go! adındaki bu dil ile ilgili bilimsel bir makale, 2007 yılında da bir kitap yayınlamış. Kendisi şimdi de doğal olarak Google'ın geliştirdiği dilin adını değiştirmesi gerektiğini savunuyor. Konu ile ilgili haberi buradan okuyabilirsiniz.  

Yorumlar

Bu yazı hakkında yorum bulunmamaktadır. İlk yorumu siz yazabilirsiniz.

Yorum Yazın

İsim ve soyadınız : E-Posta adresiniz : Güvenlik kodu : Güvenlik Kodu Yorumunuz : Gönder