Benvenuti ad un nuovo episodio. Prima iniziare con l'argomento
di oggi. Vi invito a iscrivervi, attivare
la campanella e a lasciare una valutazione positiva.
Il vostro supporto è fondamentale per far crescere
questa comunità e migliorare un episodio se avete dubbi, domande
ocuriositapoteteiscrivermiamauro.spezzafero@gmail.com. Nella puntata di oggi
affrontiamo un tema che spesso genera confusione, soprattutto
perché all'inizio il percorso. La differenza tra linguaggio di
programmazione, libreria e framework.
Molto spesso questi tre termini vengono usati come se fossero
sinonimi. Si sente dire, sto studiando un
nuovo linguaggio riferendosi magari a una libreria, oppure
questo è un framework, quando in realtà si tratta semplicemente
di un'insieme di funzioni riutilizzabili, capire la
differenza è fondamentale, non solo per usare correttamente le
parole, ma per comprendere davvero cosa stiamo utilizzando
quando scriviamo codice. Partiamo dal primo concetto, che
cos'è un linguaggio di programmazione?
Ne abbiamo parlato più volte, ma in questo caso raggrupperemo il
tutto in una breve definizione. Un linguaggio programmazione è
lo strumento con cui comunichiamo con il computer.
E un'insieme di regole sintattiche e semantiche che ci
permette di scrivere istruzioni comprensibili da una macchina.
Definisce come si dichiara una variabile, come si costruisce un
ciclo, come si scrive una funzione, come si organizzano i
dati. In altre parole, è la grammatica
con cui costruiamo il nostro discorso verso il computer.
Ma il linguaggio da solo non basta a costruire applicazioni
complesse, potremmo riscrivere tutto da zero, ma
significherebbe tempi lunghissimi e un rischio
maggiore di errori. Ogni gestione di file, ogni
richiesta di rete, ogni calcolo dovrebbe essere implementato
manualmente, anche se qualcuno l'ha già fatto in modo più
efficiente. Ed è qui che entrano in gioco le
librerie. Una libreria è un'insieme di
codice già scritto, pensato per essere riutilizzato.
Serve a svolgere compiti specifici senza doverli
riscrivere da zero. La caratteristica principale è
che siamo noi a decidere quando e come usarla.
Il flusso del programma rimane sotto il nostro controllo,
chiamiamo le sue funzioni quando ne abbiamo bisogno e come una
cassetta degli attrezzi, continui strumenti pronti
all'uso, ma siamo noi a scegliere quale utilizzare.
Con le librerie restiamo al volante.
Attenzione però, anche usando una libreria stiamo introducendo
un livello di astrazione nel nostro progetto.
Stiamo delegando un compito, ma il controllo generale rimane
nostro. Ma cosa succede quando vogliamo
sviluppare applicazioni più grandi e complesse, dove servono
regole chiare, una struttura precisa e convenzioni condivise?
Qui entrano in gioco i framework.
Un framework non è solo codice riutilizzabile, è un'insieme di
regole, strutture e convenzioni che definisce come deve essere
organizzata un'applicazione. La differenza fondamentale è
questa, con una libreria siamo noi a chiamare il codice, con un
framework il framework a chiamare il nostro codice e lui
a stabilire il flusso. Noi implementiamo determinate
parti, ma lo facciamo seguendo una struttura già definita,
seguiamo convinzioni precise ad un certo modo di organizzare i
file e responsabilità. In cambio otteniamo velocità,
ordine e una base solida su cui costruire progetti complessi.
Un modo semplice per ricordare le differenze è questo, il
linguaggio e la grammatica, la libreria sono gli strumenti che
scegliamo di usare, il framework e la struttura che guida il
flusso. Ma ovviamente non è tutto oro
ciò che luccica. Quando scegliamo un framework,
stiamo scegliendo anche la sua visione dello sviluppo,
accettiamo il suo modo di organizzare il codice, la sua
logica, le sue convinzioni. E potente, ma vincolante.
Se cerchiamo di forzarlo a fare cose a modo nostro rischiamo
confusione e codici difficili da mantenere.
Se siamo concentrati nello studio di una metodologia
specifica, come ad esempio l'embou C, può essere
controproducente iniziare con framework troppo articolati, non
perché siano sbagliati, ma perché introducono un livello di
astrazione che può confondere l'apprendimento.
Quando studiamo un pattern architetturale, l'obiettivo è
capire davvero che cos'è il model che ruola la bioe, come si
comporta il controller. Come fluiscono i dati tra questi
componenti? Se uno strumento automatizza
gran parte di questi meccanismi, rischiamo di non distinguere più
dove finisce il Pattern e dove inizia il framework.
Il rischio, quindi, è credere di aver compreso un'architettura
quando in realtà abbiamo solo imparato a usarla all'interno di
uno specifico strumento. Per questo motivo all'inizio può
essere più utile lavorare su progetti piccoli, scrivere più
codici manualmente e osservare con chiarezza la separazione
delle responsabilità. Solo dopo aver compreso davvero
i concetti ha senso adattare strumenti più strutturati perché
sapremo riconoscere quali problemi stanno risolvendo per
noi e quali decisioni stiamo delegando.
E questo punto potrebbe sembrare un invito a non utilizzare i
framework, ma. Non è questo il messaggio, il
punto non è evitarli, il punto è usarli nel momento giusto e con
consapevolezza. Gli strumenti devono potenziare
la nostra comprensione, non sostituirla.
La differenza tra chi usa un framework e chi lo padroneggia
sta proprio nella capacità di capire cosa succede sotto al
cofano. Spero di essere riuscita a
trasmettervi non solo la differenza tecnica tra
linguaggio, libreria e framework, ma soprattutto il
modo corretto di guardarli. Non è una questione
terminologica, è una questione di consapevolezza.
Un linguaggio ci dà le parole, una libreria ci dà gli
strumenti, il framework ci dà una struttura.
Ogni scelta tecnica è anche una scelta di mentalità.
Il mio invito è semplice, come sempre, non fermatevi alla
superficie. Chi?
Edetevi chi controlla il flusso, chiedetevi quali decisioni state
delegando perché diventare sviluppatori consapevoli
significa comprendere davvero gli strumenti che utilizziamo.
Io vi ringrazio per aver ascoltato questa puntata di
informatica per tutti, se l'episodio vi è stato utile
condividetelo, Lasciatelo una votazione e fatemi sapere cosa
ne pensate. Noi ci sentiamo al prossimo
episodio.