Molte persone mi contattano chiedendomi qual è secondo me il linguaggio migliore per cominciare a programmare: cercherò di rispondere a tutti con questo articolo.
Quale linguaggio scegliere
La risposta è semplice: dipende.
Dipende da quello che volete realizzare, come direbbe il buon Eric Raymond (pubblicità occulta del nostro blog tumblr :D).
Il linguaggio di programmazione infatti deve essere scelto in base al problema che volete risolvere: potremo scegliere diversi linguaggi a seconda della meta che ci siamo prefissati.
- Vogliamo realizzare un programma per Windows?
- Un programma per Mac?
- Che sia eseguibile dappertutto?
- Ci basta un’interfaccia da linea di comando (CUI )?
- Vogliamo realizzare un programma che permetta di essere espanso con dei plugin (quindi espandibile)?
- Vogliamo creare un’ app per Android? Per iOS? Per Windows Phone?
Ogni risposta di ogni domanda, punta verso un linguaggio di programmazione.
Effettivamente, ne esistono veramente moltissimi: e non è neanche troppo difficile crearsene uno personale. Sostanzialmente però, i linguaggi più usati sono quelli che ci offrono gli strumenti migliori e più efficienti per risolvere un dato problema.
Ad esempio: Java è un linguaggio di programmazione creato per essere portabile, perciò se vogliamo creare un programma che sia eseguibile sia su Windows che su Mac che su Linux; potremo affidarci a questo in quanto ci permette una portabilità di tipo WORA (Write Once, Run Anywhere).
Sempre Java, è il linguaggio utilizzato per creare applicazioni per Android.
Per crearne invece per iOS, avremo bisogno di conoscere Objective C.
Per Windows 8 e Windows phone invece, la soluzione migliore sarebbe il C#.
Sostanzialmente, i linguaggi di programmazione hanno costrutti molti simili e molti concetti in comune, solo che appunto vengono pensati per risolvere determinati problemi e col tempo si specializzano.
PHP per esempio, il linguaggio di scripting usato praticamente per tutti i siti web dinamici (compreso questo), può essere utilizzato per creare script da avviare sul nostro computer ma generalmente viene appunto utilizzato per creare siti web.
Le differenze principali fra i vari linguaggi, sono probabilmente:
- Il paradigma su cui sono strutturati, ovvero OOP (Object Oriented Programming) o procedurale;
- La quantità e il tipo di librerie disponibili,
- La tipologia di linguaggio: ad alto o basso livello.
Un’altra differenza da conoscere è se il linguaggio che vogliamo imparare, è di scripting, programmazione o markup.
Due ottimi linguaggi di scripting sono il Bash, per i sistemi Linux, e il Batch per i sistemi Windows.
Il linguaggio di markup per eccellenza, è l’ HTML: esso ci permette di definire gli elementi di una pagina web e, se siamo interessati in quel senso, questo è un ottimo punto di partenza.
Un’ ottimo linguaggio di programmazione è il Python: l’ideale per realizzare facilmente ottimi programmi, in quanto supporta sia la programmazione procedurale (ovvero, “line by line”) sia quella a oggetti.
La soluzione al problema
Dopo aver dato un pò di problemi e soluzioni, correndandoli con diversi linguaggi, vorrei farvi capire come cominciare a programmare.
Prenderò come esempio la mia personale esperienza: molti dei programmatori che conosco, hanno iniziato con quale linguaggio di programmazione tipo il C, IL linguaggio di programmazione (procedurale, ottimo punto di partenza ;)) per eccellenza.
Personalmente, da piccolo non ero attratto dai linguaggi di programmazione: non volevo fare programmi, mi piaceva il web. Così ho cominciato con HTML, CSS (linguaggi per creare semplici pagine web) per poi passare al PHP.
Adesso che sono più grandicello, conosco qualche linguaggio di programmazione vero e proprio, ma il punto a cui voglio arrivare è:
Perchè PHP quando anche Python è orientato al web?
Python, come detto poco fà, è un ottimo linguaggio di programmazione: orientato agli oggetti, ma che supporta anche la programmazione procedurale, e che è possibile utilizzare sia per web che per fare applicazioni desktop.
Ma perchè scelsi il PHP e non Python allora?
La risposta è semplice: PHP nasce esclusivamente come linguaggio di scripting per il Web.
Per ogni scopo che vogliamo raggiungere, dobbiamo sempre cercare di utilizzare gli strumenti più adatti: infatti volendo, PHP può essere utilizzato anche come linguaggio di scripting per realizzare programmi: è chiaro che a quel punto userei Python, e non PHP.
Evolversi continuamente
I linguaggi sono molto simili fra loro per quanto riguarda i costrutti, ma alcuni permettono di risolvere problemi molto più facilmente di altri: per questo motivo, un programmatore, come qualsiasi persona nel mondo informatico, deve sempre cercare di Evolversi.
Questo che vuol dire?
Vuol dire semplicemente che, come ho detto poco fa, come PHP potrei tranquillamente realizzare programmi desktop.
Volendo, potrei utilizzare Java come PHP e creare siti web.
A dir la verità, potrei scrivere programmi in linguaggi macchina che potrebbero fare le stesse cose che fanno gli altri linguaggi di programmazione: ma ovviamente non sarebbe intelligente visto che esistono linguaggi più semplici (di alto livello) che mi permettono di risolvere facilmente i miei problemi.
In pratica, il mio ultimo consiglio, è quello di utilizzare il miglior linguaggio di programmazione in base al problema che volete risolvere: anche se è difficile, sforzatevi di conoscere più linguaggi possibili (il più possibile ovviamente). Quando avrete un problema che non avete mai affrontato fino ad ora, avrete molti grimaldelli da utilizzare.
Ciao
stavo cercando notizie (più attuali) riguardo PHP e mi sono imbattuto in questo blog. Spero tu possa aiutarmi.
Mi è stato offerto un corso di PHP a prezzo…ottimo direi, con questa premessa: “Da qui a 5 anni gran parte dei siti attuali (soprattutto nel settore del turismo) avranno la necessità di interfacciarsi con applicazioni mobile(android, iphone in primis), quindi ci sarà bisogno di creare nuovi servizi interattivi e il miglior investimento che potresti fare OGGI e’ apprendere il PHP, un linguaggio semplice e rapido per la creazione di siti web dinamici e pagine dinamiche da interfacciare con app.”
Ok, lasciamo perdere tutti i discorsi circa la persuasione contenuta nel messaggio, quello che vorrei chiederti è se le cose stanno esattamente così, visto da qualche parte avevo letto che oramai di programmatori PHP in giro se ne vedono sempre di meno a causa di una flessione della richiesta di questo linguaggio.
Mi sbaglio?
Ciao Peter,
In parte si: il PHP è comunque un ottimo linguaggio di scripting lato server che essendo pensato proprio per realizzare pagine dinamiche si presta molto bene a questo lavoro.
In parte no: quello che ormai và di più è l’utilizzo di pagine in ajax (asynchronous javascript and xml) utilizzando framework tipo jquery (anche se ne esistono diversi altri tipo AngularJS di Google).
Quindi il PHP è sicuramente un’ottima risorsa ma purtroppo al giorno d’oggi non basta più php+html ma c’è bisogno di imparare anche html5, css3 e javascript per creare siti interattivi e compatibili con dispositivi mobili.
Spero di essere stato chiaro!
Federico
Scusate l’intromissione, ma citando le tue parole Federico: “quello che ormai và di più è l’utilizzo di pagine in ajax”.
Cosa intendi per “và di più”? Si sta parlando di PHP (linguaggio lato server) e ajax (che non è nemmeno un linguaggio ma tecniche di chiamate asincrone) effettuabili con linguaggi CLIENT (javascript principalmente) che vanno sempre a richiamare pagine in linguaggi lato server (php, asp ecc.).
Quindi dire che va di più l’utilizzo di quest’ultime tecnologie non ha senso dato che per realizzare un qualsiasi sito web che ha la necessità di collegarsi ad un database si ha la fondamentale necessità di conoscere un linguaggio server.
PS = ho lasciato fuori node.js
Ciao Giacomo! Forse hai frainteso il mio commento, Peter ha chiesto se PHP è sufficiente al giorno d’oggi per lavorare, la mia risposta in sintesi è Si perchè PHP è ancora utilizzatissimo lato server, ma no perchè per creare un sito c’è molto di più (ad esempio ajax, css e html5). Con “quello che ormai và di più è l’utilizzo di pagine in ajax” era per dire che ormai è sempre più comune inviare richieste agli script php in maniera asincrona tutto quì 🙂
Spero di essere stato più chiaro e grazie per la puntualizzazione 🙂
Federico