← A–Z Röportajları

D

Ana sayfasına göre Walter Bright, makine mühendisi olarak eğitim almış ve Boeing’de 757 dengeleyici trim sistemi üzerinde çalışmıştır. Ancak bu deneyimden beri yazılım yazmaktadır ve derleyicilere özel bir ilgi duymaktadır. Walter ile D hakkında ve sistem programlama dillerini geliştirme arzusunu konuştuk.

D’nin geliştirilmesini ne tetikledi?

Bir derleyici geliştiricisi olarak, bildiklerimi daha iyi bir dil tasarlamak için uygulama dürtüsü her zaman aklımın bir köşesinde vardır. Özümde bir mühendisim ve herhangi bir şeye, onu iyileştirmenin yollarını düşünmeden bakamam.

Dönüm noktası, 1999’da Symantec’ten ayrıldığımda ve kendimi bir yol ayrımında bulduğumda geldi. Bu, yıllardır düşündüklerimi pratiğe dökmek için mükemmel bir fırsattı.

Çözmeye çalıştığınız belirli bir problem var mıydı?

Belirli bir problem yoktu. 12 yıl boyunca C++ ile kod yazmıştım ve başarılı bir C++ derleyicisi yazmıştım. Bu da dilin nasıl çalıştığına ve sorunların nerede olduğuna dair oldukça derin bir bilgi kazandırdı.

C++, geriye dönük uyumluluk gereksinimiyle sınırlıydı (ve hâlâ öyle) ve bu gereksinim bir kenara bırakılırsa çok şey yapılabileceğini düşündüm. C++’ın gücüne sahip olup, sonradan kazanılmış bakışla onu güzel hâle getirebilirdik.

Ayrıca başka dillerde de programlama yapıyordum ve onların da sunabileceği çok şey vardı.

D adı nasıl ortaya çıktı?

Başlangıçta Mars programlama diliydi (şirketin adı Digital Mars olduğu için). Ancak arkadaşlarım ve meslektaşlarım, C++’ın yeniden mühendisliği olarak başladığı için ona D demeye devam ettiler ve sonunda isim benimsendi.

C++’ın neden yeniden mühendisliğe ihtiyaç duyduğunu düşündünüz?

C++ geliştirildiğinden beri programlama hakkında çok şey öğrenildi. Bunun büyük bir kısmı, geriye dönük uyumluluğu korumak için mevcut yapının üzerine katmanlar hâlinde C++’a eklendi. Bu, her neslin onu modernize etmeye ve kendi ihtiyaçlarına uyarlamaya çalıştığı, eklemeler yapılmış bir çiftlik evi gibidir.

Bir noktada, yeniden tasarımla, ihtiyaç duyulanı doğrudan elde edebilirsiniz.

Ancak bugün D bunun çok ötesine geçti. JavaScript, Perl, Ruby, Lisp, Ada, Erlang, Python vb. gibi diğer dillerden pek çok başarılı kavram D üzerinde önemli bir etki bıraktı.

C++’ın hangi unsurlarını korudunuz ve hangi unsurları bilinçli olarak elediniz?

D, bir C++ programcısının D’de programlarken hemen rahat hissedeceği kadar unsuru korur. Önişlemci gibi eskimiş teknolojiler, modüller gibi modern sistemlerle değiştirildi.

Muhtemelen korunan en merkezi fikir, D’nin bir sistem programlama dili olduğu ve dilin, nihayetinde programcının en iyisini bildiğine her zaman saygı duymasıdır.

Şansınız olsaydı D’nin geliştirilmesinde farklı yapacağınız bir şey olur muydu?

Çalışmanın sorumluluğunu topluluğa devretme konusunda çok daha hızlı olurdum. Kontrolü bırakmak benim için zor ve bunu çok daha iyi yapmam gereken bir şey.

D ile yazılmış gördüğünüz en ilginç program hangisi?

Don Clugston, kayan nokta kodu üretebilen ve ardından onu çalıştırabilen gerçekten etkileyici bir program yazdı. Bunu şu sunumda anlatıyor:

http://video.google.com/videoplay?docid=1440222849043528221&hl=en

Haziran 2007’de yayımlanan D’nin deneysel sürümü veya D 2.0’dan ne tür geri bildirimler aldınız?

D 1.0 oldukça doğrudandı; diğer dillerde iyi bilinen deneyimlerden uyarlanan özelliklerden oluşuyordu. D 2.0 ise, diğer dillerde bir geçmişi olmayan keşfedilmemiş alanlara girdi. Bu yetenekler kanıtlanmamış olduğundan, sağlıklı bir şüphecilik üretiyorlar. Zaman gösterecek.

Dili, başlangıçta amaçlanmayan bir şekilde kullanıldığını hiç gördünüz mü?

Hepsini listelemek için çok fazla örnek var; ancak Don Clugston ve Andrei Alexandrescu bunlardan birkaçı. D’yi nasıl kullandıklarıyla beni şaşırtmaktan hiç vazgeçmiyorlar. Sıklıkla dili sınırlarının ötesine itiyorlar; bu da bu sınırları genişletmek ve dili çalışır hâle getirmek için güçlü bir motivasyona dönüşüyor.

Yukarıda bahsedilen videodaki Don’un sunumu iyi bir örnek. Andrei’nin çalışmalarından bir kısmını, örneğin şu adresteki algoritmalar kütüphanesinde görebilirsiniz:

http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html

D’yi hâlâ geliştirilmekte olan bir dil olarak mı görüyorsunuz?

Geliştirilmekte olmayan bir dil, kullanılmayan bir dildir. D geliştirilmekte ve insanlar kullandığı sürece de böyle kalacaktır. C++, Java, Python, Perl vb. de yaygın olarak kullanılıyor ve hâlâ geliştiriliyor.

Dilde hâlâ değişiklikler yapılıyor mu, yoksa şu anda hataları gidermeye mi odaklanıyorsunuz?

Çabalarımın yaklaşık yarısını hataları düzeltmeye ve mevcut sürümleri desteklemeye, diğer yarısını ise D 2.0’ın gelecekteki tasarımı üzerinde çalışmaya harcıyorum.

Şu anda birçok IDE’den yeterli destek olmamasının dilin popülerliği için bir sorun olduğu görüşüne katılıyor musunuz?

Şu anda D’yi destekleyen birçok düzenleyici ve IDE var:

http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport

Wikipedia’dan alınan aşağıdaki yorum gibi eleştirilere nasıl tepki veriyorsunuz?

“D’deki standart kütüphanenin adı Phobos’tur. D topluluğunun bazı üyeleri Phobos’un fazla basit olduğunu ve çok sayıda tuhaflık ile başka sorunlar barındırdığını düşünüyor; bu nedenle Tango adlı bir kütüphane yazıldı. Ancak Tango ve Phobos şu anda farklı çalışma zamanı kütüphaneleri (çöp toplayıcı, iş parçacığı desteği vb.) nedeniyle uyumsuzdur. Her ikisi de yaygın olarak kullanılan iki kütüphanenin varlığı, bazı paketlerin Phobos’u, bazılarının ise Tango’yu kullanması gibi önemli sorunlara yol açabilir.”

Bu geçerli bir eleştiri.

Bir kullanıcının her iki kütüphaneden de ihtiyaç duyduklarını birlikte kullanabilmesi için, aralarındaki uyumluluk sorunlarını ortadan kaldırmak üzere Tango ekibiyle birlikte çalışıyoruz.

Size göre D, bilgisayar geliştirme alanına nasıl kalıcı bir miras bıraktı?

D, hem kullanımı kolay hem de hızlı kod üreten güçlü bir programlama dili oluşturmanın mümkün olduğunu gösteriyor. D’nin öncü özelliklerinin ve özellik kombinasyonlarının birçoğunu diğer dillerde görmeyi bekliyorum.

D’nin geleceğini nerede görüyorsunuz?

D, yüksek programcı verimliliğiyle birlikte yüksek performans gerektiren sistem ve uygulama çalışmaları için ilk tercih edilen dillerden biri olacak.

Bilgisayar programlama dillerinin gelecekte, özellikle önümüzdeki 5 ila 20 yıl içinde, nereye gittiğini düşünüyorsunuz?

Gelen devrim, CPU’larda çok sayıda çekirdeğin kullanılabilir olmasıdır. Bu, programlama dillerinin bu çekirdeklerden yararlanmayı çok daha kolay hâle getirecek şekilde uyum sağlaması gerektiği anlamına geliyor. Andrei’nin sunumu, nelerin geleceğine dair bir fikir veriyor:

http://www.digitalmars.com/d/2.0/accu-functional.pdf

Yükselen programcılara herhangi bir tavsiyeniz var mı?

“Yapılamaz” diyen herkesin söylediklerini görmezden gelin. Yapılamaz denmesi, doğru yolda olduğunuz anlamına gelir.

Eklemek istediğiniz başka bir şey var mı?

Evet. D sadece benim çabam değil. Etrafında inanılmaz bir topluluk oluştu ve her gün katkıda bulunuyorlar. D hakkında şu anda üç kitap yayımlandı ve daha fazlası yolda. Topluluk, D için güçlü kütüphaneler, hata ayıklayıcılar ve IDE’ler geliştirdi ve yayımladı.

GCC ile çalışmak üzere gdc adlı başka bir D derleyicisi geliştirildi ve LLVM ile kullanım için üçüncüsü üzerinde çalışılıyor. Yeni dil özelliklerine yönelik öneriler neredeyse her gün ortaya çıkıyor. D, katkıda bulunan insanlar açısından adeta bir zenginlik bolluğuna sahip.

Aa, bir de çok eğleniyorum.