Merhaba değerli e-bergi okurları! Bu sayımızda sizlere D programlama dilinden bahsetmek istiyorum. D, Digital Mars şirketinin sahibi Walter Bright tarafından 2001 yılında çıkarılan çok paradigmalı ve yüksek seviyeli bir sistem programlama dilidir.

Tarihçe

Walter Bright 1999 yılında yeni bir dil geliştirmeye başladı. Adını D koyduğu bu dilin ilk sürümünü 2001’de çıkardı. D’nin bu ilk versiyonu (D1) C++’ta da olan buyurgan (imperative), nesne yönelimli ve türden bağımsız (generic) programlayı destekliyordu.

D geliştirilirken ona bir de standart kütüphane yazıldı: Phobos. Phobos genel olarak bir standart kütüphanenin temel özelliklerine sahip olmasına rağmen [Dosya okuma/yazma, bellek işlemleri, dizgi (string) işlemleri vb.] D’nin topluluğu bu Phobos’u pek beğenmediler. Sonuç olarak onlar da Tango’yu çıkardılar. Tango’nun farkı genel olarak nesne yönelimli programlama ve modülarite ile yazılmış olmasıydı. Fakat iki ayrı standart kütüphane bazı problemlere yol açtı. Tango üzerinde yazılmış kütüphanelerle Phobos üzerinde yazılanlar aynı anda kullanılamıyordu. Bazı paketler Tango ile, bazıları ise Phobos ile yazılıyordu. Sonuç olarak bu durum geliştiricilere yansıyordu, kafa karışıklığına yol açıyordu.

2007’de, Andrei Alexandrescu’nun önderliğinde geliştirilen D2’nin ilk versiyonu çıktı. D2 geriye uyumsuz birçok yenilik getirdi: sabit (const) sistemi, saflık (purity), fonksiyonel ve eşzamanlı (concurrent) programlama desteği...

2010’da Andrei Alexandrescu dilin başvuru (reference) kitabı olan The D Programming Language’ı çıkardı.

Özellikleri

D adından da anlaşılacağı üzere C ve özellikle C++’tan etkilenmiş bir dil. C tarzı bir sözdizimine (syntax) sahip. Bu iki dile benzemesine rağmen, onlarda olmayan birçok özelliğe sahip. Bunlardan en önemlileri çöp toplama (garbage collection), ilişkili diziler (associative array), dinamik diziler, dizi dilimleme (slicing), anonim fonksiyonlar ve tembel değerlendirme (lazy evaluation). D’de bu kadar yüksek seviyeli özellikleri kullanabiliyorsunuz, ancak bu düşük seviyeli programlama yapamayacağınız manasına gelmiyor, hatta satıriçi (inline) assembly bile kullanabiliyorsunuz. Ayrıca D’de C ve C++ ile yazılmış kütüphaneleri kullanabiliyorsunuz.

D; buyurgan, nesne yönelimli, fonksiyonel, eşzamanlı ve türden bağımsız paradigmaları destekliyor.

D ile yazılmış birkaç örnek program görelim:

** Merhaba dünya programı:**

import std.stdio;

void main() {
    writeln(“Merhaba dünya!”);
}

0’dan 10’a kadar (10 hariç) olan sayıları ekrana yazan program:

import std.stdio; 

void main() { 
   foreach(i; 0..10)
    writeln(i); 
}

Bir sayı ve bir yazı alıp yazıyı art arda yazı kez çıktı.txt adlı dosyaya yazan program:

import std.stdio; 

void main() { 
   int sayı; // Evet, Türkçe karakter kullanabiliyoruz. 
   string yazı; 
     write("Bir sayı giriniz: "); 
     readf("%s",&sayı); 
     write("Bir yazı giriniz: "); 
     readf(" %s\n",&yazı); 
     File çıktı = File("çıktı.txt","w"); 
     for(int i=0;i<sayı;i++) 
         çıktı.write(yazı); 
  }

D hoşunuza gittiyse, ddili.org adresinde Ali Çehreli’nin D derslerini okuyabilirsiniz. Derleyici kurulumundan başlayarak D ile ilgili her şeyi anlatıyor. Güzel bir Türkçeyle yazılmış çok faydalı bir e-kitap.

Bir sonraki yazımda görüşmek üzere, hoşçakalın!

Kaynakça