Ho notato che su questo forum viene chiesto molto spesso che linguaggio imparare per cominciare a programmare.
Se i moderatori me lo consentono, avrei una breve descrizione:
Innanzi tutto esistono 2 categorie di linguaggi, in base alla difficoltà:
Linguaggi a basso livello, e linguaggi ad alto livello.
I primi sono dei linguaggi abbastanza ostici da imparare ma sono anche i linguaggi che permettono di far fare qualsiasi cosa ad un pc(o quasi ). Questi linguaggi sono molto vicini al linguaggio macchina, ovvero quella serie interminabile di 1 e di 0.
L'unico linguaggio davvero difficile che mi viene in mente è l'assembler.
Per essere buoni programmatori assembler bisognerebbe conoscere a fondo l'architettura hardware di un pc e saper gestire i numeri con basi diverse dal 10(anche se dovrebbero essere nozioni comuni per qualsiasi programmatore).
Salendo la scala arriviamo al linguaggio forse al livello più alto(ma non per questo poco efficiente) che è il Python.
Poi ci sarebbe una seconda suddivisione da fare, fatta in base alla filosofia di programmazione,che poi è la suddivisione che ci interessa di più:
Linguaggi procedurali e linguaggi ad oggetti:
I primi hanno come parola centrale l'algoritmo, cioè quell'insieme di istruzioni messe una dopo l'altra che, partendo da un input permettono di ottenere un output.
I linguaggi orientati agli oggetti(OOP), mettono al centro di tutto appunto l'oggetto.
Cosa è un oggetto?
Un oggetto è un qualcosa di reale, come un'automobile, una persona,ecc.
Ogni oggetto come sappiamo possiede delle caratteristiche(o attributi) e può svolgere delle azioni(o metodi).
Bene immaginiamo di estrapolare questi oggetti dal mondo reale e di metterli dentro ad un pc. Ecco a voi un linguaggio ad oggetti!
Qui non ci si basa più su una sequenza di istruzioni da eseguire, ma da attributi da cambiare e da metodi da svolgere.
Si, mi sono letta sta pappardella, ma io che linguaggio imparo?
Di linguaggi ne esistono a volontà, e non c'è un linguaggio migliore di un altro, dipende tutto da cosa vogliamo fare e perchè no da quello che più ci attira.
Eccone qualcuno:
C è un linguaggio procedurale, utilizzato per scopi generici ma soprattutto per la programmazione di sistemi operativi e giochi, affiancato da assembler.
C++ è l' evoluzione del C, in quanto si può programmare sia come lo si faceva in C, sia ad oggetti.
Java è un linguaggio ad oggetti, derivante dal C++ con la differenza di essere meno potente ma più robusto, nel senso che la memoria non la controlla il programmatore ma il pc, ciò vuol dire che viene si tolto un pò di controllo al programmatore, ma viene evitato il rischio di una scorretta gestione della memoria.All'inizio infatti si era pensato di chiamare questo linguaggio C++--( ).
Inoltre Java toglie quell'ambiguità che aveva il C++,che non era nè carne ne pesce,infatti non vi era un distinzione ben definita tra linguaggio procedurale e linguaggio a oggetti.Java invece è un linguaggio ad oggetti puro(anche se non al 100%,infatti se lo fosse stato anche per fare 2 + 2 ,si dovrebbe richiamare un metodo che facesse la somma).
Java viene usato per scopi generici.
Visual Basic è un linguaggio di programmazionwe casa Microsoft, nato anche esso per scopi generici, e per chi è alle prime armi avrà sicuramente un buon approccio con esso, ma forse meno possibiltà rispetto ad altri linguaggi.
Pascal è un linguaggio procedurale nato principalmente per insegnare la programmazione, quindi è usato per scopi generici.
Delphi, la versione successiva ed a oggetti del Pascal, con una sintassi "like human", nel senso che assomiglia molto al linguaggio umano.
Poi ci sarebbero dei linguaggi che non sono dei veri e propri linguaggi:
Asp, è un linguaggio utile per gestire siti dinamici, insieme al PHP e JSP,solo che per ASP bisogna pagare(è Microsoft), per PHP e JSP no.
(Spero di non aver fatto cattiva pubblicità ad Asp ).
Questi ultimi linguaggi spesso sono affiancati da altri come Javascript, Jscript e VBscript,che sono dei linguaggi di scripting, che servono per creare funzioni particolari nelle pagine web.
SQL, un linguaggio, o meglio uno standard di istruzioni per la creazione e gestione dei database.
SQL può essere sia a se stante, nel senso che possiede un suo programma, sia integrato, ovvero le sue istruzioni si possono inserire all'interno di altri linguaggi.
A voi la scelta del linguggio