Confronto tra linguaggi di programmazione popolari
Come si impilano?
Getty Images/ermingut
Dagli anni '50, gli informatici hanno ideato migliaia di linguaggi di programmazione. Molti sono oscuri, forse creati per un dottorato di ricerca. tesi e da allora mai sentito. Altri sono diventati popolari per un po', poi sono svaniti a causa della mancanza di supporto o perché erano limitati a un particolare sistema informatico. Alcuni sono varianti di linguaggi esistenti, aggiungendo nuove funzionalità come il parallelismo, la capacità di eseguire molte parti di un programma su computer diversi in parallelo.
Leggi di più su Che cos'è un linguaggio di programmazione?
Confronto tra linguaggi di programmazione
Esistono diversi modi per confrontare i linguaggi del computer, ma per semplicità li confronteremo in base al metodo di compilazione e al livello di astrazione.
Compilazione in codice macchina
Alcuni linguaggi richiedono che i programmi vengano trasformati direttamente in Machine Code, le istruzioni che una CPU comprende direttamente. Questo processo di trasformazione è chiamato compilazione . Assembly Language, C, C++ e Pascal sono linguaggi compilati.
Lingue interpretate
Anche le altre lingue lo sono Interpretato come Basic, Actionscript e Javascript o una combinazione di entrambi compilati in un linguaggio intermedio, inclusi Java e C#.
Una lingua interpretata viene elaborata in fase di esecuzione. Ogni riga viene letta, analizzata ed eseguita. Il dover rielaborare una riga ogni volta in un ciclo è ciò che rende i linguaggi interpretati così lenti. Questo sovraccarico significa che il codice interpretato viene eseguito da 5 a 10 volte più lentamente del codice compilato. I linguaggi interpretati come Basic o JavaScript sono i più lenti. Il loro vantaggio non ha bisogno di essere ricompilato dopo le modifiche e questo è utile quando stai imparando a programmare.
Perché compilato programmi quasi sempre funzionano più velocemente di quanto interpretato, linguaggi come C e C++ tendono ad essere i più popolari per la scrittura di giochi. Java e C# compilano entrambi in un linguaggio interpretato che è molto efficiente. Poiché la macchina virtuale che interpreta Java e il framework .NET che esegue C# sono fortemente ottimizzati, si afferma che le applicazioni in questi linguaggi sono veloci se non più veloci del C++ compilato.
Livello di astrazione
L'altro modo per confrontare le lingue è il livello di astrazione. Questo indica quanto una lingua particolare è vicina all'hardware. Machine Code è il livello più basso, con Assembly Language appena sopra. C++ è superiore a C perché C++ offre una maggiore astrazione. Giava e C# sono superiori a C++ perché compilano in un linguaggio intermedio chiamato bytecode.
Come si confrontano le lingue
- |_+_|
- Linguaggio assembly
- C
- C++
- Pasquale
- C#
- Giava
- |_+_|
- Perl
- PHP
- |_+_|
- JavaScript
- ActionScript
- Di base
Il codice macchina è l'istruzione che esegue una CPU. È l'unica cosa che una CPU può capire ed eseguire. Le lingue interpretate necessitano di un'applicazione chiamata an Interprete che legge ogni riga del codice sorgente del programma e poi lo 'esegue'.
Interpretare è più facile
È molto facile fermare, modificare e rieseguire applicazioni scritte in un linguaggio interpretato ed è per questo che sono popolari per l'apprendimento della programmazione. Non è necessaria alcuna fase di compilazione. La compilazione può essere un processo piuttosto lento. La compilazione di un'applicazione Visual C++ di grandi dimensioni può richiedere da minuti a ore, a seconda della quantità di codice da ricostruire e della velocità della memoria e della CPU.
Quando i computer sono apparsi per la prima volta
Quando i computer divennero popolari per la prima volta negli anni '50, i programmi venivano scritti in codice macchina poiché non c'era altro modo. I programmatori dovevano capovolgere fisicamente gli interruttori per inserire i valori. Questo è un modo così noioso e lento di creare un'applicazione che è stato necessario creare linguaggi informatici di livello superiore.
Assembler: veloce da eseguire, lento da scrivere!
Il linguaggio assembly è la versione leggibile di Machine Code e si presenta così
|_+_|
Poiché è legato a una particolare CPU o famiglia di CPU correlate, Assembly Language non è molto portabile e richiede tempo per l'apprendimento e la scrittura. Linguaggi come C hanno ridotto la necessità di programmazione in linguaggio Assembly, tranne nei casi in cui la RAM è limitata o è necessario un codice time-critical. Questo è in genere nel codice del kernel nel cuore di un sistema operativo o nel driver di una scheda video.
Il linguaggio assembly è il livello di codice più basso
Assembly Language è di livello molto basso; la maggior parte del codice sposta semplicemente i valori tra i registri della CPU e la memoria. Se stai scrivendo un pacchetto di buste paga, vuoi pensare in termini di stipendi e detrazioni fiscali, non Registrare A nella posizione di memoria XYZ. Questo è il motivo per cui linguaggi di livello superiore come C++,C#oGiavasono più produttivi. Il programmatore può pensare in termini di dominio del problema (stipendi, detrazioni e ratei) non del dominio hardware (registri, memoria e istruzioni).
Programmazione di sistemi con C
C è stato ideato nei primi anni '70 da Dennis Ritchie. Può essere considerato uno strumento generico, molto utile e potente ma molto facile da far passare i bug che possono rendere insicuri i sistemi. C è un linguaggio di basso livello ed è stato descritto come linguaggio Assembly portabile. La sintassi di molti linguaggi di scripting è basata su C, ad esempio, JavaScript , PHP e ActionScript.
Perl: siti Web e utilità
Molto popolare nel mondo Linux, Perl è stato uno dei primi linguaggi web e rimane molto popolare ancora oggi. Per fare una programmazione 'rapida e sporca' sul web, rimane senza rivali e guida molti siti web. Tuttavia è stato in qualche modo eclissato da PHP come linguaggio di scripting web .
Siti Web di codifica con PHP
PHP è stato progettato come linguaggio per server Web ed è molto popolare insieme a Linux, Apache, MySql e PHP o LAMP in breve. Viene interpretato, ma precompilato in modo che il codice venga eseguito ragionevolmente rapidamente. Può essere eseguito su computer desktop ma non è così ampiamente utilizzato per lo sviluppo di applicazioni desktop. Basato sulla sintassi C, include anche Oggetti e Classi.
Pascal è stato concepito come lingua di insegnamento alcuni anni prima del C, ma era molto limitato con una scarsa gestione di stringhe e file. Diversi produttori hanno esteso il linguaggio ma non c'era un leader assoluto fino a quando non sono apparsi Turbo Pascal (per Dos) e Delphi (per Windows) di Borland. Si trattava di potenti implementazioni che aggiungevano funzionalità sufficienti per renderle adatte allo sviluppo commerciale. Tuttavia, Borland si è scontrato con la molto più grande Microsoft e ha perso la battaglia.
C++: un linguaggio di classe!
Le classi C++ o C plus, come erano originariamente conosciute, sono arrivate circa dieci anni dopo il C e hanno introdotto con successo la programmazione orientata agli oggetti in C, oltre a funzionalità come eccezioni e modelli. Imparare tutto il C++ è un compito arduo: è di gran lunga il più complicato dei linguaggi di programmazione qui, ma una volta padroneggiato, non avrai difficoltà con nessun altro linguaggio.
C#: la grande scommessa di Microsoft
C# è stato creato daDelfiL'architetto Anders Hejlsberg dopo essersi trasferito in Microsoft e gli sviluppatori Delphi si sentiranno a casa con funzionalità come i moduli di Windows.
La sintassi C# è molto simile a Java, il che non sorprende poiché Hejlsberg ha lavorato anche su J++ dopo essere passato a Microsoft. Impara C# e sei sulla buona strada per conoscere Java. Entrambi i linguaggi sono semi-compilati in modo che invece di compilare in codice macchina, compilano in bytecode ( C# compila in CIL ma esso e Bytecode sono simili) e quindi vengono interpretati.
Javascript: programmi nel tuo browser
Javascript non assomiglia a Java, invece, è un linguaggio di scripting basato sulla sintassi C ma con l'aggiunta di Oggetti ed è utilizzato principalmente nei browser. JavaScript è interpretato e molto più lento di compilato codice ma funziona bene all'interno di un browser.
Inventato da Netscape si è rivelato un grande successo e dopo diversi anni in stasi si sta godendo una nuova prospettiva di vita grazie a AJAX; Javascript e XML asincroni . Ciò consente a parti di pagine Web di aggiornarsi dal server senza ridisegnare l'intera pagina.
ActionScript: un linguaggio appariscente!
ActionScript è un'implementazione di JavaScript ma esiste esclusivamente all'interno delle applicazioni Macromedia Flash. Utilizzando la grafica vettoriale, viene utilizzato principalmente per giochi, riproduzione di video e altri effetti visivi e per lo sviluppo di interfacce utente sofisticate, il tutto in esecuzione nel browser.
Base per principianti
Di base è l'acronimo di Beginners All-purpose Symbolic Instruction Code ed è stato creato per insegnare la programmazione negli anni '60. Microsoft ha reso proprio il linguaggio con molte versioni diverse tra cui VBScript per i siti Web e il grande successo Visual Basic . L'ultima versione è VB.NET e funziona sulla stessa piattaforma .RETE come C# e produce lo stesso bytecode CIL.
Due è un linguaggio di scripting gratuito scritto in C che include la raccolta dei rifiuti e le coroutine. Si interfaccia bene con C/C++ ed è utilizzato nell'industria dei giochi (e anche non) per creare script di logica di gioco, trigger di eventi e controllo del gioco.
Conclusione
Mentre ognuno ha la sua lingua preferita e ha investito tempo e risorse per imparare a programmarla, ci sono alcuni problemi che si risolvono meglio con la lingua giusta.
Ad esempio, non useresti C per scrivere app Web e non scriveresti un sistema operativo in Javascript. Ma qualunque lingua tu scelga, se è C, C++ o C#, almeno sai di essere nel posto giusto per impararla.