Sembra esserci molto disaccordo su ciò che costituisce il potere linguistico. È la chiarezza, la leggibilità, l'adattabilità o semplicemente la completezza di Turing? Penso che tutti questi fattori entrino in gioco, quindi forse il modo migliore per vederlo è in termini di punti. Sì, sto parlando RPG a penna e penna, qui.
L'idea è che ogni lingua abbia (approssimativamente) lo stesso numero di "punti", che può essere distribuito arbitrariamente su un certo numero di categorie. Ai fini della discussione, diciamo che gli unici fattori sono la brevità, la leggibilità e la flessibilità. Un linguaggio potrebbe quindi essere estremamente teso e flessibile, ma di conseguenza molto difficile da leggere; o molto leggibile e flessibile, ma estremamente prolisso.
(Indubbiamente, il numero di punti che una lingua deve distribuire è definito dall'abilità del progettista e dell'implementatore, ma facciamo finta che tutti i progettisti linguistici siano ugualmente bravi in ciò che fanno.)
Quando un progettista di linguaggi decide di aumentare la forza di una lingua in una categoria, logicamente elimina una frazione di quella forza potenziale da ogni altra categoria. Questo è il motivo per cui è così spesso affermato che la progettazione del linguaggio di programmazione è una questione di compromessi. Da questo punto di vista, la potenza complessiva di un linguaggio è ancora non definibile, e dobbiamo tornare al metodo provato e vero di categorizzare i linguaggi in base ai loro punti di forza relativi. Non soddisfacente? Peccato.
Puoi argomentare in due modi: che una lingua potente è quella con una distribuzione di punti relativamente uniforme (jack di tutti i mestieri, maestro di nessuno), o con il maggior numero di punti possibile in un'area senza lasciare gli altri incustoditi (specialista) . Non esiste una lingua da "uomo rinascimentale", con perfetta padronanza in numerosi campi. E se questa è la tua definizione del linguaggio più potente possibile, allora sei semplicemente sfortunato.
Per ulteriori informazioni, questo articolo (per coincidenza anche Paul Graham, che sembra avere opinioni contrastanti) tocca il Credo che, per quanto difficile possa essere la determinazione di come , i linguaggi di programmazione variano effettivamente di potenza. Sostiene piuttosto persuasivamente che è molto facile vedere come un linguaggio è meno potente di quello preferito - manca la caratteristica X - ma è molto difficile vedere come sia effettivamente una lingua davvero più potente - fondamentalmente equivalente al linguaggio X, ma con un mucchio di altre cose gettate dentro. Vi lascio con una citazione da quel foglio:
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.