Framework, linguaggi di programmazione: Codificare da zero contro l’uso di un framework
Per una veloce rinfrescata sulle differenze tra questi due termini – un linguaggio di programmazione è essenzialmente il modo in cui comunichiamo con i computer e diciamo loro cosa fare attraverso l’uso della sintassi e della semantica.
Un framework, d’altra parte, è un insieme di programmi messi insieme per portare a termine un compito, rendere la codifica più efficiente e in generale rendere la vita dei programmatori più facile.
Ora i due non sono esattamente opposti l’uno all’altro, ma c’è un dibattito in corso nella comunità di programmazione su cosa sia più importante per i programmatori avere più familiarità con: I linguaggi di programmazione (i dadi e i bulloni) o i framework (più veloci e, a volte, più funzionali).
Alcuni dei framework più popolari di cui potreste aver sentito parlare includono Ruby on Rails e Angular.JS, tra gli altri. Ma sia i linguaggi di programmazione che i framework che li accompagnano continuano a salire e scendere ogni giorno.
Quindi cosa significa questo per voi?
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal (DevOps Institute.)
Come far crescere il tuo team SERVERLESS
Sheen Brisals (The LEGO Group)
MLOPS: CONSEGNA CONTINUA DI SISTEMI DI APPRENDIMENTO MACCHINA
Hauke Brammer (finpair GmbH)
Frameworks vs. soluzioni personalizzate
In un mondo perfetto, si saprebbe tutto quello che c’è da sapere sia sui framework che sui linguaggi. Ma non viviamo in un mondo perfetto e il tuo tempo è prezioso.
Diamo un’occhiata alle differenze tra le due opzioni e al perché è più probabile che tu tragga beneficio da una vasta conoscenza dei frameworks piuttosto che essere acutamente a conoscenza di tutti i pro e i contro del linguaggio di programmazione.
Costruire da zero
Lo sviluppo non è facile, quindi perché renderti le cose più difficili?
È un’equazione abbastanza semplice, al suo livello più fondamentale: Perché partire da zero quando puoi approfittare di strumenti già progettati per aiutarti nei tuoi sforzi di programmazione?
Il punto è che molti framework hanno fatto gran parte del lavoro per te e possono creare un’esperienza più efficiente da parte tua.
Certo, potresti non essere totalmente d’accordo con ogni decisione presa dal creatore del framework. Potreste anche essere in grado di farlo meglio voi stessi se trasferiste il linguaggio nella vostra sintassi di codifica preferita. Ma tutto questo ha un costo in termini di tempo.
Trasferire tutto nel vostro linguaggio preferito potrebbe richiedere giorni e forse anche anni, a seconda della vastità del framework o di ciò che esattamente state cercando di copiare.
Potreste non ottenere dal framework tutto quello che state cercando, o almeno, non esattamente nel modo in cui lo preferireste, ma l’alternativa è partire da zero, e questo non è davvero fattibile considerando i limiti di tempo che ci vengono imposti per il semplice fatto di essere mortali e non avere una quantità indefinita di tempo per armeggiare con tutto in modo che sia esattamente come vogliamo.
SEE ALSO: Tendenze tecnologiche 2017: Ecco i migliori frameworks
I frameworks rendono le cose più semplici
Qui c’è uno sguardo abbastanza pratico su tutti i modi in cui Ruby on Rails aiuta gli utenti a ridurre alcune delle minuzie di infinite ore di codifica.
Piccole cose come la rimozione dei punti e virgola e altri piccoli trucchi permettono ai programmatori di tagliare qualche angolo qua e là senza essere penalizzati.
Ovviamente, hai ancora bisogno di una conoscenza abbastanza completa di Ruby per lavorare su Rails, ma alla fine della giornata, non è necessario essere un programmatore esperto in Ruby per passare a Rails.
State ancora codificando, ma molti piccoli dettagli e aspetti più frustranti della codifica saranno ripuliti da buoni framework, e questo è un bonus che non volete perdervi.
Devi già preoccuparti di tanti altri aspetti del tuo codice, dal design generale ai problemi di sicurezza, quindi perché non lasciare che il framework faccia un po’ del lavoro pesante per te?
L’automazione sta prendendo il sopravvento
C’è stato un tempo in cui ogni singolo colpo di tastiera doveva essere esatto perché il tuo programma funzionasse come volevi. Ma con il progresso tecnologico arriva la levigatura dei bordi.
Non è più necessario passare attraverso migliaia di linee di codice con un pettine a denti stretti. Invece, molte di quelle inutili aggiunte o passi falsi sono eliminati da compilatori e protocolli automatici progettati per trovare questi pezzi di codice non necessari.
Questa evoluzione ha de-enfatizzato quanto preciso e familiare si debba essere con ogni particolare codice, perché le conseguenze di fare un errore o di non fare le cose esattamente nel modo giusto erano molto più grandi.
Impara gli strumenti giusti per il lavoro
Come ho detto all’inizio di questo pezzo, il coding si evolve. Cambia. Cresce.
E uno dei modi in cui è cresciuto è la dipendenza da interfacce di programmi applicativi (API) e algoritmi per aiutarvi a realizzare il compito che vi siete prefissati.
I frameworks, per esempio, di solito definiscono e implementano algoritmi, e la correttezza degli algoritmi può a volte essere più cruciale per il successo della programmazione rispetto alle specifiche della sintassi.
Ancora una volta, si possono riconfigurare questi algoritmi, ma si rischia di fare un errore che potrebbe far deragliare il progetto. Allo stesso modo, è un’altra questione di tempo. Perché aggiungere ore di lavoro e aumentare il rischio di sconvolgere il vostro codice quando potete invece trovare il modo di farvi bastare un algoritmo già funzionante e perfettamente funzionante implementato dal framework?
Ancora una volta, potrebbe non darvi tutto quello che volete. Ma come dice la canzone dei Rolling Stones, vi darà ciò di cui avete bisogno.
SEE ALSO: New JAX Magazine issue – What’s next for frameworks?
Cosa aggiungono i frameworks che i linguaggi di programmazione non aggiungono
Frameworks e linguaggi di programmazione sono intrecciati. Non è un binario. Non è uno o l’altro. Lavorano di concerto e i programmatori devono conoscerli entrambi abbastanza bene per essere veramente efficaci. Naturalmente, a volte vi troverete di fronte a situazioni che richiedono soluzioni complesse che un framework non sarà in grado di risolvere. Per esempio, a volte un problema unico richiederà un insieme specifico di soluzioni che un framework non può fornire, e quindi si dovrà tornare alla programmazione.
Ma ecco il punto – ci si può concentrare solo così tanto con il proprio tempo per imparare sia i framework che i linguaggi che migliorano. Il tempo è una risorsa e bisogna spenderlo saggiamente. E una volta che hai una comprensione abbastanza completa sia dei framework che dei linguaggi di programmazione, su quale dovresti investire più tempo per imparare? Quale vi renderà alla fine un programmatore migliore?
La risposta è i framework. Vi renderanno veloci, più efficienti e meno inclini a fare uno stupido errore umano. Sono l’equivalente di un’autostrada rispetto alla guida in città. Le autostrade sono più snelle e hanno rimosso molti ostacoli come edifici e luci. Certo, potrebbe non sempre piacerti la direzione di un’autostrada, o pensare che una buca dovrebbe essere riparata, o sentire che sarebbe più efficiente reinstradare certi tratti, ma non hai intenzione di uscire dalla tua auto e iniziare a ricostruirla a mano, giusto?
Perché se l’obiettivo è un viaggio più veloce ed efficiente, allora ricostruire l’autostrada richiederebbe troppo tempo rispetto all’usarla così com’è.
Questo è fondamentalmente l’accordo che stai ottenendo con i framework. Più veloce, efficiente, sicuro. Forse non sempre secondo le vostre specifiche esatte ma, data l’alternativa, i framework sono qui per rendervi la vita più facile e semplicemente offrono più di quanto possano fare i linguaggi di programmazione da soli.