Con l'estate ho approfittato per fare un po' il punto dello stato dell'arte di alcuni linguaggi di programmazione che uso quotidianamente (più o meno di buon grado). In questo articolo vorrei condividere con voi tre risorse che mi sono tornate utili per riscoprire JavaScript, uno dei linguaggi che si sono evoluti più rapidamente negli ultimi anni.

JavaScript, ogni anno una sorpresa

JavaScript è sicuramente uno dei linguaggi che mi mette più ansia: è quello che, a botte di novità sintattiche e semantiche, mi mette costantemente fuori dalla zona di comfort. Siamo al passo di una nuova release all'anno ormai e non parliamo di dettagli, parliamo anche di grandi evoluzioni.

Va reso subito onore ai cervelli e ai cuori che animano le evoluzioni di JavaScript perché sta diventando, giorno dopo giorno, un linguaggio veramente interessante nonostante fosse nato sotto una cattiva stella: ve lo ricordate negli anni '90 – poverino! – imbrigliato in quel mondo fatto di browser e virtual machine bacate?

Ma quello era il 1997 e dopo 18 anni di quiete Javascript ha alzato la testa. Con la release del linguaggio ECMAScript 2015, Javascript ha offerto agli sviluppatori strumenti per gestire applicazioni complesse con l'introduzione delle classi e dei moduli, di alcune strutture sintattiche di cui si sentiva la mancanza come gli iteratori, i cicli for/of, delle micidiali promise e di tutta una serie di potenziamenti per la reflection. Ovviamente questo, per chi come è me era cresciuto all'ombra di jQuery e Internet Explorer, significava tornare a studiare da zero un linguaggio che non aveva più nulla a che vedere con quello usato fino a ieri. Vi dirò: ne valeva dannatamente la pena per uscire da quel purgatorio ingiustificabile che era il mondo JS in quel momento.

Dopo questa sorpresa, l'uscita repentina dell'ECMAScript 2016 a solo un'anno di distanza mi aveva un po' preoccupato: avrei dovuto ricominciare da zero anche questa volta? Alla fine si trattava di un assestamento delle tante novità precedenti. Un sospiro di sollievo perché già mi vedevo costretto a tornare su Stack Overflow a fare domande sulle nuove feature del linguaggio come un ragazzino alla sua prima pagina web.

Sollievo durato 12 mesi perché ECMAScript 2017 era bello pronto ad azzerare ogni mia certezza con novità come la concurrency, l'await/async, gli observable stream o l'overload degli operatori. Tutto molto bello e meritorio ma – diamine! – questa è roba grossa che cambia le possibilità architetturali dei software, i pattern utilizzabili e il modo di pensare il codice. Eccomi d'improvviso, con il cappello con le orecchi da asinello, nell'angolo buio di Stack Owerflow: di nuovo!?!

Quello a sinistra sembra Lucignolo, ma sono io dopo l'uscita dell'ECMAScript 2017.

Per chi ha fatto una scelta di vita fatta di promise e TypeError questo non sarà un gran problema, ma per tutti gli altri che vivono di poliglottismo informatico è come essere condannati ad una vita da newbie: avere 20 anni di esperienza e ritrovarsi a dover sfogliare sempre da zero siti e corsi 101 di Javascript rileggendo le lunghe disserzioni su var e let per essere sicuro che non sia cambiato nulla...

Le tre mosse per tenere a galla il nostro JavaScript

Con mio sollievo, questa vita di incertezza non la patisco solo io. Il web offre diverse risorse dedicate a chi vuole rinvigorire e aggiornare le competenze su questo linguaggio senza ripartire da zero così che l'arrivo del Giugno di ogni anno, mese tradizionalmente scelto per il rilascio di nuove release di JS, non scateni fattori di ansia e spaesamento fuori media statistica.

Ne ho selezionate tre in particolare – escludendo le specifiche dello standard – che vado a condividere rigorosamente in ordine crescente di risorse mentali ed emotive necessarie per apprezzarle.

#3 – Mozilla Developer Network: un classico

La community degli sviluppatori Mozilla è una risorsa preziosa per completezza ma soprattutto è di una chiarezza quasi unica nel panorama della documentazione informatica. La sezione dedicata a JavaScript è sicuramente una delle mie risorse preferite per capire questo linguaggio. Vi segnalo in particolare "Una reintroduzione al Java Script (Tutorial JS)" un articolo che pensa ai disgraziati come noi che conosciamo il JS ma poi alla fine "...ogni volta ne scopri una nuova". L'articolo ripresenta le basi del linguaggio sorvolando sui concetti consolidati e va a scavare dove serve.

#2 – You don't know JS: un must

Kyle Simpson è uno dei più interessanti esperti di JS che si trovino in giro al momento. Soprattutto, è uno dei primi che ha capito quanto poco JavaScript sia compreso e conosciuto veramente. Si è preso tanto a cuore il destino del JS da dedicargli una collana di libri (pubblicati anche su GitHub) per andare al di là della superficie, al di là dei copia e incolla da Gist.

You don't know JS è una collana che andrebbe letta e riletta come un grande classico. In particolare, per chi vuole aggiornare e capire che impatto hanno le novità delle ultime release del linguaggio il volume da leggere è: "You Don't Know JS: ES6 & Beyond".

#1 – Babel.js: imparare dai pazzi furiosi

Questa non so se me la passerete, ma ve la consiglio comunque. Ovvero usare l'area live di Babel.js per guardare come gli esempi delle ultime versioni di JavaScript sono tradotte in versioni precedenti. Vedere come Babel.js trasforma JS da una versione all'altra è un po' come spiare lo schermo di Evan You mentre lavora al suo framework: un piacere voyeuristico che permette di intuire i percorsi logici, le idee di design e i trucchi di performance che le varie feature nascondono nella loro semantica. Imparare dai pazzi furiosi come il team di Babel, quelli di asm.js e compagnia cantante è impegnativo ma dà tanta soddisfazione.

Ok, queste sono le mie tre risorse top: avete qualche suggerimento nel vostro cassetto per rimanere a galla in questo spietato mondo fatto di async e di SIMD? Fatecelo saper su Twitter!