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.