Pascal: n.

Un linguaggio discendente dall'Algol progettato da Niklaus Wirth sul CDC 6600 intorno al 1968-68 come uno strumento di istruzione per una programmazione elementare. Questo linguaggio, progettato principalmente per salvaguardare gli studenti dall'impazzire e quindi estremamente limitativo dal punto di vista della programmazione general-purpose, fu successivamente pubblicizzato come uno strumento per tutti gli usi e, in effetti, diventò l'antenato di una grande famiglia di linguaggi comprendente Modula-2 e Ada (vedi anche bondage-and-discipline language). Il punto di vista hacker sul Pascal è probabilmente riassunto meglio da un documento devastante (e, nel suo stile impassibile, assolutamente divertente) del 1981 di Brian Kernighan (famoso per il K&R) intitolato Why Pascal is Not My Favorite Programming Language (N.d.T. = perchè il pascal non è il mio linguaggio di programmazione preferito), che fu rifiutato dalle riviste tecniche ma circolò ampiamente tramite fotocopie. Forse è stato pubblicato su Comparing and Assessing Programming Languages, scritto da Alan Feuer e Narain Gehani (Prentice-Hall, 1984). Parte della sua discussione merita di essere ripetuta qui, perchè le sue critiche sono ancora adatte allo stesso Pascal dopo molti anni di miglioramento e può ancora rappresentare un'accusa verso molti altri linguaggi bondage-and-discipline. (L'intero saggio è disponibile su http://www.lysator.liu.se/c/bwk-on-pascal.html.) Alla fine del sommario del processo contro il Pascal, Kerninghan ha scritto:

9. Non c'è via di fuga

Questo ultimo punto è forse il più importante. Il linguaggio è inadeguato ma limitato, perchè non c'è modo di fuggire dai suoi limiti. Non ci sono costrutti per disattivare il controllo sui tipi quando è necessario. Non c'è modo per sostituire l'ambiente di esecuzione difettoso con uno più adeguato, a meno che uno non controlli il compilatore che definisce le “procedure standard”. Il linguaggio è blindato.

Quelli che usano il Pascal per programmare seriamente cadono dentro una trappola fatale. Dato che il linguaggio non è potente, dev'essere esteso. Ma ogni gruppo estende il Pascal nella sua direzione, per farlo apparire come il linguaggio che desiderano davvero. Estensioni per compilazioni separate, COMMON in stile FORTRAN, tipi di dato per stringhe, variabili statiche interne, inizializzazione, numeri ottali, operatori sui bit, etc., tutto aggiunto all'utilità del linguaggio per un singolo gruppo ma distrugge la sua portabilità per altri.

Sembra che sia un errore usare Pascal per qualunque cosa molto al di sopra del suo intento originale. Nella sua forma pura, il Pascal è un linguaggio giocattolo, adatto per insegnare ma non per programmare davvero.

Il Pascal per questo è stato del tutto tolto (principalmente dal C) dalle nicche che aveva acquisito nelle applicazioni serie e nella programmazione di sistema, e dal suo ruolo di linguaggio di insegnamento da parte del Java.