D Gerçek dünyada Programlama Dili? [kapalı]


138

Orada gerçek dünya uygulamaları için D kullanan biri var mı? Öyleyse, ne için kullanıyorsunuz? Web'de D ile yazılmış büyük bir şey bulamıyorum.

Bilinen büyük kullanıcıların olmamasına rağmen, D benim için çok umut verici bir dil gibi görünüyor ve TIOBE'ye göre oldukça popüler.


11
Dlang forumlarında kısa süre önce açıklanan Facebook artık üretimde D kullanıyor.
13'te sghill

Büyük bir şey yoktur, çünkü D'nin kendisi büyük karmaşık uygulamalar oluşturmak için oldukça zayıftır. Yüzeyde harika görünüyor, ancak ticari bir şey yapmaya çalıştığınızda, tüm çatlaklar gösterilmeye başlıyor ve hayran çocuklar tarafından ticari izleyici için uygun yapılandırılmış yazılım oluşturma arzusu çok az (eminim paranın çok fazla ilgisi var liderlik ve organizasyon gibi). Bir komut satırı yardımcı programı veya 5k çizgi algoritması yazmak bir şeydir, ancak gui, ses,
vb.Gibi

Tabii birlikte bir şey kesmek olabilir ama bu ticari değil. Bir işletme, zamanını / parasını bu kadar lapa lazım olan bir şeye yatırmayacaktır. Uygun bir IDE yoktur ve kullandığım her biri bir şeyi basmak istememe neden oldu. Uygulamalarda doğru hata ayıklamak yaklaşık 10 kat daha yavaş çünkü hata mesajları korkunç, hata ayıklayıcı size karşı çalışmıyor veya size karşı çalışıyor, beklediğimiz modern özellikler yok ya da fakir ve kütüphane çok mantıklı bir yapıya sahip olduğu için (işler "keyfi olarak taşınıyor", "chomp" ve "detabber" gibi garip adlandırma şemaları vb.)
Stretto

Sanırım yin / yang. D'deki bazı şeyler şaşırtıcı ve hiçbir şey yakın değil (henüz) ... ama diğer tarafta başarısız olduğu şey de oldukça güçlü. Bunları sadece önemsiz veya algoritmik şeyler yapmak yerine gerçek uygulamalar yazmaya zaman ayırdıklarında bulur. D organizasyonu bir araya gelene kadar (onları ne kadar sürecek? 10, 20 yıl?) Gerçek işletmeler buna yatırım yapmayacaklar. Zaman para demektir ve hiçbir işletme IDE enfiye etmek için olmadığından bir uygulamada hata ayıklamak için 10 kat daha fazla zaman harcamak istemez.
Stretto

@Stretto ne demek istiyorsun? dlang.org/orgs-using-d.html
Bauss

Yanıtlar:


77

D'yi bilgisayar grafikleri alanındaki araştırma çalışmalarım için kullanıyorum. Ben ve diğerleri, D kullanarak yapılan çalışmalara dayanarak alanlarımızda yayınlanmış makalelerimiz var. Bence performansın önemli olduğu küçük ila orta ölçekli araştırma projelerinde kullanıma hazır. Araştırma çalışması için iyi bir seçim çünkü çoğu zaman sıfırdan başlıyorsunuz, bu yüzden entegrasyon konusunda endişelenecek çok eski kodunuz yok.

Bir başka popüler kullanım alanı da web hizmetleri gibi görünüyor. İnşallah başka biri bu alanda kimin yorum yapabileceğini düşünebilir, ama ben de fikrin performansın gerçekten önemli olduğunu düşünüyorum, böylece metalden derlenmiş bir dil istiyorsunuz. Hizmetler genellikle oldukça küçük, bağımsız süreçlerdir, bu nedenle büyük miktarda eski C ++ koduyla birlikte çalışmak gerçekten gerekli veya kullanışlı değildir. Böylece D ayağını kapıdan alabilir.

Bence D bu şekilde temel takipçileri kazanmaya devam edecek - her ne sebeple olursa olsun C ++ mirasını atmayı göze alabilecek küçük projelerde, kullanımı çok daha eğlenceli ve belki de daha verimli bir programlama dili elde etmek için.

Ancak çok sayıda taban kök kullanıcısı olana kadar, şüphelendiğim büyük kurumsal kullanıcıların yolunda çok fazla olmayacak.


10
Tamamen D'de C kütüphanelerine bazı bağlantılar ile istemci / sunucu uygulamaları geliştiriyorum, ancak sadece Hollanda'nın en popüler hizmetlerinden biri için istemcinin GUI kısmı için. Patronumu ikna etmem gerekse de pişmanlığı yok gibi görünüyor. ;-) - D özellikle parlıyor, çünkü standart kitaplık Windows'ta bile BSD soketlerinin uygulanmasını sağlıyor. Bir kez yazın, her yere konuşlandırın, çok güzel.
Jesse Brands

@JesseBrands Phobos veya tango kullanıyor musunuz?
qed

88

D'de biyoinformatik çalışması yapıyorum. Benim için D ile ilgili en önemli şey, deneklere çok düz bir yaklaşım benimsemesi ve getirileri azaltma ilkesini tanıması.

Sıfır genel gider prensibine sıkı sıkıya bağlı olan C ++ 'dan farklı olarak, D dili daha kullanışlı hale getirirlerse küçük bir performans / alan maliyeti olabilecek özelliklere izin verir. Bunlar çöp toplama, her sınıf için bir izleme nesnesi, çalışma zamanı türü bilgisi vb.

Ruby, Python, PHP, vs'den farklı olarak, komut dosyası dillerinden daha az dinamik ve programlaması biraz daha zor olsa da D neredeyse C kadar hızlı olmaya çalışır.
Sonuç, hem geliştirme süresi hem de yürütme süresi eşit olarak önemli olduğunda, benim alanımda çoğu zaman en uygun olan bir dildir.

Benzer şekilde, D, emniyet ve esnekliğe karşı çok düz bir yaklaşım sergilemektedir. Programcıların temelde ne yaptığını bildiklerini, ancak hata yaptığını varsayar.

C ve C ++ 'dan farklı olarak, kodunuzdaki her yerde işaretçiler, güvenli olmayan dökümler, manuel bellek yönetimi vb. Kullanmak istemediğinizi varsayar, çünkü hataya eğilimlidirler ve çoklu geçiş yapmak istemediğinizi varsayar. boyutlandırılabilir dizileri kullanmak için bağlandığınızda sayfalık şablon hata iletileri.

Java ve diğer esaret ve disiplin dillerinden farklı olarak, D bazen işaretçilerin, güvensiz dökümlerin, manuel bellek yönetiminin, vb. gizli kod. Ayrıca, bir diziyi sınırların dışına çıkarabileceğinizi ve bir diziye erişebileceğinizi, ancak programcının herhangi bir durumda güvenlik ve hız arasında hangi dengenin yapılması gerektiğini en iyi bildiğini varsayar. Bu nedenle, dizilerin sınır kontrol edilip edilmediği basitçe bir derleyici anahtarıyla belirlenir.


2
İzleme nesnesi nedir? Bunun için sonuç bulamıyorum.
Samaursa

2
C dilini C ++ ile karşılaştırıldığında çok seviyorum. Daha hızlı derleme süreleri, daha az kod kullanma yeteneği, başlık dosyaları vb. Sorun, ancak ciddi GUI çalışması yapan herkesin eksik olmasıdır. Tabii, GtkD'yi kullanabilirim, ancak bir dizi süslü grafik çizmeye çalışıyorum. Bir GUI için Chromium ile entegrasyon konusunda umut verici çalışmalar görüyorum, ancak bu proje büyük ölçüde belgelenmemiş ve bu alanda daha fazla oyuncuya ihtiyaç duyuyor. Bunun değişmesini umuyorum, ancak Eylül 2015'te burada gördüğüm şey bu.
Volomike

Nesne monitörü saçmalık **. Tüm yöntemi kilitler, gerçekten gerçekten boşa ...
dev1223

@Volomike Ayrıca son zamanlarda D'ye baktım ve benzer şekilde onunla grafik arayüz araçları yapmak zor oldu. Şu anda D ile zarif GUI araçları yapmak için herhangi bir defacto çözümüm yok ve bu yakında başlamaya başlayabileceğim bir şey.
dimiguel

32

Pazara bir posta sunucusu ürünü gönderen ufacık bir şirket biliyorum. Projede tam zamanlı çalışan en az 2 kişi vardı.

Ayrıca, BT sektöründeki büyük bir oyuncunun daha büyük iç projelerde D'yi kullanan birkaç çalışanı vardır.

Ayrıca, girişim finansmanı isteyen bir şirket, D ya yarı zamanlı ya da tam zamanlı D kullanan küçük şirketlerde birkaç (en az 4) çalışan ve danışmanlık pazarında aktif olarak fırsat arayan en az bir çift (ben dahil) biliyorum.

Muhtemelen bilmem gereken birkaç tanesini ve muhtemelen duymadığım bazılarını dışarıda bıraktım, ancak bu hala var, çünkü yukarıdakiler az çok topluluk aracılığıyla kendimi tanıdığımlardır.

Mevcut gelirimin küçük bir yüzdesi D'den geliyor.


Örgütleri aday gösterebilir misiniz? Bu projeler hakkında daha fazla bilgi edinmek de iyi olur.
nbro

28

D'yi web geliştirme için kullanıyorum ve C / C ++ ile karşılaştırıldığında çok daha verimli olduğunu kanıtladı. Tabii ki ruby ​​/ php / python'a dayanan birçok çerçeve var. Ancak, aynı zamanda C kadar hızlı ve birçok komut dilinde olduğu gibi programlamak kadar kolay olması gereken benzersiz bir şey geliştirmek istediğinizde, D iyi bir seçimdir.


3
Sorabilir miyim? Hangi çerçeveyi veya kütüphaneyi kullanıyorsunuz?
Zelenova

26

Döngü (HIL) test ortamında bir donanım için D kullanıyorum. Bu, otomotiv alanındaki yazılım testleri içindir. D burada kullanılabilir, çünkü bir sistem programlama dili olarak gerçek zamanlı programlarda (linux gerçek zamanlı RTAI-LXRT uzantısında IRQ işleyicileri) kullanılabilir.

SWT / JFace'in devam eden portu ile daha fazlasını yapmayı ve daha önce Java'da yapmış olduğum D'de çalışmayı planlıyorum.



19

D derleme zaman kodu çevirisi hakkında araştırmada D kullanıyorum. Gelişmiş şablonlar, tuples ve mixins ile birleştiğinde kod çevirisini çok daha kolay hale getirir ve derleme zamanında ayrı bir araç gerektirmeden kod çevirisinin yapılmasına olanak tanır.

D'de meta programlama ile programlarını geliştirmek için D'yi kullanan bazı fizikçiler örnekleri vardır.

video - Konferans konuşması, fizikçi kullanımın kaynak sitesini bulamadı.


Kategorik olarak benzer bir projem, D de dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Tüm (yüksek trafikli) ağ altyapımız yalnızca D1 ve tangoya dayanmaktadır. Berlin'de genç bir başlangıç ​​şirketiyiz: sociomantic.com


14

Şu anki görevim C # 'ı D'ye çevirmek için kullanılan bir sistemdir. Bu, bir yazılım sistemi geliştirmek için kâr amaçlı bir projenin bir parçasıdır.




7

ABA Games tarafından yayınlanan oyunların çoğu D 1.x'te yazılmıştır, ancak konsol bağlantı noktalarının C ++ ile yeniden yazılması gerektiğini düşünüyorum.

D'de birkaç oyun prototipi yazdım, ancak bunları kendi gerçekim için yazdım ve hiçbirini serbest bırakmadığım için 'gerçek dünya' olarak nitelendirildiğinden emin değilim.


D kullanılarak hangi oyunların yaratıldığı konusunda daha ayrıntılı bilgi verir misiniz?
nbro

7

Test cihazı protokollerinin çeşitli donanım test istasyonlarından izlenebilirlik ve bunun gibi şeyler için standart bir çıktı formatına dönüştürülmesi için bir yazılım yazdım (ve hala sürdürüyorum ve geliştiriyorum).

Hep birlikte D 1.x ve Phobos kütüphanesi ile yazılan 5k kod satırı üzerinde.

D'nin öğrenmesi çok kolaydır ve bazı tuzakları (Phobos kütüphanesinde) göz ardı etmek gerçek bir program sevinci.


6

D'yi global bir optimizasyon algoritması geliştirme konusundaki araştırma projem için kullandım. Sinir ağlarının eğitimi sorununa uyguladım. Bu "gerçek dünya" demek isteyip istemediğiniz size bağlıdır.


Kaynak kodu veya yaptığınız işlemle ilgili bazı bilgiler var mı?
nbro


6

Sürümün ikinci standardı D2 kullanıyorum. Gerçek zamanlı uygulamalar yazdım (örneğin 3D motor).

Dil her geçen gün daha da güçleniyor. D çok pragmatik ve tüm gömülü özellikler, özellikle metaprogramlama paradigması, bence C ++ 'dan çok daha fazla. Sözdizimi daha net, filtre veya azaltma gibi işlevlerle fonksiyonel programlamanın gücünü ve en önemli özelliklerinden birini kullanabilirsiniz: tüm C kütüphanelerini kullanabilirsiniz.

Kesinlikle benim en sevdiğim dil, ve yayılmış kullanılan bir dil olacağından eminim.


D kullanarak oluşturduğunuz bir şeyin kaynak kodunu görmek mümkün müdür?
nbro

Bu yorumdan bu yana bir süre geçti! Şimdi Rust ve Haskell'de kod yazıyorum, ancak birkaç projem var. Github'ımda bazı şeyler var, ama kazmaya değeceğini sanmıyorum. Bu yorum 4 yaşında! Tüm bunların şu anki durumuna bir göz
atmalıyım

4

Sanırım bu soruya anında cevap verilmemesi konusundaki bir şeyi okuyabiliriz ve bu, aktif stackoverflow yanıtlayıcılarının çoğunun D kullanmadıkları anlamına gelir. bağlamak.

Bunu söyleyen Walter Bright, uzun yıllardır dil üzerinde çalışıyor ve bence 90'larda Zortech C ++ derleyicisiyle ne kadar iyi bir iş yaptığını hatırlayan oldukça sayıda takipçisi var. Ayrıca, dilin şimdi işlevsel yöne doğru eğildiğini de not ediyorum.


3
Aslında şu anda bu web sitesinde D aramak mümkün değil. "D" veya "d programlama" araması "isabet yok" der ve etiketlerde "d" araması, "d" içeren, ancak "d" içermeyen bir sayfa etiketi listeler. Yani bunun da bir ilgisi olabilir.
Baxissimo

20
etiket tabanlı aramayı almak için arama kutusunda [d] yi arayın.
Gregg Lind


0

Perl'den D'ye bazı dahili araçlarımızı yeniden yazmak için bir projeye başlıyorum. D'yi seçtim çünkü dilin tasarım felsefeleri konusunda oldukça heyecanlıyım. Uzun zamandır programlama yapıyorum ve montajcılardan yüksek seviyeye (çoğunlukla C) komut dosyası dillerine (çoğunlukla Perl) kadar birçok dil kullandım ve D uzun yıllar boyunca öğrenmekten heyecan duyduğum ilk dildir .

Temel bir nedenden dolayı derlenmiş bir dile geçmeye karar verdim - güvenlik. İşlevsel olarak Perl, üzerinde çalıştığım araç seti için oldukça iyi çalışıyor, ancak güvensiz - bir komut dosyası çalıştırabilen herkes, aracın kendi değiştirilmiş sürümünü de okuyabilir, kopyalayabilir ve oluşturabilir. (Ve biliyorlar.) Bu sorunun üstesinden gelmek için dolambaçlı yöntemler olduğunu biliyorum.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.