Thread overview
D'nin ışıldayacağı ortam oluşmaya başladı
Jan 18, 2012
Salih Dinçer
Apr 05, 2012
Salih Dinçer
Apr 05, 2012
zafer
January 18, 2012

Gündemi takip etmeniz ne güzel...

Paralel programlama konusunda C#'ın yetenekleri olduğunu duymuştum. Ancak henüz bu konuda hiç bir tecrübem olmadı. Bu vesileyle artık bir şekilde öğrenmek istiyorum ve bunu D dili ile başlayarak yapmanın isabetli olduğunu düşünüyorum. Keza şu sıralar buna özel olarak da ihtiyacım var. C'de başladığım ve C#'da devam ettiğim macerama D'de son vermek çok hoş olurdu...:)

Sevgiler, saygılar...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

January 18, 2012

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. ]

April 05, 2012

Alıntı (acehreli:1326931593):

>

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
Bu bölümü ancak bitirebildim. Örnekler bir harika ve ara verip tekrar okumak istiyorum...:)

Bence tüm projelerimizde bu tür programlamanın komutlarını kullanmaya kendimizi zorlamalıyız. Çünkü şu an donanım teknolojisi yazılımın önünde. Biz yazılımlarımızı tek çekirdek yazmaya devam edersek işlemcinin büyük bir çoğunluğuna verdiğimiz $'lar çöpe gitmiş olacaklar. Ayrıca gereksiz de olsa fazladan yazacağımız bir kaç satır bizi ilerisi için hazırlayacak, alıştıracaktır.

Ali hocama böyle kapsamlı bir ders konusu hazırladığı için teşekkür ediyorum...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Alıntı (Salih Dinçer):

>

Bence tüm projelerimizde bu tür programlamanın komutlarını kullanmaya kendimizi zorlamalıyız.

Çok iyi fikir. Hele koşut işlemler ne kadar kolay, değil mi? Bazen yapılması gereken tek şey topluluğu 'parallel(topluluk)' diye yazmak. Gerisi sihir! :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Alıntı (Salih Dinçer):

>

Bence tüm projelerimizde bu tür programlamanın komutlarını kullanmaya kendimizi zorlamalıyız.

Kesinlikle katılıyorum. D dilinde bu olanakların olması güzel ama kullanılmadıkları zaman hiç bir önemi yok. Aslında özellikle bu olanakları kullanıp tecrübe edebileceğimiz küçük senaryolar hazırlasak. İnsan bu tür işlerle haşır neşir olmayınca nerede ve nasıl kullanacağınıda kestiremiyor mesela (nothrow, pure, @safe).

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]