Confronto tra i linguaggi di programmazione più diffusi

Dagli anni '50, gli informatici hanno ideato migliaia di linguaggi di programmazione. Molti sono oscuri, forse creati per un Ph. D. tesi e non ne ho mai sentito parlare. Altri sono diventati popolari per un po ', poi sono sbiaditi a causa della mancanza di supporto o perché erano limitati a un particolare sistema informatico. Alcune sono varianti delle lingue esistenti, aggiungendo nuove funzionalità come il parallelismo: la possibilità di eseguire in parallelo molte parti di un programma su diversi computer.

Per saperne di più Che cos'è un linguaggio di programmazione?

Confronto dei linguaggi di programmazione

Esistono diversi modi per confrontare le lingue dei computer, ma per semplicità, le confronteremo per Metodo di compilazione e Livello di astrazione.

Compilazione al codice macchina

Alcuni linguaggi richiedono che i programmi vengano trasformati direttamente in Codice macchina, le istruzioni che una CPU comprende direttamente. Questo processo di trasformazione viene chiamato compilazione. Assembly Language, C, C ++ e Pascal sono linguaggi compilati.

instagram viewer

Lingue interpretate

Altre lingue sono entrambe Interpretato come Basic, Actionscript e Javascript o una combinazione di entrambi in fase di compilazione in un linguaggio intermedio, inclusi Java e C #.

Una lingua interpretata viene elaborata in fase di esecuzione. Ogni riga viene letta, analizzata ed eseguita. Dover rielaborare una riga ogni volta in un ciclo è ciò che rende le lingue interpretate così lente. Questo sovraccarico significa che il codice interpretato viene eseguito da 5 a 10 volte più lentamente del codice compilato. Le lingue interpretate come Basic o JavaScript sono le più lente. Non è necessario ricompilare il loro vantaggio dopo le modifiche e questo è utile quando si impara a programmare.

Perché compilato programmi corrono quasi sempre più velocemente di quanto interpretato, i linguaggi come C e C ++ tendono ad essere i più popolari per la scrittura di giochi. Java e C # si 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 tali lingue siano veloci se non più veloci del C ++ compilato.

Livello di astrazione

L'altro modo di confrontare le lingue è il livello di astrazione. Questo indica quanto è vicina una particolare lingua all'hardware. Il codice macchina è il livello più basso, con il linguaggio assembly appena sopra di esso. C ++ è più alto di C perché C ++ offre una maggiore astrazione. Giava e C # sono superiori a C ++ perché vengono compilati in un linguaggio intermedio chiamato bytecode.

Come confrontare le lingue

  • Lingue compilate rapidamente
  • Linguaggio assembly
  • C
  • C ++
  • Pascal
  • C #
  • Giava
  • Interpretazione ragionevolmente veloce
  • Perl
  • PHP
  • Interpretazione lenta
  • JavaScript
  • ActionScript
  • Di base

Il codice macchina è le istruzioni eseguite da 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 quindi lo "esegue".

L'interpretazione è più semplice

È molto facile arrestare, modificare e rieseguire le 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. Un'applicazione Visual C ++ di grandi dimensioni può richiedere da minuti a ore per essere compilata, a seconda della quantità di codice da ricostruire e della velocità della memoria e della CPU.

Alla prima apparizione dei computer

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 cambiare fisicamente gli interruttori per inserire i valori. Questo è un modo tedioso e lento di creare un'applicazione che è stato necessario creare linguaggi per computer di livello superiore.

Assembler: Fast to Run - Slow to Write!

Il linguaggio assembly è la versione leggibile di Machine Code e si presenta così

Sposta A, $ 45

Poiché è legato a una particolare CPU o famiglia di CPU correlate, Assembly Language non è molto portatile e richiede tempo per apprendere e scrivere. Linguaggi come C hanno ridotto la necessità di programmare il linguaggio assembly, tranne nei casi in cui la RAM è limitata o è necessario un codice critico nel tempo. Questo è in genere nel codice del kernel nel cuore di un sistema operativo o in un driver della scheda video.

Assembly Language è il livello più basso di codice

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 che vuoi pensare in termini di stipendi e detrazioni fiscali, non Registra A nella posizione di memoria XYZ. Ecco perché linguaggi di livello superiore come C ++, C # o Giava sono più produttivi. Il programmatore può pensare in termini di dominio problematico (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 pensato come uno strumento per tutti gli usi: molto utile e potente, ma molto facile da superare, che può rendere insicuri i sistemi. C è un linguaggio di basso livello ed è stato descritto come linguaggio Assembly portatile. La sintassi di molti linguaggi di scripting si basa 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 oggi. Per la programmazione "veloce e sporca" sul Web, non ha rivali e guida molti siti Web. È stato comunque in qualche modo eclissato PHP come linguaggio di scripting web.

Siti Web di codifica con PHP

PHP è stato progettato come linguaggio per i server Web ed è molto popolare insieme a Linux, Apache, MySql e PHP o LAMP in breve. Viene interpretato, ma pre-compilato, quindi il codice viene eseguito abbastanza 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 era stato concepito come lingua di insegnamento alcuni anni prima di C, ma era molto limitato con una scarsa gestione di stringhe e file. Diversi produttori hanno esteso la lingua, ma non c'è stato nessun leader generale fino alla comparsa di Turbo Pascal (per Dos) di Borland e Delphi (per Windows). Queste erano potenti implementazioni che aggiungevano abbastanza funzionalità per renderle adatte allo sviluppo commerciale. Tuttavia, Borland si scontrò con la Microsoft molto più grande e perse la battaglia.

C ++: un linguaggio di classe!

Le classi C ++ o C plus, com'era inizialmente nota, risalgono a circa dieci anni dopo C e introducono con successo la programmazione orientata agli oggetti in C, nonché funzionalità come eccezioni e modelli. Imparare tutto il C ++ è un grande compito: è di gran lunga il più complicato dei linguaggi di programmazione qui, ma una volta che lo avrai imparato, non avrai difficoltà con nessun altro linguaggio.

C #: grande scommessa di Microsoft

C # è stato creato da DelphiL '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 essersi trasferito su Microsoft. Impara C # e sei sulla buona strada per conoscere Java. Entrambi i linguaggi sono semi-compilati in modo tale che invece di compilare in codice macchina, si compilano in bytecode (C # compila in CIL ma esso e Bytecode sono simili) e vengono quindi interpretati.

Javascript: programmi nel browser

Javascript non è come Java, invece, è un linguaggio di scripting basato sulla sintassi C ma con l'aggiunta di Oggetti e viene utilizzato principalmente nei browser. JavaScript viene interpretato e molto più lentamente di compilato codice ma funziona bene all'interno di un browser.

Inventato da Netscape ha riscosso molto successo e dopo diversi anni in stasi si sta godendo una nuova vita a causa di AJAX; Javascript e XML asincroni. Ciò consente a parti delle 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 una grafica vettoriale, viene utilizzato principalmente per giochi, riproduzione di video e altri effetti visivi e per lo sviluppo di interfacce utente sofisticate, tutte in esecuzione nel browser.

Di base per principianti

Di base è l'acronimo di Beginners Code of Symbolic Instruction Code ed è stato creato per insegnare la programmazione negli anni '60. Microsoft ha reso il linguaggio proprio con molte versioni diverse tra cui VBScript per siti Web e il successo Visual Basic. L'ultima versione è VB.NET e funziona sulla stessa piattaforma .NETTO come C # e produce lo stesso bytecode CIL.

Lua è un linguaggio di scripting gratuito scritto in C che include garbage collection e coroutine. Si interfaccia bene con C / C ++ ed è utilizzato nel settore dei giochi (e anche dei non-giochi) per scrivere la logica del gioco, i trigger di eventi e il controllo del gioco.

Conclusione

Mentre tutti hanno la loro lingua preferita e hanno investito tempo e risorse per imparare a programmarla, ci sono alcuni problemi che sono meglio risolti con la lingua giusta.

Ad esempio, non useresti C per scrivere app Web e non scriveresti un sistema operativo in Javascript. Ma qualunque sia la lingua scelta, se è C, C ++ o C #, almeno sai di essere nel posto giusto per impararla.

instagram story viewer