Stavo leggendo l'articolo qui: link e la parte relativa al "paradosso del blub" era particolarmente interessante. Come qualcuno che codifica principalmente in c ++ ma ha esposizione ad altri linguaggi (principalmente Haskell) sono a conoscenza di alcune cose utili in questi linguaggi che sono difficili da replicare in c ++. La domanda è principalmente rivolta a persone con competenze sia in c ++ che in altre lingue, c'è qualche potente linguaggio o idioma che usi in un linguaggio che sarebbe difficile da concettualizzare o implementare se stavi scrivendo solo in c ++?
In particolare questa citazione ha attirato la mia attenzione:
By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.
Se si scopre che io sono l'equivalente del programmatore "Blub" in virtù dell'uso di c ++, sollevo la seguente domanda: ci sono concetti o tecniche utili che hai incontrato in altre lingue che avresti trovato difficile concettualizzare hai scritto o "pensato" in c ++?
Ad esempio il paradigma di programmazione logica visto in linguaggi come Prolog e Mercury può essere implementato in c ++ usando la libreria di castor, ma alla fine trovo che concettualmente sto pensando in termini di codice Prolog e di conversione all'equivalente c ++ quando si usa questo. Come un modo per ampliare le mie conoscenze di programmazione, sto cercando di scoprire se ci sono altri esempi simili di idiomi utili / potenti che sono espressi in modo più efficiente in altri linguaggi che potrei non essere a conoscenza di uno sviluppatore c ++. Un altro esempio che viene in mente è il sistema macro in lisp, che genera il codice del programma all'interno del programma sembra avere molti vantaggi per alcuni problemi. Questo sembra essere difficile da implementare e pensare dal c ++.
Questa domanda non è intesa come un dibattito "c ++ vs lisp" o qualsiasi tipo di dibattito sul tipo di guerra delle lingue. Chiedere una domanda come questa è l'unico modo in cui posso vedere possibile scoprire cose che non so di cui non conosco.