Apakah bahasa D merupakan alternatif yang kredibel untuk Java dan C ++? Apa yang diperlukan untuk menjadi alternatif yang kredibel? Haruskah saya repot mempelajarinya? Apakah itu layak untuk diinjili?
Alasan utama saya bertanya adalah bahwa dengan standar C ++ yang baru (c ++ 0x) hampir di sini, jelas bagi saya bahwa bahasa tersebut telah melewati titik tidak dapat kembali sehubungan dengan siapa pun yang pernah memahaminya. Saya tahu bahwa C / C ++ tidak akan pernah mati tetapi pada titik tertentu kita harus melanjutkan. Bahkan COBOL memiliki masa dan Java dalam banyak hal dibatalkan C ++. Jadi apa selanjutnya? Apakah D mengisi tagihan?
Jawaban:
Apa yang menentukan keberhasilan dan popularitas bahasa pemrograman untuk pengembangan perangkat lunak dunia nyata hanya sebagian terkait dengan kualitas bahasa itu sendiri. Sebagai bahasa murni, D bisa dibilang memiliki banyak keunggulan dibandingkan C ++ dan Java. Paling tidak itu adalah alternatif yang kredibel sebagai bahasa murni, semua hal lain dianggap sama.
Namun, hal-hal lain penting untuk pengembangan perangkat lunak - hampir lebih dari bahasa itu sendiri: portabilitas (berapa banyak platform yang dijalankannya), dukungan debugger, dukungan IDE, kualitas perpustakaan standar, dukungan perpustakaan dinamis, binding untuk API umum, dokumentasi, pengembang komunitas, momentum, dan dukungan komersial, hanya untuk beberapa nama. Dalam setiap salam itu, D tidak ada harapan di belakang Java, C ++, dan C #. Bahkan, saya berpendapat itu bahkan di belakang apa yang disebut "scripting" bahasa seperti Python, Perl, PHP, Ruby, dan bahkan JavaScript dalam hal ini.
Untuk menjadi tumpul, Anda tidak bisa membangun aplikasi lintas-platform skala besar menggunakan D. Dengan pustaka standar yang belum matang,
tidak ada dukungan dalam setiap IDE modern(ada plugin untuk Visual Studio dan Xamarin Studio / MonoDevelop), terbatas dukungan perpustakaan dinamis / bersama, dan sedikit ikatan ke bahasa lain, D sama sekali bukan pilihan hari ini.Jika Anda menyukai apa yang Anda lihat dari D, tentu saja, pelajarilah - tidak akan lama jika Anda sudah tahu Java dan C ++. Saya tidak berpikir penginjilan akan membantu - pada titik ini jika D akan berhasil, yang benar-benar dibutuhkan adalah lebih banyak orang diam-diam menggunakannya dan mengatasi kekurangan utamanya seperti perpustakaan standar dan dukungan IDE.
Akhirnya, untuk C ++, sementara sebagian besar setuju bahasanya terlalu rumit, ribuan perusahaan berhasil menggunakan C ++ sebagai bagian dari campuran bahasa yang sehat dengan hanya mengijinkan sebagian kecil dari bahasa yang didefinisikan dengan baik. Masih sulit untuk mengalahkan C ++ ketika kinerja mentah dan penggunaan memori kecil diperlukan.
sumber
Hanya untuk menambahkan pengalaman saya sendiri ke dalam campuran:
Sekitar setahun yang lalu saya bekerja pada proyek game skala kecil (3 coders) yang berlangsung 3 bulan, di mana kami menggunakan D sebagai bahasa utama kami. Kami memilihnya sebagian sebagai percobaan, sebagian karena sudah memiliki ikatan untuk SDL dan beberapa alat lain yang kami gunakan, dan sebagian besar untuk manfaatnya tampaknya lebih dari C ++.
Kami senang menggunakannya. Itu cepat dipelajari dan mudah untuk ditulis. Banyak fitur itu terbukti sangat berharga, dan saya rindu mereka telah kembali ke C ++.
Namun, poin-poin berikut membuat hidup kita lebih sulit:
Secara keseluruhan, kami suka menulis D. Itu membuat menulis kode sebenarnya mudah dan cepat dipelajari. Masalah yang saya sebutkan menggemakan jawaban yang telah diterima untuk pertanyaan ini - itu adalah bit "ekstra" yang perlu ditangani dalam D, inti dari itu adalah padat.
sumber
Saya setuju bahwa C ++ menjadi bahasa buntu - dan saya merasa sedih untuk mengatakan itu, setelah menggunakannya selama 17 tahun terakhir.
Saya pikir D adalah penerus yang sah untuk C ++. Dari perspektif bahasa itu "melakukan semua hal yang benar" (bahkan jika saya tidak setuju dengan keputusan setiap menit). Saya pikir dengan C dan C ++ pada penurunan tidak ada bahasa tingkat sistem lain yang benar-benar dapat melakukan apa yang mereka lakukan, sambil menahan diri di dunia bahasa modern - kecuali D! D tidak hanya mengisi peran ini - ia juga unggul dalam hal itu! Melihat D1.x seharusnya cukup untuk meyakinkan Anda tentang hal itu - tetapi ketika Anda melihat D2.0 itu membuat Anda terkejut. Saya berpendapat bahwa tidak ada bahasa lain di sekitar hari ini yang berfungsi serta D2.0 dalam menjembatani paradigma pemrograman imperatif dan fungsional - yang hanya akan menjadi lebih signifikan di tahun-tahun mendatang.
Kekurangan penerimaan utama - atau bahkan visibilitas - serta skala besar, matang, perpustakaan - adalah hambatan tentu saja. Namun saya tidak berpikir Anda dapat menghapusnya karena ini. Saya yakin bahwa D akan tumbuh menjadi salah satu bahasa paling penting di sekitar dalam beberapa tahun mendatang - dan mereka yang menganggapnya serius sekarang akan ditempatkan dengan baik untuk memimpin ketika waktu itu tiba.
Saya pikir perbedaan akan terjadi, sebagian besar, karena keterlibatan Andrei Alexandrescu. Itu bukan untuk mendiskreditkan Walter Bright dengan cara apa pun, yang telah melakukan pekerjaan penting dalam membawa D ke dunia. Tapi Alexandrescu adalah sosok yang penting, dan menarik, tentunya di komunitas C ++ - dan di situlah sebagian besar pengalih D potensial berasal. Dan dia juga telah memberikan kontribusi yang penting dan penting bagi D2.0 dalam dukungannya untuk pemrograman fungsional.
Mungkin masih berubah bahwa D ditakdirkan untuk menjadi Betamax bahasa tingkat sistem - tetapi uang saya ada di dalamnya berbalik dalam dua tahun ke depan.
sumber
Saya suka bahwa D adalah karya seorang jenius, terutama satu pikiran - Walter Bright, yang kompiler Zortech-nya fantastis pada zamannya.
Sebaliknya C ++ terlalu banyak dirancang oleh komite, bahkan jika Bjarne adalah pengaruh. Terlalu banyak fitur add-on dan sintaks baru yang aneh. Perbedaan ini mencerminkan kemudahan belajar dan kemudahan penggunaan sehari-hari, lebih sedikit bug.
Bahasa yang lebih koheren mengarah pada produktivitas dan sukacita programmer yang lebih baik - tetapi ini subjektif dan dapat diperdebatkan! (Saya kira saya harus memilih jawaban saya sendiri)
sumber
D adalah bahasa yang baik dan cukup populer , tetapi seperti semua bahasa, D hanyalah alat lain. Alat mana yang digunakan tergantung pada jenis orang Anda, bagaimana Anda berpikir, lingkungan tempat Anda bekerja, batasan bahasa apa yang menerapkan program, dan yang paling penting, program itu sendiri. Jika Anda punya waktu, saya pasti akan merekomendasikan belajar D. Skenario terburuk, Anda tidak akan pernah menggunakannya. Semakin besar kemungkinan Anda akan mempelajari aspek-aspek apa yang paling Anda sukai, dan dalam kondisi apa ia bersinar paling terang, dan manfaatkan hal itu ketika membuat program baru.
Saya akan merekomendasikan melihat grafik perbandingan D untuk melihat apa fitur untuk bahasa dan melihat apakah itu cocok untuk Anda.
sumber
Bahasa D modern. Tidak ada bahasa yang sempurna, dan tidak ada keraguan tentang ini. Tetapi bahasa dilahirkan untuk membuat hidup lebih mudah. Di mana bahasa D dibandingkan dengan C ++ memiliki banyak fitur yang baik, dalam hal kompleksitas. Banyak spesialisasi kombinasi bahasa lain yang terlibat, yang membantu pembuat kode untuk kode lebih cepat, dengan fitur TOP yang diperkenalkan oleh bahasa lain. Silakan lihat juga: untuk detail lebih lanjut tentang D dan bahasa lainnya
D vs C ++, adalah kompatibilitas, di mana bahasa C ++ besar terlibat dan membutuhkan kompatibilitas dengan D. D memungkinkan kompatibilitas 100% dengan C, yang masih merupakan kemenangan yang baik.
D vs C ++, C ++ adalah pendapat saya bahasa yang sangat bagus, tetapi sulit untuk kode, dan memakan waktu, membutuhkan lebih banyak pengalaman untuk mendapatkan kesuksesan, tetapi D memungkinkan untuk melakukan hal yang sama dengan kesederhanaan
D vs C ++, saya tidak yakin apakah C ++ berhasil, tetapi D tidak mengizinkan penetapan variabel tipe tak menggunakan "otomatis", yang bagus untuk memiliki variabel dinamis, ketika mengharuskan Anda dapat membuat tipe yang ketat
D vs C ++, jika Anda memiliki pengalaman bahasa lain, Anda dapat langsung memulainya, ia memiliki peta jalan belajar yang mudah, dan dirancang oleh tim yang berpengalaman dan dukungan perusahaan
D vs C ++, hal yang sangat menyenangkan yang saya temukan dari D, adalah gaya kode, ini memberikan tampilan dan rasa persis sama seperti C / C ++, sementara coding mengingatkan saya melakukan C / C ++ yang benar-benar modern yang disebut D
Ada banyak alasan bagus untuk bahasa D, tidak ada alasan untuk meremehkan bahasa apa pun, selalu merupakan pilihan pengguna.
sumber
Ini benar-benar tergantung pada apa kebutuhan Anda - aplikasi komersial skala besar yang ditulis dalam D memang ada di sisi server, dan untuk itu D (biasanya menggunakan Tango / Mango) sangat cocok, dan Anda cenderung dapat melayani lebih banyak permintaan dibandingkan dengan bahasa / platform lainnya.
Untuk solusi yang lebih khusus dalam hal protokol dan interaktivitas (yang banyak) Anda akan memiliki lebih banyak masalah menemukan perpustakaan yang diperlukan, dan kurangnya alat kemungkinan akan lebih memengaruhi Anda.
sumber
D sangat mengesankan, dan buku Andrei tentang itu ditulis dengan baik. Tetapi seperti yang orang lain katakan, Anda membutuhkan alat dan dukungan platform. GDC, dari waktu ke waktu, dapat menjadi jawaban bagi keduanya.
Pernahkah kamu melihat ini?
"GNU Debugger menambahkan dukungan bahasa D": http://www.linux.com/news/enterprise/biz-enterprise/358956-gnu-debugger-adds-d-language-support
Juga, situs digitalmars memiliki halaman yang membahas antarmuka ke C dan C ++ (untuk perpustakaan yang Anda tidak bisa hidup tanpanya). Saya bertanya-tanya apakah ada alat yang, diberi file header C, akan mencoba menulis prototipe D.
Secara pribadi saya pada saat ini tidak akan mendorong untuk melakukan proyek besar di D, tetapi saya akan menggunakan D untuk alat-alat internal, mendapatkan pengalaman dengan itu dan memperkenalkan orang lain untuk itu.
Pertanyaan aslinya adalah apakah D adalah alternatif yang kredibel untuk Java dan C ++. Saya tidak berpikir D dan Java benar-benar akan bersaing banyak dalam praktik; D bersaing dengan C ++ dan sekarang Go. Pertanyaan lain membahas perbedaan antara D dan Go, tetapi Go umumnya dianggap lebih mudah digunakan. Jadi saya curiga bahwa masa depan D sangat tergantung pada seberapa banyak ruang yang tersedia untuknya untuk bernapas antara C ++, raja bukit saat ini, dan Go, alternatif yang jauh lebih mudah yang didukung Google.
UPDATE: Saya baru saja menemukan bahwa bab favorit saya dari buku Andrei , yang ada di konkurensi, tersedia secara online gratis. Pasti layak dibaca!
Dan inilah diskusi loooong tentang relatif manfaat / tujuan / pendekatan dari Go dan D .
sumber
Sepertinya pertanyaan telah dijawab. D adalah bahasa yang lebih baik dibandingkan dengan C ++.
Pertanyaan apakah untuk tujuan praktis D memiliki infrastruktur yang lebih baik adalah yang kedua.
Singkatnya jika mereka berdua bahasa baru tanpa dukungan di sekitar mereka D adalah bahasa yang lebih baik, ergo itu adalah bahasa yang lebih baik.
sumber
Sebagai bahasa, saya selalu merasa bahwa D lebih dekat ke C # daripada C ++. Bukan dalam fitur dan perpustakaan, tetapi dalam "perasaan". Jauh lebih bersih, lebih bagus ... menyenangkan (daripada C ++). IMHO kendala terbesar dalam menjadi alternatif yang kredibel adalah alat, IDE dan debugger. Jika D mengatasi beberapa hambatan penggunaan / adopsi yang meluas, lebih banyak alat dan perpustakaan akan muncul. (Saya sendiri akan kembali ke D, jika akan ada IDE dan debugger yang dapat digunakan.)
sumber
Bekerja bagus untuk proyek kesayangan saya sendiri. Saya akan menggunakannya untuk proyek-proyek pengusaha tetapi tidak mengetahui seberapa sulit bagi mereka untuk menemukan seseorang untuk mengambil alih sumber setelah saya pindah. Tidak ada alasan teknis untuk menghindarinya, setidaknya pada platform yang didukung. (amit-amit)
sumber
Salah satu pendekatan adalah mencari pekerjaan di daerah Anda. Temukan pekerjaan yang ingin Anda lakukan dan lihat keterampilan apa yang mereka minta. Jika mereka meminta C ++ atau Ruby atau Oracle atau D, maka itu adalah keterampilan yang sebagian besar untuk membantu Anda mendapatkan pekerjaan yang Anda inginkan.
sumber
Sepertinya bahasa yang dirancang dengan sangat baik; jauh lebih baik daripada C - C ++ - Objective C. Saya dapat hidup tanpa IDE atau debugger untuk sementara waktu, tetapi bukan tanpa pustaka yang terdokumentasi dengan baik untuk D 2.0.
Saya akan periksa kembali dalam 6 bulan ...
sumber