D'nin en büyük özelliklerinden birisi güvenli olmasıdır: immutable, pure, @safe, vs. O olanakların gerektiği çalışma ortamları aranmaya başlıyor.
Herb Sutter 2004'te mikroişlemcilerin hız açısından sınırlarına gelinmekte olduğunu yazmıştı:
http://www.gotw.ca/publications/concurrency-ddj.htm
Yakın bir zaman önce de sınıra vurmuş olduğumuzu, ve artık başka türlü hız kazançları aranmakta olduğunu söylemişti:
http://herbsutter.com/welcome-to-the-jungle/
Çok çok kısa olarak şöyle: Artık programların tek mikroişlemci üzerinde değil, bulut sistemleri de dahil olmak üzere çeşitli yapılardaki ve çok sayıdaki bambaşka işlemciler üzerinde çalışması bekleniyor:
- mikroişlemcinin kendi çekirdekleri
- aynı bilgisayardaki başka mikroişlemciler
- aynı bilgisayardaki grafik kartı işlemcileri
- aynı ağdaki başka bilgisayarlardaki işlemciler
- bulut sistemlerindeki bilgisayarlar
- vs.
Herb Sutter'ın "free lunch" ile kasdettiği şuydu: Bugüne kadar programcı olarak hiçbir şey yapmamız gerekmeden salt mikroişlemcilerdeki hız artışlarından yararlandık. Mikroişlemciler sonunda 4GHz sınırına çarpmış olduklarından artık öyle bedavacılık yok.
Gelecekteki programlar koşut işlemlerden (parallelism) ve eş zamanlı programlamadan (concurrency) yararlanmak zorundalar. İşte sorunlar bu noktada ortaya çıkıyor çünkü programlama dilleri ve programcılar genelde buna hazır değiller.
Benim bu konuyu açmamın nedeni şu yazı oldu:
http://whiley.org/2012/01/18/connecting-the-dots-on-the-future-of-programming-languages/
O yazı bu gibi konulara daha genişçe dokunduktan sonra şöyle diyor:
Alıntı:
> Which mainstream programming languages currently support pure functions and/or other mechanisms for aggressively limiting side-effects? Haskell is clearly one example, D is another. But, what else?
Şöyle çevirebilirim:
Alıntı:
> Genel kullanımda bulunan programlama dillerinden hangileri yan etkileri önleyen pure işlevler veya başka düzenekler sunarlar? Haskell bariz bir örnektir, D de bir başkasıdır. Başka?
Sözü geçti diye: D koşut işlemleri ve eş zamanlı programlamayı temiz bir biçimde destekler. Koşut işlemler acayip kolay:
http://ddili.org/ders/d/kosut_islemler.html
Mesajlaşmaya dayalı olan eş zamanlı programlama ise bulut sistemlerindeki çalışmaları da destekleyecek alt yapıya sahip olduğu halde şimdilik yalnızca iş parçacıkları (threads) ile kullanılabiliyor:
http://ddili.org/ders/d/es_zamanli.html
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]