Chi si avvicina per la prima volta al mondo del web development si sarà forse chiesto che cosa sia di preciso un linguaggio di programmazione. Per i principianti del settore è anche utile capire fin da subito la differenza tra alcuni concetti e le funzioni specifiche di diversi tipi di linguaggi: cerchiamo, allora, di fare chiarezza.
Linguaggio di programmazione: a cosa serve?
Tutti quanti parliamo almeno una lingua e abbiamo familiarità con questo concetto. Si tratta di uno strumento utilizzato per comunicare con gli altri, esprimendo idee ed emozioni, immagini concrete e nozioni astratte. Possiamo pensare ai linguaggi di programmazione, in un certo senso, come alle lingue dei computer. Più precisamente, sono i linguaggi che permettono ai programmatori informatici di comunicare con i computer. In concreto, si tratta di una serie di istruzioni che chiedono al computer di portare a termine determinati compiti.
Linguaggi di programmazione, scripting e markup: quali differenze?
È piuttosto comune che i meno ferrati utilizzino in modo improprio il termine “linguaggio di programmazione” per indicare anche i linguaggi di scripting e markup. Ci sono però importanti differenze di utilizzo, che è bene chiarire per evitare di utilizzare i concetti in modo improprio e creare confusione in futuro.
- I linguaggi di programmazione si usano per dare istruzioni a un computer, indicando che cosa deve fare. Sono linguaggi ad alto livello, e alcuni esempi includono Java, C, C++ e C#. Si utilizzano comunemente per realizzare software e driver.
- I linguaggi di scripting (come PHP o Javascript) sono una sottocategoria dei linguaggi di programmazione, e forniscono lo script per eseguire un determinato compito. Il loro scopo è di dare istruzioni a un programma, e connettono, quindi, un linguaggio a un altro linguaggio. Si usano spesso per creare siti e applicativi web.
- I linguaggi di markup sono una categoria a parte, usati per creare la struttura dei dati su una pagina. Si tratta, quindi, di presentare informazioni in modo strutturato. Alcuni esempi sono il linguaggio HTML e l’ XML.
Diversi tipi di linguaggi di programmazione
I computer “pensano” in linguaggio macchina, basato su un alfabeto binario che consiste in sequenze di 0 e 1. Grazie ai linguaggi di programmazione, siamo in grado di tradurre queste informazioni in modo da renderle comprensibili per noi umani. In pratica, con i linguaggi di programmazione costruiamo un ponte di comunicazione tra noi e i computer. In base alla minore o maggiore distanza dal codice macchina, possiamo suddividere i linguaggi di programmazione in linguaggi a basso livello e ad alto livello.
Linguaggi di programmazione a basso livello
I linguaggi di programmazione a basso livello si avvicinano di più al codice macchina, e di conseguenza sono più difficili da leggere per noi. Hanno il vantaggio di una maggiore velocità e precisione, in quanto il computer non ha bisogno di un compilatore per eseguirli.
Oltre al vero e proprio linguaggio macchina, anche il linguaggio assembly fa parte di questa categoria. Creato per funzionare su specifici processori, rappresenta le istruzioni con simboli e combinazioni comprensibili per gli esseri umani, a differenza del codice macchina. C’è, poi, bisogno di un assembler per convertirlo in linguaggio eseguibile dai computer. Tra i vantaggi del linguaggio assembly ci sono una maggiore velocità e un utilizzo minore della memoria.
Linguaggi di programmazione ad alto livello
I linguaggi di programmazione ad alto livello sono quelli comunemente utilizzati dai web developer, e sono più simili al modo di comunicare che conosciamo. Sono formati da parole riconoscibili, generalmente in inglese, ed è quindi molto più facile scrivere il codice usando questi linguaggi. Perché il computer li esegua serve un compilatore, cosa che li rende un po’ più lenti. Con i dispositivi più moderni, tuttavia, le differenze nella velocità sono per lo più irrilevanti.
Hanno il grande vantaggio di essere facili da leggere, comprendere, scrivere e modificare. Si usano quindi per realizzare software e siti web user-friendly.
I linguaggi di programmazione ad alto livello includono per esempio C#, Java, PHP, Python, Javascript, Pascal, Perl, e molti altri.
I linguaggi ad alto livello possono poi essere ulteriormente divisi in sottogruppi.
- Linguaggi di programmazione procedurali
I linguaggi procedurali suddividono il codice in blocchi, che a seconda del linguaggio sono chiamati procedure, funzioni, o sottoprogrammi. Questi blocchi sono istruzioni che vengono poi eseguite in sequenza. Hanno il vantaggio di aiutare il programmatore a tenere traccia del flusso del programma in esecuzione; il codice si può inoltre riutilizzare in diverse parti del programma. Alcuni esempi di linguaggi di programmazione procedurali includono Basic, Pascal e FORTRAN.
- Linguaggi di programmazione orientati agli oggetti
In questi linguaggi, i programmi si suddividono in parti dette appunto oggetti, che interagiscono gli uni con gli altri tramite lo scambio di messaggi. Gli oggetti si definiscono in base ai loro attributi, ovvero le caratteristiche che presentano, e i metodi, cioè le azioni che possono subire o compiere. A differenza dei linguaggi procedurali hanno quindi un approccio bottom-up. Tra i vantaggi di questi linguaggi citiamo la maggiore facilità di esecuzione, manutenzione, gestione e debugging. Sono linguaggi di programmazione orientati agli oggetti per esempio Java, Python e C#.
Esistono anche linguaggi di medio livello, detti anche linguaggi di programmazione intermedi, o pseudo linguaggi. Includono alcuni elementi dei linguaggi ad alto livello e funzionalità legate al basso livello. Un esempio di questi linguaggi è C.
Dopo questa panoramica, il modo migliore per capire che cos’è un linguaggio di programmazione è certamente mettere mano al codice e farsi un’idea in prima persona.
Se ti stai, invece, chiedendo, da dove iniziare a studiare consulta la nostra guida su come scegliere il linguaggio di programmazione da imparare