Saya sedang membaca artikel di sini: http://www.paulgraham.com/avg.html dan bagian tentang "blub paradox" sangat menarik. Sebagai seseorang yang sebagian besar kode dalam c ++ tetapi memiliki eksposur ke bahasa lain (kebanyakan Haskell) saya menyadari beberapa hal berguna dalam bahasa ini yang sulit untuk ditiru di c ++. Pertanyaannya adalah terutama untuk orang-orang yang mahir dalam c ++ dan beberapa bahasa lainnya, apakah ada fitur bahasa yang kuat atau idiom yang Anda gunakan dalam bahasa yang akan sulit untuk dikonseptualisasikan atau diimplementasikan jika Anda hanya menulis dalam c ++?
Secara khusus kutipan ini menarik perhatian saya:
Dengan induksi, satu-satunya programmer dalam posisi untuk melihat semua perbedaan kekuatan antara berbagai bahasa adalah mereka yang mengerti yang paling kuat. (Ini mungkin apa yang Eric Raymond maksudkan tentang Lisp menjadikan Anda seorang programmer yang lebih baik.) Anda tidak dapat mempercayai pendapat orang lain, karena paradoks Blub: mereka puas dengan bahasa apa pun yang mereka gunakan, karena itu menentukan cara mereka berpikir tentang program.
Jika ternyata saya setara dengan programmer "Blub" berdasarkan penggunaan c ++ ini menimbulkan pertanyaan berikut: Apakah ada konsep atau teknik yang berguna yang Anda temui dalam bahasa lain yang Anda akan merasa sulit dikonsep seandainya Anda telah menulis atau "berpikir" dalam c ++?
Sebagai contoh, paradigma pemrograman logika yang terlihat dalam bahasa seperti Prolog dan Mercury dapat diimplementasikan dalam c ++ menggunakan library castor tetapi pada akhirnya saya menemukan bahwa secara konseptual saya berpikir dalam hal kode Prolog dan menerjemahkan ke c ++ yang setara ketika menggunakan ini. Sebagai cara memperluas pengetahuan pemrograman saya, saya mencoba mencari tahu apakah ada contoh serupa lainnya dari idiom berguna / kuat yang lebih efisien diekspresikan dalam bahasa lain yang mungkin tidak saya sadari sebagai pengembang c ++. Contoh lain yang terlintas dalam pikiran adalah sistem makro di lisp, menghasilkan kode program dari dalam program tampaknya memiliki banyak manfaat untuk beberapa masalah. Ini tampaknya sulit untuk diimplementasikan dan dipikirkan dari dalam c ++.
Pertanyaan ini tidak dimaksudkan untuk menjadi debat "c ++ vs lisp" atau debat jenis perang bahasa apa pun. Mengajukan pertanyaan seperti ini adalah satu-satunya cara saya dapat melihat kemungkinan untuk mencari tahu tentang hal-hal yang saya tidak tahu saya tidak tahu.
there are things that other languages can do that Lisp can't
- Tidak mungkin, karena Lisp adalah Turing-complete. Mungkin Anda bermaksud mengatakan bahwa ada beberapa hal yang tidak praktis dilakukan di Lisp? Saya bisa mengatakan hal yang sama tentang bahasa pemrograman apa pun .