Per me la cosa più sorprendente della tradizione UNIX è che UNIX è stato praticamente scritto da un ragazzo - Ken Thompson mentre era al Bell Labs. C'è un affascinante resoconto di questo che può essere trovato qui: http://www.bell-labs.com/history/unix/
Alcune citazioni non hanno prezzo:
"Ho assegnato una settimana ciascuno al sistema operativo, alla shell, all'editor e all'assemblatore per riprodursi ...", ha spiegato Thompson.
Pipes:
Un'altra innovazione di UNIX è stata lo sviluppo di pipe, che hanno dato ai programmatori la possibilità di mettere insieme una serie di processi per un output specifico.
Non è stato facile "È molto facile dire" gatto in grep in ... "o" chi in gatto in grep "", ha spiegato McIlroy. "Ma ci sono tutti questi parametri secondari che hanno questi comandi; semplicemente non hanno argomenti di input e output, ma hanno tutte queste opzioni."
Sebbene stymied, McIlroy non ha abbandonato l'idea. "E per un periodo dal 1970 al 1972, di tanto in tanto dicevo:" Che ne dici di fare una cosa del genere? ", E ho fatto un'altra proposta, un'altra proposta, un'altra proposta. E un giorno sono arrivato con una sintassi per il guscio che accompagnava le tubazioni e Ken disse: "Lo farò!"
"Era stanco di sentire queste cose", ha spiegato McIlroy. "Non ha fatto esattamente quello che avevo proposto per la chiamata del sistema di pipe. Ne ha inventato uno leggermente migliore che alla fine è stato cambiato ancora una volta rispetto a quello che abbiamo oggi. Ha usato la mia sintassi goffa."
"Thompson ha visto che gli argomenti dei file non si sarebbero adattati a questo schema di cose ed è entrato e ha cambiato tutti quei programmi nella stessa notte. Non so come ... e la mattina dopo abbiamo avuto un'orgia di uno -liners ".
" Ha messo le pipe in UNIX, ha messo questa notazione in shell, tutto in una notte ", ha detto McElroy meravigliato.
Tecnicamente pulito come il risultato ottenuto, quando Thompson creò le pipe, mise anche qualcos'altro in UNIX: una filosofia.
Come ha descritto McIlroy, "la filosofia che tutti hanno iniziato a mettere in campo è stata:" Scrivi programmi che fanno una cosa e la fanno bene. Scrivi programmi per lavorare insieme. Scrivi programmi che gestiscono flussi di testo, perché questa è un'interfaccia universale ".