Quote Originariamente inviata da giannino1995 Visualizza il messaggio
Mi spiace ma non condivido. Per ora ho solo studiato java per il desktop e php per il web e mi sto accorgendo che alla fine, a meno di differenze, i linguaggi si assomigliano tutti.
La conoscenza di un paio di linguaggi è una posizione decisamente troppo debole per la formazione di un giudizio complessivo.
Da un lato è assolutamente lapalissiano che i linguaggi di programmazione presentino elementi comuni: non foss'altro per l'arcinoto teorema di Boehm-Iacopini che stabilisce il minimo mutuabile di caratteristiche che un linguaggio deve possedere per garantire l'equivalenza secondo Church-Turing - ovvero, in soldoni, per poter eseguire ogni tipo di algoritmo convenzionale.

Dall'altro lato, tra le centinaia di linguaggi che non conosci, ve ne sono diverse dozzine che non assomigliano minimamente ai vari java, php, eccetera: dai linguaggi paralleli a quelli funzionali puri, ai linguaggi dichiarativi, a quelli constrained, ai linguaggi di descrizione hardware, ai linguaggi vettoriali, e così via. Linguaggi nei quali è in genere difficilissimo delineare i costrutti condizionali e pressoché impossibile reperire perfino i più banali costrutti di loop, perché implementati in modo implicito (tipicamente ricorsivo).

Suggerire, come primo passo, di studiare molto bene il Sebesta, un riferimento pressoché obbligatorio per chiunque voglia iniziare a chiarirsi le idee sul panorama dei linguaggi di programmazione convenzionali e sulla necessità di un approccio multiparadigmatico.

L'unico linguaggio assolutamente "universale", comunque limitato ad una singola famiglia di piattaforme, è l'Assembly col relativo linguaggio macchina. Ma fin da quando "il calcolatore" era un oggetto che pesava diverse decine di tonnellate, occupava un intero piano di un edificio e assorbiva più energia elettrica di uno stabilimento industriale ci si è preoccupati di inventare linguaggi specialistici e di alto livello, come COBOL. Certo non senza motivi assolutamente sensati!
Peraltro C e C++ sono, dopo il già citato Assembly, tra i linguaggi in assoluto più flessibili e totipotenti. Il linguaggio C è praticamente l'unico esempio serio di linguaggio di livello intermedio, più vicino all'hardware e all'Assembly di qualsiasi altro HLL (incluso lo stesso C++). Esistono librerie e framework per ogni tipo di utilizzo di C e C++, dal calcolo scientifico su architetture a parallelismo massivo al controllo di sistemi embedded in tempo reale, dalla grafica tridimensionale alla topologia computazionale, e migliaia di altri campi applicativi - sovente altamente specialistiche e disponibili solo a costi molto elevati, in non disclosure. Ma nonostante tutto questo, corposi studi di engineering economico dimostrano, dati alla mano, come risulti enormemente più conveniente e razionale, sul medio periodo, l'uso di linguaggi, paradigmi e framework alternativi per taluni tipi di applicazioni e di mercati.