Il C è morto, viva il C!

Ho un grossissimo debito di riconoscenza verso il linguaggio C e, di conseguenza, verso Dennis Ritchie, il suo creatore.

E’ stato il linguaggio che più di tutti mi ha aiutato all’inizio della mia carriera quando ancora avevo la grossissima fortuna di scrivere del codice per cose fighe. Niente bolle e fatture come capitava alla maggior parte dei mie colleghi ma, piuttosto, compilatori, spooler di stampa, interpreti. Tutta roba superfiga.

Lo imparai moltissimi anni prima di cominciare a lavorare e fu su uno splendido Amiga 1000 che lo usai per scriverci le prima righe di codice.

Quel libro me lo ricordo benissimo. The C Programming Language con la sua copertina bianca e la grandissima lettera C di colore blu sulla copertina. Lo ho divorato e negli anni lo ho letto e riletto centinaia di volte arrivando a squadernare la mia copia che, mi dispiace moltissimo, ho perso durante uno dei vari traslochi.

Ad ogni occasione scoprivo qualcosa di nuovo ed ogni volta ne rimanevo affasciato. Mi piaceva la sintesi del linguaggio e la sua potenza assoluta.

Certo ho realizzato sin da subito che questa potenza era pericolosa. Il primo pezzo di codice che scrissi sull’Amiga 1000 generò istantaneamente una Guru Meditation quando provai a lanciare il programma dal terminale al termine della sua compilazione.

Il C ti permette di fare delle cose fighissime ma delle quali devi avere piena consapevolezza per non fare casini irreparabili.

A me questa cosa piaceva da impazzire perché ti costringeva a pensare a quello che stavi facendo con attenzione. Dovevi avere rispetto del linguaggio e della macchina sulla quale questo linguaggio faceva funzionare una applicazione.

Per questa ragione quando ieri sono incappato in questo articolo mi sono preso il tempo necessario per gustarlo: Some Were Meant for C

Ora, so che è una affermazione forte, ma per me è stato come leggere una lettera d’amore ad una persona non più giovanissima.

This essay is a
C programmer’s reaction to the call to abandon ship.

it traces C’s ultimate strength to a
communicative design which does not fit easily within the
usual conception of “a programming language”, but can be
seen as a counterpoint to so-called “managed languages”.

“C doesn’t cause buffer overflows;
programmers cause buffer overflows”

Non vi svelo altro perché se siete come me siete già fuggiti da questo sito per andare a leggere quel paper che vi ho linkato sopra.

Grazie C. Ti devo molto, ancora oggi. Se tu non ci fossi stato molto probabilmente oggi non sarei qui. Ancora con lo stesso entusiasmo di allora.


Shameless self promotion ahead…

Nel caso non ve ne foste accorti qui in giro c’è anche un podcast con il quale potrete intrattenervi.

Quello di seguito è l’ultimo episodio.

Qui, invece tutti gli episodi pubblicati sino ad ora: Parole Sparse – Il Podcast


0 0 vote
Article Rating
Subscribe
Notificami
guest
2 Commenti
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Andrea

Ho letto l’articolo di Kell tempo fa che mi trova d’accordo su molti dei punti indicati. Rispolverare ancor oggi la mia copia del “White Book” di tanto in tanto mi ha sempre dato un senso di appagamento e la sfrontatezza adolescenziale, tipica di chi si sentiva privilegiato ad affrontare Sistemi al posto dell’appiattimento gestionalista tutt’oggi imperante in Italia. Per continuare sulla corsia dei ricordi consiglio una piacevole e divertente intervista Kernighan vs Thompson al VCF 2019 (youtube). Consiglio anche un libro, differente dall’originale ma interessante dato che lo ha scritto uno dei due autori. Completa a suo modo, e con… Leggi il resto »