Una delle domande ricorrenti su questo forum dedicato ai principianti è Come iniziare la programmazione? o talvolta Qual è il miglior linguaggio di programmazione per i principianti?. Cercheremo di rispondere, ma occorre sapere che questo tipo di domande sono argomento di discussione e disaccordi. Per cercare di avere qualcosa relativamente obiettivo, ci siamo basati sui pareri dei membri raccolti attraverso le risposte a tali domande (utilizzare la funzione di ricerca nel forum di programmazione).
Non esiste un linguaggio di programmazione per cominciare. La programmazione comincia su un foglio, con algoritmi. Naturalmente, per provare gli algoritmi, può essere comodo farlo con un linguaggio di programmazione, ma in questo caso, l'unica cosa che raccomandiamo è un linguaggio semplice, non ad oggetti e non grafico. Buone scelte sono Basic, Pascal, Python, tuttavia, la sintassi di questi ultimi può essere più utile in futuro. Ma nulla è davvero da escludere qui, basta anche la calcolatrice per verificare un algoritmo semplice. Quindi, è utile avere un'idea sui diversi tipi di linguaggi, su cosa è un compilatore ed altro (I linguaggi informatici).
Adesso, abbiamo una buona base per cominciare la programmazione, ma abbiamo bisogno di un obiettivo, una idea, un software da creare. Qui, non possiamo fare niente per voi, dipende dal vostro gusto, dalla vostra conoscenza. A questo punto bisogna fare le prime scelte tecniche: linguaggio orientato oggetto, sì o no? Multi-piattaforma, sì o no? Con la macchina virtuale, si o no? UI Interfaccia utente, sì o no? L'accesso ad un database? Se sì, la quale?
Una volta fatte queste scelte, la gamma dei linguaggi è particolarmente limitato. Vediamo quindi i linguaggi più spesso citati per iniziare con sempre in mente il punto di vista dell'apprendimento.
Una buona soluzione sono i compilatori e gli ambienti di sviluppo liberi (in determinate condizioni). Si può iniziare facendo piccoli programmi nei shell in Pascal e poi passare (dopo aver capito il concetto di oggetti) a cose più avanzate, con ambiente grafico utilizzando Delphi (e Kylix sotto Linux:). Il linguaggio è abbastanza intuitivo, rigoroso, la creazione di una interfaccia grafica è semplice. La portabilità è ristretta, ma esiste per qualche piattaforma (Kylix). Per maggiori informazioni, consultare il sito ufficiale Delphi (in inglese).
Il Linguaggio ad oggetti è molto usata per i cellulari e la sua sintassi è utilizzata anche per gli script internet (sintassi, non il linguaggio). Ci sono molti ambienti di sviluppo gratuito sulla rete, basta scegliere secondo i gusti. Tuttavia, non ha la facilità di Delphi per le interfacce grafiche. Si tratta di un linguaggio "nuova generazione" che potrà essere anche un'esperienza interessante per coloro che desiderano lavorare nell'informatica. Per maggiori informazioni cliccare sui link in basso:
Semplice, veloce, dà buone abitudini di programmazione, leggero (a tal punto che passare ad un altro linguaggio sembra subito pesante), aperto, di cui si trova un sacco di documentazione su Internet. Esso permette di farsi trovare piacevole anche facendo script potenti (con la programmazione orientata oggetti) . È anche usato per la "nuova generazione" di smartphone. Python funziona con una macchina virtuale che può essere compattata con alcune classi disponibili sul web (ci ne sono di tutti i tipi e per tutti gli scopi) in un file .exe per distribuire l'applicazione in modo semplice e indipendente. Per altre informazioni consultare il sito ufficiale Python (in inglese).
Questa piattaforma ha del buono e di cattivo, ma permette di programmare applicazioni grafiche in maniera semplice. Funziona solo sotto Windows, con alcuni tentativi adattati per Linux. Il linguaggio C# è il linguaggio "nativo" di questa piattaforma: la sua sintassi è vicina a C e Java, senza puntatori, tutto avviene a un livello di astrazione superiore ai vecchi linguaggi Microsoft. Ciò è paragonabile a Java e Python, tranne per il fatto che non è libero. Un ambiente di programmazione libero e open source per .Net è ic#code.
Eccellente linguaggio orientato agli oggetti. Software libero, sintassi semplice, che richiede un rigore senza precedenti nella programmazione degli oggetti. Purtroppo, poco diffuso, è raro trovare un lavoro fatto con esso, ma dà sempre un riferimento solido, e le cose come Squeak permettono di fare tante cose interessanti. Per altre informazioni, ecco il sito ufficiale Squeak.
Sono buoni linguaggi, ma con una sintassi complicata, che non facilita il loro apprendimento. Inoltre l'uso di puntatori rende il loro utilizzo spesso difficile anche per i professionisti. Il vantaggio è che questi linguaggi possono essere utilizzati su più piattaforme (dopo la compilazione) e che, una volta imparati, gli altri appaiono più semplici. Sono ancora ampiamente utilizzati nel mondo professionale. Da saper usare se si vuole lavorare nell'informatica.
Linguaggio inizialmente previsto per lo sviluppo di pagine web dinamiche. La sua sintassi è vicina al C++. PHP è abbastanza "semplice" e permette abbastanza facilmente di comunicare con un database. Per sviluppare pagine web dinamiche, richiede anche una buona conoscenza di HTML e, eventualmente, SQL se avete bisogno di un database. PHP permette di avere rapidamente una "visibilità" del lavoro mettendolo on line, e quindi avere i commenti/suggerimenti da parte degli utenti. Permette inoltre di sviluppare applicazioni normale (non-web). Si noti anche che è possibile programmare in procedurale oppure orientata agli oggetti, come desiderate.
Detto questo PHP è un buon linguaggio, ma non necessariamente il migliore per imparare. È potente e permissivo in modo che si possono acquistare cattive abitudini se imparate il linguaggio di programmazione con esso, soprattutto in termini di pagine web, non spinge a programmare correttamente. Se si trova un linguaggio facile da imparare per tutto l'arco della OOP, lasciando dietro di lui buone abitudini, si dovrebbe scegliere un linguaggio come Python. Maggiori informazioni sul sito ufficiale PHP.
Linguaggio ancora usato nel mondo della programmazione. Rimane relativamente facile da imparare, ma è particolarmente raccomandato per i futuri informatici, se l'interesse non è limitato. È meglio passare ad Ada con il solo obiettivo "tempo reale", perché esso tende a scomparire.
I linguaggi funzionali sono molti, classificati in due grandi categorie: i puri (Haskell) e i non-puri (famiglia lisp). La famiglia dei puri è suddivisa in due classi: la famiglia veramente pura (Haskell) e la famiglia ML (CAML, LMS , ecc.). Il modo di programmare è completamente diverso rispetto ad altre linguaggi.
In realtà, la programmazione funzionale è un altro modo per vedere un programma, ma non impedisce per esempio di aver un linguaggio funzionale e di oggetto o anche un linguaggio funzionale che combina imperativo/oggetto/funzionale (Ocaml). Conoscerne uno permette di avere una buona base e consentirà ad un maggior numero di persone orientate alla matematica a muoversi lentamente verso l'informatica. Essi sono spesso utilizzati in analisi numerica o nell'intelligenza artificiale (ma questo è solo a causa della loro origine). Essi possono essere utilizzati per programmare tutto ciò che può essere programmato con gli altri linguaggi (la comunità commonlisp è molto attiva, per esempio). Per altre informazioni:
Si tratta qui di presentare un documento, e non programmare e mettendo alcuni script in mezzo non cambierà il fatto che questa non sia programmazione. Per maggiori informazioni: Introduzione all'HTML.
Cerchiamo di essere chiari, questo linguaggio apparentemente semplice, non è adatto per imparare la programmazione. La sua flessibilità e la sua potenza può dare cattive abitudini di programmazione e anche scoraggiare agli errori che consente di fare silenziosamente. Meglio iniziare l'apprendimento con un linguaggio rigoroso, e quindi poi usare in Perl. Grazie a Jeremy Proprio per la correzione.
Formalmente scoraggiato da tutti i professionisti che l'hanno usato. Dà cattive abitudini di programmazione (dichiarazione delle variabili non necessarie, nessun concetto di valore/riferimento, tentativo abortito di fare dell'oggetto, ecc.), e Microsoft (si tratta di un linguaggio proprietario) l'ha abbandonato al profitto della Framework.Net. Altro punto a proprio svantaggio è il fatto che non esiste nessuna versione gratuita, ma si deve pagare.
L'unico punto positivo è la facilità di fare delle interfacce grafiche semplici per Windows (non per gli smartphone), ma non è da solo in questo caso, se questo è ciò che si desidera, vedere Delphi o .NET. Basic è più o meno lo stesso, vi sono compilatori liberi, ma è un linguaggio obsoleto, né veloce né mobile e nemmeno rigoroso. Preferire Pascal che permette, più tardi di passare a Delphi.
Per i matematici, si può anche provare a usare il linguaggio di aiuto alla prova. Nonostante il loro potere sia limitato, si spera che si svilupperanno con il tempo. Per ora i più popolari sono in coppia con la famiglia ML Haskell. Per Ocaml, c'è coq. I paradigmi sono basati sulla logica.
Nota Bene: vi sono sopra diversi siti in inglese (o anglo-americani). Questo è comune nel mondo della programmazione, e imparare a programmare si farà in migliori condizioni, se si legge l'inglese, anche se siamo in grado di scriverlo.Troverete anche un sacco di compilatori liberi per linguaggi diversi all'indirizzo: The free country.
Iniziare la programmazione, è bene trovarsi anche di fronte ad una spinosa questione: ma perché il mio programma non funziona? Quando si trovano messaggi di errore previsti (o non) dall'ambiente di compilazione o di esecuzione (o il comportamento dell'insieme) i principianti a volte si tuffano in perplessità senza fondo che possono diventare frustranti.
Un buon metodo è quello di mostrare il codice a qualcuno con esperienza e/o spiegare il problema ad altri. A volte la lettura a voce alta del suo ragionamento mette sulla buona strada per conoscere il bug. Infine, la (buona) capacità di programmare è (spesso) associato all'estrazione di questo mondo materiale in cui siamo tutti immersi. Se la programmazione vi stuzzica, tenete in quei momenti un foglio e una matita (l'ultima arma dell'informatico) sul vostro comodino, scrivete le soluzioni che vengono in mente e provate la mattina dopo, sareste probabilmente sorpresi.
Foto: © Pixabay.