Che linguaggio di programmazione studiare? Questa domanda per quanto semplice all’apparenza necessità di una risposta complessa se si vuole essere completi.
Al giorno d’oggi siamo costantemente circondati dalla tecnologia e soprattutto da oggetti che sono stati programmati per funzionare in un determinato modo. Il telefono che abbiamo sempre in tasca, i computer usati a lavoro, i semafori che regolano il traffico..
La lista sarebbe infinita, ma la programmazione non si limita a questo, i siti web, i videogiochi, le applicazioni che usiamo sul telefono, la fotocamera che riconosce il nostro volto, sono tutti tipi diversi di programmazione.
E così come esistono tipologie diverse di programmazione esistono anche linguaggi diversi che assolvono compiti diversi. Ci sono programmi molto versatili in grado di realizzare quasi ogni tipo progetto in modo più o meno semplice mentre altri si sono specializzati nello sviluppo di particolari applicazioni e non sono pensati per ambiti diversi. Ci sono linguaggi più performanti e meno performanti, esistono addirittura tecniche di programmazione che non necessitano di alcun codice. La scelta è quindi molto ampia ma altrettanto è la richiesta di programmatori nel mondo del lavoro.
Low level language e high level language
I linguaggi di programmazione sono quindi molti, ognuno con le sue particolarità e una propria grammatica, eppure presentano caratteristiche comuni, dopotutto il loro compito è lo stesso, comunicare con il computer per fargli svolgere determinate operazioni.
A questo proposito possiamo individuare due macro categorie di programmi, i low level language gli high level language.
I low level language, come introdotti dal nome, sono i linguaggi “più bassi”, questa terminologia deriva dal dal fatto che riescono a comunicare molto facilmente con il computer e non necessitano di passaggi intermedi per avviare un programma una volta terminato. Questi linguaggi sono di fatto scritti in codice binario per questo molto astratti e difficili da comprendere rispetto ad una lingua umana, stiamo parlando infatti di linguaggio macchina. Appartengono a questa categoria anche linguaggi leggermente più avanzati che sfruttano la lingua inglese per facilitare il lavoro ai programmatori anche se poi devono essere convertiti in codice binario attraverso Assembly.
Gli high level language sono linguaggi più avanzati e che non dovendo comunicare direttamente con il computer risultano essere universali e funzionano su macchine con diverse architetture. Questi linguaggi sono definiti High poiché più vicini al linguaggio umano, per quanto seguano rigorose regole logiche. Essi necessitano di un compilatore che traduca il linguaggio in low level in modo che possa poi essere letto dalla macchina ma presentano enormi vantaggi vista la loro maggiore semplicità e portabilità.
Parametri |
Low level language |
High level language |
Difficoltà di apprendimento |
Elevata, il codice binario non è solo una lingua diversa ma è un modo diverso di pensare |
Vista la loro somiglianza con la lingua inglese sono più semplici da imparare |
Velocità di esecuzione |
Essendo programmi che comunicano direttamente con la macchina risulteranno essere più fluidi |
Questi linguaggi necessitano essere tradotti da un compilatore, il programma richiede quindi più tempo per essere eseguito |
Portabilità |
Questi linguaggi comunicano solo con il determinato tipo di macchina per cui sono pensati |
Questi linguaggi sono universali perché vengono convertiti sul momento nel linguaggio macchina su cui lavorano |
Memoria occupata |
I programmi scritti in questo modo occupano poca memoria |
I programmi scritti in high language occupano maggiore memoria |
Tipi di linguaggio
I linguaggi non differiscono tra loro solo per il metodo che utilizzano per comunicare con la macchina ma anche per come la loro grammatica è strutturata.
I linguaggi procedurali sono linguaggi in cui le istruzioni sono indicate in sequenza e vengono svolte passo passo. I vantaggi risiedono nella possibilità di raggruppare pezzi di codice ripetuti in modo da richiamarli ogni volta che risulta necessario.
I linguaggi funzionali come da nome si basano sulla concatenazione di funzioni, di fatto tutti gli elementi del codice possono essere considerati funzioni. Per quanto ciò permetta numerosi vantaggi questi linguaggi non supportano i cicli iterativi e i controlli condizionali come if/else.
I linguaggi orientati agli oggetti si basano sulla creazione di oggetti in contatto tra loro e in grado di scambiarsi informazioni ma facendo sì che ognuno di essi mantenga il propri dati. Questi linguaggi permettono un’ancora maggiore riusabilità del codice.
I linguaggi di scripting sono linguaggi interpretati di solito adibiti all’automazione del sistema operativo o delle applicazioni, viene anche utilizzato nella programmazione web.
Linguaggi di programmazione più utilizzati
Html e CSS
Non sono veri linguaggi di programmazione, ma entrambi sono l'ideale per chi si avvicina al mondo della programmazione web. Sono linguaggi attraverso i quali si comunica al browser in che modo una pagina web deve essere renderizzata. L'HTML, che è un linguaggio di markup, struttura il contenuto di una pagina, mediante tag e attributi, che altrimenti verrebbe visualizzata come solo testo.
Col CSS è possibile andare a stilizzare le pagine web interagendo con i componenti (tag e attributi) HTML per modificarne la visualizzazione (colori, dimensioni, font, posizionamento elementi). Entrambi possono essere considerati accessibili sia da leggere che da scrivere.
SQL
SQL è un linguaggio standard per le interazioni con i database relazionali come mysql, postgreSQL, sqlite ecc. Rappresenta uno strumento fondamentale per lo sviluppo web dinamico con lo scopo principale di interfacciarsi, mediante interrogazioni dette query, con il database di un sito per la lettura e la scrittura di contenuti e informazioni.
Oltre alle operazioni di interrogazione di dati è possibile con SQL creare schemi di database, gestire e modificare dati già presenti nel database e gestire l'accesso ai dati mediante regole e strumenti di controllo.
JAVASCRIPT
Uno dei linguaggi essenziali per chi si occupa di front-end. Viene usato trasversalmente per molte funzioni dei siti web, ha una sintassi semplice e risulta per questo più facile da usare rispetto ad altri. Viene utilizzato solitamente per definire azioni lato client come animazioni e validazioni, ma permette anche di inviare dati al server e ricevere risposte in formati testuali come il JSON.
PHP
Un linguaggio server side che viene usato per programmare la parte logica dell'applicativo.
Il server web interpreta le istruzioni che variano dalla comunicazione con il database, alla manipolazione di dati o alla comunicazione con altri server esterni nel caso di applicazioni distribuite. La sua semplicità lo rende adatto sia per lo sviluppo di blog che per piattaforme più elaborate e complesse. Viene usato frequentemente per:
- mettere in comunicazione l'utente con il database
- estrapolare contenuto dinamico
- invio di email
- controllo accessi e verifica credenziali
- manipolazione dei dati ed esecuzioni di calcoli con logiche avanzate (ad esempio per i pagamenti su ecommerce).
- invio e ricezioni di dati da altri webserver programmati per essere raggiunti mediante rotte (URL parametrizzati).
Javascript
Questo linguaggio viene utilizzato per la parte front end delle applicazioni, ossia per la creazione di tutti gli effetti animati e per gestire le grafiche dei siti. Molte startup si affidano a questo linguaggio per la creazione di contenuti, la richiesta di lavoro è quindi molto elevata.
Python
Python si presenta come un linguaggio molto facile da imparare che permette di scrivere in modo semplice anche programmi che eseguono funzioni complesse come l’analisi dati scientifica. Risulta essere utilizzato per il machine learning e molte applicazioni importanti come youtube e instagram sono realizzate in python. La richiesta di programmatori python, viste anche le possibilità che offre, è molto elevata. Si tratta infatti di uno dei migliori linguaggi di programmazione per lavorare.
Java
Java è un altro linguaggio di programmazione molto popolare anche grazie alla sua stabilità. Viene utilizzato soprattutto per lo sviluppo di applicazioni web per aziende, ricopre un ruolo importante anche in ambito android per lo sviluppo di applicazioni compatibili.
C/C++
Il linguaggio C rappresenta la base dell’informatica. Sicuramente più complesso rispetto a Python una volta imparato offre le basi per imparare qualsiasi altro linguaggio di programmazione. E’ un linguaggio compilato ottimo per realizzare applicazioni pesanti che devono essere ottimizzate per funzionare al meglio.
Vuoi diventare sviluppatore web e non sai da dove cominciare? L’Hackademy è un corso web developer intensivo online da 400 ore già sperimentato con successo da oltre 700 studenti provenienti da tutta Italia in 30 edizioni passate, che consente in soli 3 mesi di acquisire le competenze necessarie per scrivere codice ed avviare una nuova carriera professionale come sviluppatore web.