ฉันอ่านบทความที่นี่: http://www.paulgraham.com/avg.htmlและส่วนหนึ่งเกี่ยวกับ "blub paradox" นั้นน่าสนใจเป็นพิเศษ ในฐานะที่เป็นคนที่ใช้รหัสใน c ++ เป็นหลัก แต่มีการสัมผัสกับภาษาอื่น ๆ (ส่วนใหญ่เป็น Haskell) ฉันรู้ว่ามีบางสิ่งที่มีประโยชน์ในภาษาเหล่านี้ซึ่งยากที่จะทำซ้ำใน c ++ คำถามส่วนใหญ่สำหรับคนที่มีความเชี่ยวชาญทั้งใน c ++ และภาษาอื่น ๆ มีคุณสมบัติภาษาที่ทรงพลังหรือสำนวนที่คุณใช้ในภาษาที่ยากที่จะคิดหรือนำไปใช้ถ้าคุณเขียนเฉพาะใน c ++?
โดยเฉพาะอย่างยิ่งคำพูดนี้ดึงดูดความสนใจของฉัน:
โดยอุปนัยผู้เขียนโปรแกรมเพียงคนเดียวที่สามารถเห็นความแตกต่างของอำนาจระหว่างภาษาต่าง ๆ คือผู้ที่เข้าใจผู้ที่มีอำนาจมากที่สุด (นี่อาจเป็นสิ่งที่ Eric Raymond มีความหมายเกี่ยวกับ Lisp ทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น) คุณไม่สามารถไว้วางใจความคิดเห็นของผู้อื่นได้เนื่องจาก Blub Paradox: พวกเขาพอใจกับภาษาใดก็ตามที่พวกเขาใช้เพราะมันกำหนด วิธีที่พวกเขาคิดเกี่ยวกับโปรแกรม
หากปรากฎว่าฉันเป็นเทียบเท่าโปรแกรมเมอร์ "Blub" โดยอาศัยการใช้ c ++ สิ่งนี้ทำให้เกิดคำถามต่อไปนี้: มีแนวคิดหรือเทคนิคที่มีประโยชน์ที่คุณพบในภาษาอื่นที่คุณคิดว่ายากที่จะทำให้เป็นแนวคิดได้หรือไม่ เคยเขียนหรือ "คิด" ใน c ++?
เช่นกระบวนทัศน์การเขียนโปรแกรมเชิงตรรกะที่เห็นในภาษาเช่น Prolog และ Mercury สามารถนำมาใช้ใน c ++ โดยใช้ไลบรารี castor แต่ท้ายที่สุดฉันก็พบว่าแนวคิดที่ฉันคิดในแง่ของรหัส Prolog และการแปลเป็น c ++ เทียบเท่าเมื่อใช้สิ่งนี้ เป็นวิธีการขยายความรู้การเขียนโปรแกรมของฉันฉันพยายามที่จะหาว่ามีตัวอย่างที่คล้ายกันอื่น ๆ ของสำนวนที่เป็นประโยชน์ / มีประสิทธิภาพที่แสดงออกอย่างมีประสิทธิภาพในภาษาอื่นที่ฉันอาจไม่ทราบว่าเป็นนักพัฒนา c ++ อีกตัวอย่างหนึ่งที่นึกถึงคือระบบมาโครในเสียงกระเพื่อมสร้างรหัสโปรแกรมจากภายในโปรแกรมดูเหมือนว่าจะมีประโยชน์มากมายสำหรับปัญหาบางอย่าง ดูเหมือนจะเป็นการยากที่จะนำไปใช้และคิดจากภายใน c ++
คำถามนี้ไม่ได้มีไว้เพื่อการอภิปราย "c ++ vs lisp" หรือการอภิปรายประเภทสงครามภาษาใด ๆ การถามคำถามเช่นนี้เป็นวิธีเดียวที่ฉันสามารถเห็นความเป็นไปได้ในการค้นหาเกี่ยวกับสิ่งต่าง ๆ ที่ฉันไม่รู้ว่าไม่รู้
there are things that other languages can do that Lisp can't
- ไม่น่าจะเป็นเพราะ LISP นั้นทัวริงสมบูรณ์ บางทีคุณตั้งใจจะบอกว่ามีบางสิ่งที่ไม่เหมาะสมที่จะทำใน Lisp? ฉันสามารถพูดสิ่งเดียวกันกับภาษาโปรแกรมใดก็ได้