D Memprogram Bahasa di dunia nyata? [Tutup]


138

Adakah yang menggunakan D untuk aplikasi dunia nyata? Jika demikian, untuk apa Anda menggunakannya? Sepertinya saya tidak dapat menemukan sesuatu yang besar di web yang ditulis dalam D.

Meskipun kurangnya pengguna besar yang dikenal, D tampaknya seperti bahasa yang sangat menjanjikan bagi saya, dan menurut TIOBE , ini cukup populer.


11
Baru-baru ini diumumkan di forum dlang , Facebook sekarang menggunakan D dalam produksi.
sghill

Tidak ada yang besar karena D itu sendiri sangat buruk untuk membangun aplikasi kompleks besar. Ini terlihat hebat di permukaan tetapi begitu Anda mencoba melakukan apa pun yang komersial, semua retakan mulai terlihat dan ada sedikit keinginan para penggemar untuk membuat perangkat lunak terstruktur yang tepat untuk audiens komersial (saya yakin uang ada banyak hubungannya dengan tetapi kepemimpinan dan organisasi). Adalah satu hal untuk menulis utilitas baris perintah atau algoritme baris 5k tetapi sangat berbeda untuk membuat aplikasi bisnis yang sangat rumit yang melibatkan banyak area seperti gui, audio, dll.
Stretto

Tentu Anda bisa meretas sesuatu bersama tetapi itu tidak komersial. Sebuah bisnis tidak akan menginvestasikan waktu / uang mereka pada sesuatu yang sangat rapuh. Tidak ada IDE yang tepat dan setiap yang saya gunakan hanya membuat saya ingin mem-bash sesuatu. Ini sekitar 10 kali lebih lambat untuk debug aplikasi dengan benar karena pesan kesalahan sangat buruk, debugger tidak bekerja atau bekerja melawan Anda, fitur-fitur modern yang kami harapkan tidak ada atau buruk, dan pustaka itu tidak lengkap karena memilikinya tidak memiliki struktur logis (semuanya dipindahkan "sewenang-wenang", skema penamaan aneh seperti "chomp" dan "detabber", dll.
Stretto

Saya kira itu yin / yang. Hal-hal tertentu dalam D luar biasa dan belum ada yang mendekati ... namun di sisi lain hal yang gagal juga cukup kuat. Orang hanya menemukan hal-hal itu ketika mereka benar-benar meluangkan waktu untuk menulis aplikasi nyata daripada melakukan hal-hal sepele atau algoritmik. Sampai organisasi D mendapatkannya bersama-sama (berapa lama waktu yang dibutuhkan? 10, 20 tahun?) Bisnis nyata tidak akan berinvestasi di dalamnya. Waktu adalah uang dan tidak ada bisnis yang ingin menghabiskan 10 kali lebih lama untuk men-debug aplikasi karena IDE tidak siap.
Stretto

@ Stretto apa maksudmu? dlang.org/orgs-using-d.html
Bauss

Jawaban:


77

Saya menggunakan D untuk pekerjaan penelitian saya di bidang grafik komputer. Saya dan orang lain telah menerbitkan makalah di bidang kami berdasarkan pekerjaan yang dilakukan dengan menggunakan D. Saya pikir itu pasti siap untuk digunakan pada proyek penelitian kecil hingga menengah di mana kinerja penting. Ini cocok untuk pekerjaan penelitian karena seringkali Anda memulai dari awal, jadi Anda tidak memiliki banyak kode warisan yang perlu dikhawatirkan untuk diintegrasikan.

Area lain yang populer untuk digunakan tampaknya adalah layanan web. Mudah-mudahan orang lain dapat berkomentar siapa yang ada di ruang ini, tetapi di sana juga saya pikir idenya adalah bahwa kinerja sering kali sangat penting sehingga Anda ingin bahasa yang dikompilasi-ke-logam. Layanan seringkali cukup kecil, proses mandiri, jadi interop dengan sejumlah besar kode C ++ lama tidak benar-benar diperlukan atau berguna. Dengan demikian D bisa mendapatkan kakinya di pintu.

Saya pikir D akan terus mendapatkan pengikut akar rumput dengan cara ini - pada proyek-proyek kecil yang karena alasan apa pun mampu membuang warisan C ++ untuk mendapatkan bahasa pemrograman yang jauh lebih menyenangkan untuk digunakan, dan mungkin lebih produktif juga.

Tetapi sampai ada sejumlah besar pengguna akar rumput tidak akan ada banyak di jalan pengguna korporat besar saya curiga.


10
Saya mengembangkan aplikasi klien / server murni di D dengan beberapa ikatan ke perpustakaan C, tetapi hanya untuk bagian GUI dari klien untuk salah satu layanan yang lebih populer di Belanda. Meskipun saya harus meyakinkan bos saya, tetapi dia tampaknya tidak menyesal. ;-) - D terutama bersinar di sini karena perpustakaan standar menyediakan implementasi soket BSD, bahkan pada Windows. Tulis-sekali, gunakan di mana-mana, sangat bagus.
Jesse Brands

@JesseBrands Apakah Anda menggunakan phobos atau tango?
qed

88

Saya melakukan pekerjaan bioinformatika di D. Bagi saya, hal utama tentang D adalah bahwa dibutuhkan pendekatan yang sangat berkepala dingin untuk pertukaran dan mengakui prinsip pengembalian yang menurun.

Tidak seperti C ++, yang berpegang teguh pada prinsip nol-overhead, D memungkinkan fitur yang mungkin memiliki biaya kinerja / ruang kecil jika mereka membuat bahasa jauh lebih bermanfaat. Ini termasuk pengumpulan sampah, objek monitor untuk setiap kelas, info jenis runtime, dll.

Tidak seperti Ruby, Python, PHP, dll, D mencoba hampir secepat C, bahkan jika itu kurang dinamis dan sedikit lebih sulit untuk diprogram daripada bahasa scripting.
Hasilnya adalah bahasa yang optimal ketika waktu pengembangan dan waktu eksekusi penting, yang dalam bidang saya kebanyakan adalah waktu.

Demikian pula, D mengambil pendekatan yang sangat berkepala dingin untuk keamanan vs fleksibilitas. Ini mengasumsikan bahwa programmer pada dasarnya tahu apa yang mereka lakukan, tetapi jangan membuat kesalahan.

Tidak seperti C dan C ++, ini mengasumsikan bahwa Anda tidak ingin menggunakan pointer, gips yang tidak aman, manajemen memori manual, dll, di mana-mana dalam kode Anda, karena mereka rentan kesalahan, dan mengasumsikan bahwa Anda tidak ingin menyaring multi pesan kesalahan template halaman ketika Anda mengacaukan hanya untuk menggunakan array resizable.

Tidak seperti Java dan bahasa perbudakan dan disiplin lainnya, D mengasumsikan bahwa kadang-kadang pointer, gips yang tidak aman, manajemen memori manual, dll. Adalah kejahatan yang diperlukan, dan menganggap Anda cukup pintar untuk menangani templat nyata, overloading operator, dll. Tanpa menulis kode yang dikaburkan. Ini juga mengasumsikan bahwa Anda dapat mengacaukan dan mengakses array keluar dari batas, tetapi bahwa programmer tahu betul apa tradeoff yang harus dibuat antara keamanan dan kecepatan dalam situasi tertentu. Oleh karena itu, apakah array dibatasi batasnya hanya ditentukan oleh saklar kompiler.


2
Apa itu objek monitor? Sepertinya saya tidak dapat menemukan hasil untuk ini.
Samaursa

2
Saya suka bahasa D banyak dibandingkan dengan C ++. Waktu kompilasi yang lebih cepat, kemampuan untuk menggunakan lebih sedikit kode, tidak ada file header, dll. Masalahnya, bagaimanapun, adalah tidak adanya orang yang melakukan pekerjaan GUI yang serius. Tentu, saya bisa menggunakan GtkD, tetapi cobalah dan menggambar serangkaian grafik mewah. Saya melihat pekerjaan yang menjanjikan dalam mengintegrasikan dengan Chromium untuk GUI, tetapi proyek itu sebagian besar tidak berdokumen dan membutuhkan lebih banyak pemain di ruang itu. Saya berharap itu berubah, tapi itulah yang saya lihat di sini pada September 2015.
Volomike

Monitor objek adalah omong kosong **. Ini mengunci seluruh metode, benar-benar sangat boros ...
dev1223

@Vomomike Saya juga telah melihat D akhir-akhir ini dan juga sulit untuk membuat alat antarmuka grafis dengannya. Saat ini saya tidak memiliki solusi defacto untuk membuat alat GUI yang elegan dengan D dan itu adalah sesuatu yang dapat saya mulai atasi segera.
dimiguel

32

Saya tahu satu perusahaan kecil yang telah mengirim produk server surat ke pasar. Mereka memiliki setidaknya 2 orang yang bekerja penuh waktu di proyek.

Juga, pemain utama dalam bisnis TI memiliki beberapa karyawan menggunakan D dalam proyek internal yang lebih besar.

Lebih lanjut saya tahu satu perusahaan mencari dana ventura, beberapa (setidaknya 4) karyawan di perusahaan kecil menggunakan D baik paruh waktu atau penuh, dan setidaknya pasangan (termasuk saya) secara aktif mencari peluang di pasar konsultasi.

Saya mungkin telah meninggalkan beberapa yang seharusnya saya ketahui, dan mungkin beberapa yang belum pernah saya dengar, tetapi itu masih ada, karena di atas kurang lebih yang saya kenal sendiri melalui komunitas.

Sebagian kecil dari penghasilan saya saat ini berasal dari D.


Bisakah Anda mencalonkan organisasi? Akan menyenangkan mengetahui lebih banyak tentang proyek-proyek ini.
nbro

28

Saya menggunakan D untuk pengembangan web dan terbukti jauh lebih produktif dibandingkan dengan C / C ++. Ada banyak kerangka kerja berdasarkan ruby ​​/ php / python, tentu saja. Tetapi ketika Anda ingin mengembangkan sesuatu yang unik yang juga harus secepat C dan hampir semudah diprogram seperti yang Anda lakukan dalam banyak bahasa skrip, maka D adalah pilihan yang baik.


3
Bisakah aku bertanya? Kerangka atau pustaka apa yang Anda gunakan?
Zelenova

26

Saya menggunakan D untuk perangkat keras di lingkungan pengujian loop (HIL). Ini untuk pengujian perangkat lunak di bidang otomotif. D dapat digunakan di sini, karena sebagai bahasa pemrograman sistem dimungkinkan untuk digunakan dalam program waktu nyata (penangan IRQ dalam ekstensi waktu-nyata linux RTAI-LXRT).

Dengan port SWT / JFace yang sedang berlangsung saya berencana untuk melakukan lebih banyak dan bekerja di D yang akan saya lakukan di Jawa sebelumnya.



19

Saya menggunakan D dalam penelitian tentang kompilasi terjemahan kode waktu. Templating canggih yang dikombinasikan dengan tupel dan mixin membuat penerjemahan kode jauh lebih mudah dan memungkinkan penerjemahan kode dilakukan selama waktu kompilasi tanpa memerlukan alat terpisah.

Ada beberapa contoh fisikawan menggunakan D untuk meningkatkan program mereka dengan meta-programming di D.

video - Ceramah konferensi, tidak dapat menemukan situs sumber penggunaan fisikawan.


Proyek tambang yang sangat mirip, juga di D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Seluruh infrastruktur jaringan (lalu lintas tinggi) kami hanya didasarkan pada D1 dan tango. Kami adalah perusahaan startup muda di Berlin: sociomantic.com


14

Tugas kerja saya saat ini adalah sistem untuk menerjemahkan C # ke D. Ini adalah bagian dari proyek nirlaba untuk mengembangkan sistem perangkat lunak.




7

Banyak game yang dirilis oleh ABA Games ditulis dalam D 1.x, meskipun saya membayangkan port konsol harus ditulis ulang dalam C ++.

Saya telah menulis beberapa prototipe game di D, tapi saya tidak yakin apakah itu memenuhi syarat sebagai 'dunia nyata' sejak saya menulisnya untuk keuntungan saya sendiri dan tidak pernah merilisnya.


Bisakah Anda lebih spesifik mengenai game mana yang telah dibuat menggunakan D?
nbro

7

Saya menulis (dan saya masih memelihara dan mengembangkan) perangkat lunak untuk konversi protokol penguji dari berbagai stasiun pengujian perangkat keras ke format output standar untuk keterlacakan dan hal-hal seperti itu.

Semua bersama-sama lebih dari 5k baris kode, ditulis dengan D 1.x dan perpustakaan Phobos.

D sangat mudah dipelajari, dan mengabaikan beberapa jebakan (di perpustakaan Phobos) benar-benar menyenangkan untuk diprogram.


6

Saya menggunakan D untuk proyek penelitian saya tentang pengembangan algoritma optimasi global. Saya menerapkannya pada masalah pelatihan jaringan saraf. Terserah Anda apakah Anda ingin menyebutnya "dunia nyata".


Apakah kode sumber atau beberapa info tersedia tentang apa yang Anda lakukan?
nbro


6

Saya menggunakan D2, standar versi kedua. Saya menulis aplikasi real-time (mesin 3D, misalnya).

Bahasa semakin hari semakin kuat. D sangat pragmatis dan semua fitur yang tertanam, terutama paradigma metaprogramming, membuatnya jauh lebih dari C ++, menurut saya. Sintaksnya lebih jelas, Anda dapat menggunakan kekuatan pemrograman fungsional melalui fungsi-fungsi seperti filter atau kurangi , dan salah satu fitur yang paling penting: Anda dapat menggunakan semua lib C.

Jelas bahasa favorit saya, dan saya cukup yakin itu akan menjadi bahasa yang digunakan menyebar.


Apakah mungkin untuk melihat kode sumber dari sesuatu yang Anda buat menggunakan D?
nbro

Sudah lama sejak komentar itu! Saya mengkode di Rust dan Haskell sebagian besar sekarang, tapi saya punya beberapa proyek. Saya punya beberapa barang di github saya, tapi saya pikir tidak ada gunanya menggali. Komentar itu sudah berusia 4 tahun! Saya harus melihat status saat ini dari semua ini ...
phaazon

4

Saya kira kita dapat membaca sesuatu dari kurangnya jawaban langsung untuk pertanyaan ini dan itu adalah bahwa tidak banyak / salah satu dari responden acover stackoverflow menggunakan D. Saya juga sedikit terkejut tentang tingkat peringkatnya dalam daftar TIOBE yang Anda tautan ke.

Karena itu, Walter Bright telah bekerja pada bahasa ini selama beberapa tahun sekarang dan saya pikir dia memiliki cukup banyak 'pengikut' yang ingat betapa bagusnya pekerjaan yang dia lakukan dengan kompiler Zortech C ++ di tahun 90-an. Saya juga mencatat bahwa bahasa tersebut tampaknya condong ke arah fungsional sekarang.


3
Sebenarnya tidak mungkin untuk mencari D di situs web ini sekarang. Mencari "d" atau "d pemrograman" mengatakan "tidak ada hit", dan mencari di tag untuk "d" daftar halaman penuh dari tag yang berisi "d" tetapi tidak ada "d" dengan sendirinya. Jadi itu mungkin ada hubungannya dengan itu juga.
Baxissimo

20
cari [d] di kotak pencarian untuk mendapatkan pencarian berdasarkan tag.
Gregg Lind


0

Saya memulai proyek untuk menulis ulang beberapa alat internal kami dari Perl ke D. Saya memilih D karena saya sangat bersemangat tentang filosofi desain bahasa. Saya telah memprogram untuk waktu yang lama dan menggunakan banyak bahasa, mulai dari assembler hingga level tinggi (kebanyakan C) hingga bahasa scripting (kebanyakan Perl), dan D adalah bahasa pertama yang saya sukai dalam belajar selama bertahun-tahun. .

Saya memutuskan untuk pindah ke bahasa yang dikompilasi karena satu alasan utama - keamanan. Secara fungsional, Perl berfungsi cukup baik untuk toolset yang saya kerjakan, tetapi tidak aman - siapa pun yang dapat menjalankan skrip juga dapat membaca, menyalin, dan membuat versi alat yang dimodifikasi sendiri. (Dan mereka melakukannya.) Saya tahu ada metode berputar untuk mengatasi masalah ini (semacam), tetapi jujur ​​saja saya tidak punya cukup waktu dalam sehari untuk mengelola semua itu dan masih menyelesaikan pekerjaan utama saya.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.