Framework: cosa sono e quali dominano le classifiche

Definizione e caratteristiche di un framework

In informatica, un framework è un sistema che consente di estendere le funzionalità del linguaggio di programmazione su cui è basato, fornendo allo sviluppatore una struttura coerente ed efficace al fine di effettuare azioni e comandi in modo semplice e veloce.

In sostanza, si può definire un framework come un insieme di funzioni e tool già “pronti all’uso”, ovvero che si possono utilizzare senza doverli progettare da zero ogni volta. Nel design del software, i framework possono seguire approcci Single-Page o Multi-page, lato server e lato client, e possono basarsi su azioni o su componenti. I componenti principali di un framework sono costituiti da classi collegate tra loro, a cui vengono assegnati dei metodi; tali componenti possono essere statici, ovvero immutabili (Frozen spot), oppure flessibili, dunque modellabili (Hot spot). 

Interessante la distinzione tra i framework che lasciano maggiore controllo allo sviluppatore (“un-opinionated”) e quelli che invece ne lasciano meno (“opinionated”). Un esempio di framework che lascia poco controllo al programmatore è Angular che, tuttavia, pur dando meno scelta, possiede gli strumenti necessari a rendere i processi più veloci. Un esempio invece di framework definito un-opinionated è Vue: consente maggiore libertà di scelta, ma offre meno strumenti e strutture per fare le cose più rapidamente.

Differenza tra framework e libreria

Il framework, dunque, non è un linguaggio web e nemmeno una libreria di codice. Si tratta più che altro di una “struttura” creata per la realizzazione di alcune specifiche funzioni. 

Spesso framework e libreria vengono confusi tra loro: cosa li accumuna e cosa invece li differenzia? Entrambi sono codici scritti da qualcun altro per rendere il lavoro di un programmatore più semplice e rapido.

La libreria è però un insieme di funzioni specializzate per un determinato compito di un progetto, quindi viene in aiuto per una parte del progetto. Quando si usa una libreria, infatti, viene presa solo una piccola porzione di codice, che viene messa all’interno del progetto: il programmatore decide quando chiamarla, come usarla e dove.

Quando invece si utilizza un framework è lui stesso che va a definire la struttura del codice e del progetto e che stabilisce quando chiamare codice e quando impostarlo (Inversion of Control). 

In pratica, quando abbiamo una libreria la mettiamo all’interno del codice, quando invece abbiamo un framework mettiamo il codice dentro il framework.

Quali sono i vantaggi di usare un framework?

Un framework non è indispensabile: si tratta più che altro di uno dei tanti strumenti che lo sviluppatore ha a sua disposizione per programmare meglio e più velocemente. Proprio per queste sue caratteristiche, i framework sono diventati sempre più fondamentali per lo sviluppo di siti web e app. 

Infatti, ricapitolando, i framework consentono di:

– ottimizzare tempi, costi e benefici;

– evitare al programmatore di riscrivere codice già scritto in precedenza per compiti simili;

– organizzare e trovare rapidamente i file necessari;

– concentrarsi sul problema da risolvere, senza dover implementare funzionalità che qualcun altro ha già provveduto a creare. 


La maggior parte delle volte i framework sono gratuiti. Alcuni tra i framework più diffusi sono nati da grosse aziende: gli stessi React e Angular sono due progetti rispettivamente di Facebook e Google. Il budget e il tempo messi a disposizione da queste rinomate realtà, ha fatto sì che i loro framework fossero sempre supportati, che evolvessero e crescessero insieme alle community di riferimento. 

framework_quali_scegliere

Quali sono i framework più popolari?

Nel 2019 Stackoverflow ha condotto una ricerca su programmatori esperti di tutto il mondo, chiedendo quale fosse il framework per applicazioni web da loro utilizzato. 

Questa è la classifica sulla base dei risultati ottenuti: 

  1. jQuery (48.3%)
  2. Angular/Angular.js (32.4%)
  3. React.js (32.3%)
  4. ASP.NET(27.2%)
  5. Express (19.5%)
  6. Spring (17.2%)
  7. Vue.js (15.5%)
  8. Django (12.3%)
  9. Flask (11.7%)
  10. Laravel (10.4%)
  11. Ruby on Rails (8.4%)
  12. Drupal (3.5%)

Un fatto curioso riguarda altre due classifiche stilate sempre da Starckoverkflow: pare che nella top 3 dei framework più temuti ci siano Drupal (69.9%), jQuery (54.7%) e Ruby on Rails (42.9%), mentre quelli più amati risultano essere React.js (74.5%), Vue.js (73.6%) ed Express (68.3%).

Di seguito, una lista dei framework più diffusi a seconda del linguaggio di programmazione con cui sono scritti:

– Laravel / Symfony / Drupal —> PHP

– Angular JS / React JS/ JQuery / Express / Vue.js —> Javascript

– Spring —> Java

– Django / Flask —> Python

– Ruby on Rails —> Ruby

Quale framework scegliere?

Ma come scegliere il framework più adatto? Innanzitutto occorre interrogarsi sul tipo di applicazione e l’architettura desiderata (lato client, lato server). Poi, chiaramente, sulla scelta influisce anche il livello di conoscenza di programmazione che si possiede. 

Dal momento in cui quasi tutti i linguaggi di programmazione offrono più di un framework, la scelta potrà ricadere su uno o sull’altro in base alle loro caratteristiche. Abbiamo riassunto alcune delle peculiarità di React e Angular, per quanto riguarda Javascript, e di Laravel e Symfony, per quanto concerne il linguaggio PHP.

 

Angular vs. React

Angular

– si basa su TypeScript

– fa uso di una speciale sintassi

– è omnicomprensivo, ovvero è completo di tutto ciò che serve per realizzare un’applicazione, dunque evita allo sviluppatore di dover integrare librerie esterne

– data binding bidirezionale

– curva di apprendimento lunga e ripida

React

– fa uso di ES6 o TypeScript

– utilizza JSX, un preprocessore di codice HTML like, così da rendere il codice JavaScript simile all’HTML

– lascia allo sviluppatore la scelta e l’integrazione delle librerie

– data binding unidirezionale 

– curva di apprendimento più semplice

Symfony vs. Laravel

Symfony

  altamente flessibile

– permette di impiegare tutte le componenti dell’intero framework o costruire un bundle con funzionalità desiderate

– comprende un’unità di testing built-in per il monitoraggio delle proprie applicazioni 

– ha una community molto attiva che propone sempre aggiornamenti e miglioramenti

– offre interfacce chiare e intuitive

Laravel

– sintassi elegante, coincisa ed espressiva

– produzione più rapida e semplice di compiti frequenti (lato server) come autenticazione utente, gestione sessioni ecc.

– funzionalità pensate per lo sviluppo di app moderne

– può essere esteso tramite l’installazione di nuovi vendor

– community molto numerosa e attiva, che mette a disposizione documenti, tutorial, risoluzione di problemi ecc.

– routing semplice e pulito

 Quale framework utilizzate e quale vi piacerebbe imparare?

Un framework velocizza e semplifica il lavoro tanto di un developer quanto della stessa azienda che decide di adottarlo. L’utilizzo di un framework implica un investimento in termini di apprendimento, ma considerato il tempo che andrà a far risparmiare in futuro, vale la pena impararne almeno uno.

Quale? La vera risposta è: dipende. Se non ne avete ancora imparato uno e siete indecisi su quale puntare, potete iniziare considerando l’indice di popolarità attuale dei framework e le vostre necessità di sviluppo. 

Ora lasciamo la parola a voi: quale framework utilizzate di più e quale ancora non conoscete e vi piacerebbe imparare?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *