Buradaki yazıyı okuyordum: http://www.paulgraham.com/avg.html ve "blub paradoksu" ile ilgili bölüm özellikle ilginçti. Çoğunlukla c ++ kodlayan ancak diğer dillere maruz kalan (çoğunlukla Haskell) biri olarak, bu dillerde c ++ dilinde çoğaltılması zor olan bazı yararlı şeylerin farkındayım. Asıl soru, hem c ++ hem de başka bir dilde yetkin kişiler için, sadece c ++ ile yazıyorsanız kavramsallaştırmak veya uygulamak zor olacak bir dilde kullandığınız güçlü bir dil özelliği veya deyim var mı?
Özellikle bu alıntı dikkatimi çekti:
İndüksiyonla, çeşitli diller arasındaki iktidardaki tüm farklılıkları görebilecek konumda olan tek programcılar en güçlü olanı anlayanlardır. (Muhtemelen Eric Raymond'ın Lisp'i daha iyi bir programcı yapması için kastettiği şey buydu.) Blub paradoksu nedeniyle diğerlerinin görüşlerine güvenemezsiniz: kullandıkları dilden memnunlar, çünkü kullandıkları dilin programlar hakkında düşünmenin yolu.
Eğer c ++ 'ı kullanarak "Blub" programcısının eşdeğeri olduğum ortaya çıkarsa, bu şu soruyu gündeme getirir: Başka dillerde karşılaştığınız, kavramsallaştırmakta zorlandığınız herhangi bir yararlı kavram veya teknik var mı? c ++ 'ta yazıyor veya "düşünüyor"?
Örneğin, Prolog ve Mercury gibi dillerde görülen mantık programlama paradigması, castor kütüphanesi kullanılarak c ++ 'ta uygulanabilir, ancak sonuçta kavramsal olarak Prolog kodu olarak düşündüğümü ve bunu kullanırken c ++ eşdeğerine çevirmeyi düşünüyorum. Programlama bilgimi genişletmenin bir yolu olarak, bir c ++ geliştiricisi olarak farkında olamayacağım başka dillerde daha verimli bir şekilde ifade edilen başka yararlı / güçlü deyimler örnekleri olup olmadığını bulmaya çalışıyorum. Akla gelen bir başka örnek lisp'teki makro sistemdir, program kodunu programın içinden çıkarmanın bazı problemler için birçok faydası var gibi görünüyor. Bunu uygulamak ve c ++ içinden düşünmek zor gibi görünüyor.
Bu soru, "c ++ vs lisp" tartışması veya herhangi bir dil savaşı türü tartışması değildir. Bunun gibi bir soru sormak, bilmediğim şeyler hakkında bilmediğim şeyleri öğrenmenin tek yoludur.
there are things that other languages can do that Lisp can't
- Muhtemelen , çünkü Lisp Turing tamamlandı. Belki de Lisp'te yapmakta pratik olmayan bazı şeyler olduğunu söylemek istediniz? Herhangi bir programlama dili için aynı şeyi söyleyebilirim .