Ultima modifica da un moderatore:
Sempre più spesso mi imbatto in utenti, sia sul forum che in privato, che chiedono "Qual è il miglior linguaggio di programmazione?", oppure "Quale linguaggio devo conoscere per realizzare [...]?". Per questo motivo ho deciso di stilare una piccola guida per orientare i newbie verso un linguaggio adatto a loro o semplicemente per avere un quadro generale.
Cos'è un linguaggio di programmazione?
Qual è il miglior linguaggio per iniziare a programmare?
Non esistono criteri per affermare che un linguaggio è migliore di un altro, dipende tutto dal contesto in cui viene applicato. Personalmente consiglierei di iniziare col C per una serie di motivi che andrò ad illustrarvi:
Nota bene: Non vi sto ordinando di imparare perfettamente il C, ma di avere almeno un'infarinatura generale. Poi, se volete approfondire, siete liberi di farlo, di certo male non vi fa!
Un altro linguaggio ottimale per apprendere le basi della programmazione è Python. I suoi punti forti sono:
Quali sono i linguaggi consigliati per sviluppare un videogame?
Il campo dei videogames è in continua ascesa. Negli ultimi vent'anni questa industria ha subito una notevole crescita, grazie all'avanzamento delle tecnologie di sviluppo e alla riduzione dei tempi (tralasciando Watch Dogs
). Oggi i motori grafici fanno cose che qualche anno fa sarebbero state ritenute impensabili. Ma lasciamo stare questo argomento e torniamo a parlare di programmazione.
Per sviluppare un buon gioco ci occorre un engine grafico, e per utilizzare un engine grafico dobbiamo conoscerne le librerie. I più diffusi sono:
Il mio consiglio è di intraprendere la strada del C++. Quest'ultimo è un linguaggio che supporta il paradigma Object-Oriented ed è utilizzato inoltre in molti altri progetti, come il client FTP FileZilla, il browser Chromium (su cui è basato Google Chrome) o il software VoIP TeamSpeak.
In alternativa potete sviluppare giochi nativi utilizzando la tecnologia HTML5.
Voglio creare un Social Network, quali linguaggi mi servono?
Qui entriamo nel campo della programmazione web. Essa include la struttura delle pagine, realizzata tramite il linguaggio di markup HTML e il linguaggio di stile CSS, e la dinamicità delle stesse. Quest'ultimo aspetto può essere realizzato impiegando un linguaggio di scripting lato server, tra cui i più famosi PHP e ASP.NET. Analizziamoli singolarmente:
Questo è tutto. Non ho l'ambizione di definirla una guida, ma semplicemente uno schema atto a semplificare la scelta di un linguaggio, tramite una panoramica più o meno completa. In seguito aggiungerò nuove informazioni.
Se avete domande o pensate che abbia commesso qualche errore rispondete pure
Per informazioni sui linguaggi di programmazione:
[GUIDA] Guida ai linguaggi di programmazione (di Elysium)
Cos'è un linguaggio di programmazione?
Wikipedia ha detto:Un linguaggio di programmazione, in informatica, è un linguaggio formale, dotato (al pari di un qualsiasi linguaggio naturale) di un lessico, di una sintassi e di una semantica ben definiti. È utilizzabile per il controllo del comportamento di una macchina formale o di una implementazione di essa (tipicamente, un computer) ovvero in fase di programmazione di questa attraverso la scrittura del codice sorgente di un programma ad opera di un programmatore.
Tutti i linguaggi di programmazione esistenti possiedono (almeno) questi due concetti chiave:
- Variabile: un dato o un insieme di dati, noti o ignoti, già memorizzati o da memorizzare; ad una variabile corrisponde sempre, da qualche parte, un certo numero (fisso o variabile) di locazioni di memoria che vengono allocate, cioè riservate, per contenere i dati stessi. Molti linguaggi inoltre attribuiscono alle variabili un tipo, con differenti proprietà (stringhe di testo, numeri, liste, atomi ecc.).
- Istruzione: un comando oppure una regola descrittiva: anche il concetto di istruzione è molto variabile fra i vari linguaggi. A prescindere dal particolare linguaggio però, ogni volta che un'istruzione viene eseguita, lo stato interno del calcolatore (che sia lo stato reale della macchina oppure un ambiente virtuale, teorico, creato dal linguaggio) cambia.
Qual è il miglior linguaggio per iniziare a programmare?
Non esistono criteri per affermare che un linguaggio è migliore di un altro, dipende tutto dal contesto in cui viene applicato. Personalmente consiglierei di iniziare col C per una serie di motivi che andrò ad illustrarvi:
- Nonostante sia un tecnicamente un linguaggio di alto livello, possiede affinità semantiche e procedurali col linguaggio macchina e l'Assembly. Questo consente di apprendere contemporaneamente il linguaggio in sé e il modo in cui si relaziona con la vostra macchina.
- Possiede un alto livello di efficienza, cioè può eseguire algoritmi, complessi e non, limitando al minimo l'utilizzo della CPU e lo spazio occupato in memoria.
- Molti dei linguaggi di alto livello utilizzati oggi, come i più famosi C++, Java e PHP, hanno ereditato la propria sintassi dal C. In questo caso si parla di sintassi C-like, per cui un programmatore che già possiede buone basi con il suddetto linguaggio è avantaggiato nel comprendere la struttura di quello nuovo.
Nota bene: Non vi sto ordinando di imparare perfettamente il C, ma di avere almeno un'infarinatura generale. Poi, se volete approfondire, siete liberi di farlo, di certo male non vi fa!
Un altro linguaggio ottimale per apprendere le basi della programmazione è Python. I suoi punti forti sono:
- Possiede una versatilità veramente ottima. Grazie all'interprete di Python potete sia sviluppare applicazioni complesse lato client che realizzare degli script utilizzabili sui webserver. Il tutto avvalorato dal fatto che, essendo multipiattaforma, non avrete problemi di compatibilità.
- Si basa sull'indentazione per delimitare istruzioni singole o in blocchi. Questo aspetto lo rende unico tra i linguaggi più diffusi ed è ottimo per imparare ad indentare sin dall'inizio (quando vi troverete a programmare applicazioni di vasta estensione gliene sarete veramente grati).
Quali sono i linguaggi consigliati per sviluppare un videogame?
Il campo dei videogames è in continua ascesa. Negli ultimi vent'anni questa industria ha subito una notevole crescita, grazie all'avanzamento delle tecnologie di sviluppo e alla riduzione dei tempi (tralasciando Watch Dogs

Per sviluppare un buon gioco ci occorre un engine grafico, e per utilizzare un engine grafico dobbiamo conoscerne le librerie. I più diffusi sono:
- Unity3D è un motore grafico multipiattaforma sviluppato da Unity Technologies. E' programmato attraverso vari linguaggi, tra cui C++, C#, JavaScript e Boo (quest'ultimo è un linguaggio Open Source ispirato a Python, compatibile con la piattaforma .NET e Mono). E' rinomato per la portabilità, dato che può produrre eseguibili compatibili con la maggior parte delle piattaforme attuali.
- Unreal Engine, sviluppato da Epic Games, è a mio parere l'engine più avanzato attualmente in circolazione ed è scritto interamente in C++. La risoluzione visiva di questo motore grafico non ha eguali.
- CryENGINE, giunto alla versione 3, è meno utilizzato dei primi due ma non ha nulla da invidiare in quanto a portabilità e rendering. Anch'esso è scritto in C++.
Il mio consiglio è di intraprendere la strada del C++. Quest'ultimo è un linguaggio che supporta il paradigma Object-Oriented ed è utilizzato inoltre in molti altri progetti, come il client FTP FileZilla, il browser Chromium (su cui è basato Google Chrome) o il software VoIP TeamSpeak.
In alternativa potete sviluppare giochi nativi utilizzando la tecnologia HTML5.
Voglio creare un Social Network, quali linguaggi mi servono?
Qui entriamo nel campo della programmazione web. Essa include la struttura delle pagine, realizzata tramite il linguaggio di markup HTML e il linguaggio di stile CSS, e la dinamicità delle stesse. Quest'ultimo aspetto può essere realizzato impiegando un linguaggio di scripting lato server, tra cui i più famosi PHP e ASP.NET. Analizziamoli singolarmente:
- PHP (PHP: Hypertext Preprocessor) è un linguaggio di programmazione interpretato lato server, che permette di rendere dinamiche le proprie pagine. E' un software libero, per cui il sorgente dell'interprete è consultabile da chiunque. Forte di una raccolta di circa 5000 funzioni (in costante aumento) e del supporto al paradigma Object-Oriented, PHP è il linguaggio più utilizzato per produrre webapp. Gli altri suoi punti di forza sono il fatto che è presente sulla stragrande maggioranza dei web server e che la comunità degli utilizzatori invia continuamente feedback relativi ai bug e alle modalità di utilizzo, rendendolo uno dei linguaggi più documentati.
- ASP.NET (Active Server Pages basate sul framework .NET) è una tecnologia di sviluppo di pagine web dinamiche. Grazie al framework Microsoft .NET è possibile scriverle in un qualunque linguaggio supportato da quest'ultimo, come C#, VB.NET o J#. Rispetto ai normali linguaggi di scripting, ASP.NET è significativamente più veloce, grazie al fatto che l'intero codice viene raccolto in una o più librerie .dll che vengono precompilate dal web server.
Questo è tutto. Non ho l'ambizione di definirla una guida, ma semplicemente uno schema atto a semplificare la scelta di un linguaggio, tramite una panoramica più o meno completa. In seguito aggiungerò nuove informazioni.
Se avete domande o pensate che abbia commesso qualche errore rispondete pure

Per informazioni sui linguaggi di programmazione:
[GUIDA] Guida ai linguaggi di programmazione (di Elysium)