Un TIR chiamato nodejs
Insomma da quando ho ricominciato ad interessarmi di programmazione allo stato pratico, Node.js è stata la piattaforma "motorizzata" da javascript che più mi ha entusiasmato. Perché non occorre reinventare la ruota e imparare cose strane da zero (benché poi più o meno tutti i linguaggi si assomiglino); perché Javascript con tutti i contro che gli si possano additare è un linguaggio molto permissivo e duttile; perché sembrava una cenerentola ed invece è quasi una regina.
Javascript è storicamente concepito come un software che gira nel computer dell'utente, così come html e css che sono forniti dal server ma interpretati e messi in opera sul computer dell'utente (attraverso il browser). Con Node.js le cose non sono più così e può anche computare nel server, anzi addirittura diventare un webserver lui stesso.
All'inizio quando si parte ad avventurarsi in questa selva oscura, uno crede di dover appunto imparare questa piattaforma, poi pian piano...
screenshot preso da internet
Infatti Node.js da solo non basta e ti rendi conto che è una motrice. Chiaramente ti serve un database e ce né uno proprio apposito che si chiama MongoDB che parla in Javascript nativo. Beh fin qui nulla di che.
Figo! Ora si parte...beh quasi... Mongodb da solo non è completo, quindi ci serve Robomongo per visualizzare i database e Mongoose.js per gestire i database come oggetti. E giù altre 3 librerie con svalangate di funzioni perlomeno da leggersi, perché se manco sai esistano, mai saprai come risolvere i problemi.
Ok ora si parte... beh quasi, Node.js è una piattaforma e quindi ci serve un framework che ci permette di gestire lato server le richieste, tipo Express.js, e via un altro doc con pagine infinite di funzioni.
Ok, ma ora si parte... beh quasi. E come gestisci il template e il render delle pagine? e qui il salto è letteralmente nel vuoto. Puoi utilizzare Handlebar.js ma poi c'è bisogno di Bootstrap.js per gestire il template responsivo e di vari elementi della pagina. Oppure il Material Design che tanto piace, oppure Vue.js oppure React.js di Facebook che spopola letteralmente di questi tempi.
Ok, dai React lo usano tutti... ma React (e via una bordata di pagine tra funzioni ed altro) da solo non basta, occorre React DOM per leggere l'albero della pagina dove interagire. E per il template occorre un traduttore, quello interno non se lo fila nessuno, per cui occorre Babel.js (e un doc con quintali di altre funzioni). Dietro React poi ci sono un sacco di librerie già pronte e che semplificano e velocizzano il lavoro.
Mi gira la testa...tra una cosa e l'altra abbiamo caricato un numero di librerie (sotto forma di moduli) che mi domando se il gioco valga la candela. Vista da fuori si ha la sensazione di una specie di guerra, tutti questi software aspirano a diventare uno standard che ancora non c'è e forse mai ci sarà. Lo stesso Node.js non è l'unico ed è in competizione con altri.
Come se non fosse finita, tutte queste librerie sono corpi vivi, si evolgono, quindi i doc che ti sei letto, diventano deprecati, nuove funzioni cambiano le vecchie, certo per migliorarsi. Ma tanto chi diavolo si ricorda anche solo un quarto di tutto quel che si è letto.
E' un mondo difficile..
Interessante, é un mondo a cui vorrei avvicinarmi, al momento pero conosco meno di zero. Pian pianino. Grazie del tuo post
Documentazione se ne trova, ma appunto spesso sarà correlata, tipo node e mongodb, oppure node e react, o solo react (ma che include node).
Complimenti , ottimo post.
Grazie
...si spende troppo tempo a studiare manuali che tra sei mesi saranno obsoleti, o quasi. Una situazione che conosco ben 😖
e' vero... bisogna avere uno scopo progettuale e portarlo avanti cercando di fare esperienza sul campo.