2009-09-24 16 views
8

D ile ilgili bazı bilgileri bulmaya çalıştım. Bunun gibi bir genel bakış için C++ ile comparison'u seviyorum. Şimdi kendime şunu soruyorum: Alanda D'nin ne sıklıkla kullanıldığı ve uygulanabilir bir alternatifin C++ için ne kadar olduğu?Tarlada D Kullanımı

+5

Sanırım bu, tamamen kapatılmamak için topluluk wiki'si olması gereken bir "soru" türüdür. – unwind

+1

Yakından ilgili sorular şunlardır: http://stackoverflow.com/questions/743319/why-isnt-the-d-language-picking-up ve http://stackoverflow.com/questions/250511/does-the-d- programlama dili-bir-gelecek-gelecek –

+2

Ben çoğu C++ programcılar C++ 0x ile çok mutlu olduğunu düşünüyorum. Tabii ki sözdizimi ideal değil, * ve öyleyse ne *? C + programcıları, herkesten daha çok kullanılır. D ile ilgili problem, bunun uygulanabilir bir alternatif olmamasıdır. Yeterince yeteri kadar sabit veya standart değil, yeterince desteklenmiyor, zaten sahip olabileceğiniz milyonlarca C++ kod satırıyla uyumlu değil. Ve dürüst olmak gerekirse, mevcut C++ koduyla uyumluluk bir gereklilik değilse, C ailesi içinde * bir şeyden * çok daha iyi diller vardır. – jalf

cevap

8

D'nin harika bir dil olduğunu düşünüyorum, ancak insanların bunu kullanmaktan saklayabilecekleri şey, (afaik) C++ kitaplıklarıyla uyumlu olmamasıdır. Bu yüzden kullanabileceğiniz tüm kütüphaneler C veya D ile yazılmalıdır. Öyleyse, eğer bir C++ geliştiricisiyseniz, D'ye geçiş yapmak o kadar da eğlenceli değildir.

+1

D2, C++ kütüphaneleri ile sınırlı uyumluluğa sahip olacaktır. http://digitalmars.com/d/2.0/cpp_interface.html Ayrıca, bu kütüphanelerin etrafında C sarmalayıcılarınız varsa, D, C ABI'yı tamamen destekler. – dsimcha

+0

neden özel bir endişe? Uyumsuz olan kütüphaneler nelerdir ve neden D 'nin kendi kendine sağlamadığı? –

+1

D, dili uygulamak için basit olması gerektiğinden, karmaşıklığı düşük tutmak için C++ (sözdizimsel olarak çok karmaşık bir dil olan) herşeyi desteklemediğinden, çünkü bu, D'de bir C++ derleyicisine sahip olmak anlamına gelir. derleyici. Bu, arayüzlenebilecek kütüphanelerin sayısını azaltır ve hangilerinin çalıştığı ve hangilerinin bulunmadığını gösteren bir liste yoktur. D, kendi kendine sağlamaz çünkü hala genç - sadece 2007'de çıktı, oysa C++ kütüphaneleri toplamak için on yıllar aldı. –

4

D'nin geniş çaplı kullanımına yönelik birincil engel, 1. sınıf bir IDE'nin (VS gibi), olgunlaşmamış araç setleri ve kitaplıklarının olmamasıdır. IDE sorunu, Descent ile gelişmektedir ve D sürüm 2'nin çıkmasıyla iki kütüphanenin birleştirileceği beklenmekte/planlanmaktadır. Araçlar sorunu da artıyor ama daha yavaş. (IIRC, resmi GDB'de D desteğini almak için geç olarak bazı ilerlemeler kaydedilmiştir)

+0

kesinlikle önemli bir nokta. –

+0

Visual Studio'dan hoşlanıyorsanız, D şimdi [sizin için bir seçenek olabilir] (http://dsource.org/projects/visuald). – Justin

1

Benim için D'nin en büyük sorunu, onu kullanan güçlü bir kurumsal destekçi veya "taç mücevher" yazılımının olmamasıdır. Java güneş vardı. C Bell Labs'a sahipti ve Unix'in daha önce yazmıştı. C++, & T ve daha sonra Microsoft'a sahipti. C# Microsoft var. Çevremde fazla kullanılmadığını görmüyorum (bilimsel bilgi işlem).

+0

Öyle değil. Programcıların ayırt edici özelliği, tembel olmaları. D'ye gitmek, C++ uyumluluğu olmadan çok fazla iş. – Calyth

+3

Ben de aynı fikirdeyim. Python'dan ne haber? "Kurumsal destekçisi" yoktu ve şu anda en iyi 10 dilde (belki de saydıklarınıza bağlı olarak en üst 5). – Jyaan

3

D, C++ 'nın şimdi kullanıldığı bilimsel hesaplamada birçok vaka için geçerli bir alternatif olabilir. Benim için kişisel olarak iki şey beni kullanmaktan koruyor:

  • Henüz kararlı bir D2 belirtimi yok. D2 ve D2 Phobos, C++ ve STL'den (ve tartışmalı olarak daha iyi) eşittir. Bununla birlikte D1 Phobos, yerine yakın bile değildir. Ancak D2 hala hareketli bir hedef olduğundan, henüz programlar için uygun olmayabilir.
  • x86_64 destekleyen bir D2 derleyicisinin eksikliği. Veri kümelerim, veriyi verimli bir şekilde işlemek için 4GB'tan fazla belleğe ihtiyaç duyduğunuz kadar büyüdüğünden ve 64 GB'lık makineler yaygınlaştığından bu alanım için kesinlikle sorunludur.

Eğer bu iki sorun çözülürse, OCaml ve Haskell'in yanında gelecekte D'yi ciddi olarak ele alacağım.