Programmazione e Sviluppo/Scegliere un linguaggio di programmazione
Wikibooks, manuali e libri di testo liberi.
Molte persone pensano di dover scegliere un linguaggio di programmazione per diventare un programmatore. Si chiedono: "Mm, potrei diventare un programmatore C++ o Java?" Questa è una domanda sbagliata da porsi, quella più intelligente sarebbe "Come posso diventare un buon programmatore velocemente?" La scelta di uno specifico linguaggio di programmazione non è particolarmente rilevante; la ragione è che ogni linguaggio di programmazione è basato sugli stessi concetti fondamentali, nati più di 20 anni fa. Una volta acquisita la forma mentis della programmazione, che deriva da tali concetti, imparare un nuovo linguaggio risulta considerevolmente più semplice.
Indice |
[modifica] Quale scelgo di imparare?
La prima considerazione da fare quando decidi quale linguaggio imparare per primo è quanto sfruttabile è nel mondo reale, per esempio, nel campo IT industriale o nei progetti open source ti piacerebbe contribuire programmando. Se questo è la tua unica intenzione, linguaggi molto diffusi come C++ o Java costituiscono una buona scelta.
Negli altri casi, ci sono ulteriori fattori da considerare per scegliere.
[modifica] Quanto adatto è il linguaggio per un principiante?
Molti linguaggi sono conosciuti per essere facili da imparare, ad esempio il Basic oppure il Pascal. Tuttavia, qualche volta vengono criticati per la mancanza di potenza e il campo limitato delle loro proprietà. Dovremmo tenere a mente che lo scopo principale di questi linguaggi è quello di insegnare a scrivere programmi strutturati. Per applicazioni più avanzate potrebbe essere necessario un linguaggio più specializzato o più complesso.
Alcuni linguaggi (come Python o Ruby [1]) idonei per i principianti presentano una sintassi non difficile, ma sono anche dotati un completo set di proprietà per i programmatori più esperti.
[modifica] Il linguaggio è disponibile oppure idoneo al tuo computer?
Non c'è alcun motivo teorico per cui un determinato linguaggio non possa o non debba essere adatto ad un particolare computer. Però nessun linguaggio esiste "di per sé", semplicemente, ma tutti si devono appoggiare ad una serie di strumenti (compilatori, IDE, librerie, macchine virtuali ecc.): perché si possa programmare in un dato linguaggio sul proprio computer devono essere disponibili per esso gli strumenti adatti. L'esistenza di tali strumenti e la qualità di questi è cio che rende un determinato tipo/modello di computer più o meno adatto alla programmazione con quel determinato linguaggio.
[modifica] Ti sarà di aiuto per imparare altri linguaggi in futuro?
Le basi di programmazione sono molto simili per la maggior parte dei linguaggi. Anche se esistono linguaggi simili o derivati (o veri e propri fork) come per esempio il C da cui derivano il Java, il php o il C++ In casi simili avere una conoscenza basilare di C può essere d'aiuto. Esistono anche linguaggi reputati utili per capire il funzionamento di un linguaggio più complesso o per acquisire una mentalità più aperta ed un approccio migliore alla programmazione, per esempio il Pascal.
[modifica] Ti è di aiuto a scrivere programmi migliori?
A seconda dell'utilità del programma e della sua destinazione può servire conoscere più di un linguaggio per poterli integrare. Ad esempio per la programmazione embedded un approccio potrebbe essere scrivere il programma in C o in un linguaggio ad alto livello e usare l'assembler, o un linguaggio a basso livello, per i lavori più bassi come l'allocazione statica della memoria o alcune funzioni per il boot di un sistema operativo. Il kernel linux, ad esempio, utilizza questo tipo di approccio.
[modifica] Quanto pratico è il linguaggio?
In teoria con qualsiasi linguaggio di programmazione, salvo limitazioni esplicite, è possibile fare qualsiasi tipo di software. Nella pratica molti linguaggi non sono adatti a determinati scopi per vari motivi. Ad esempio:
Il basic è conosciuto come linguaggio molto semplice che come contro non permette di creare programmi molto complessi o di lavorare a basso livello (Es. allocazione statica della memoria), grandi programmi in basic sono difficili da gestire e da debuggare; una calcolatrice in basic non è difficile da realizzare, un sistema operativo è impensabile. Il java è un linguaggio interpretato quindi molto portabile ma di contro molto pesante. Le applicazioni embedded java esistono ma sono relativamente inefficienti mentre applicativi di utilizzo comune (p2p, editor, player, ecc) sono molto efficienti in quanto lo stesso codice può funzionare su qualsiasi macchina senza essere ritoccato.

