Lo scopo di qualsiasi linguaggio di programmazione è trasformare un computer da un costoso fermacarte elettronico in un utile dispositivo di elaborazione e archiviazione dei dati. Scegliere una lingua per svolgere questo compito è un compromesso tra efficienza e facilità d'uso. Il linguaggio macchina rappresenta gli estremi dello spettro per entrambi questi fattori.

Programmazione

Linguaggio macchina

Il linguaggio macchina produce l'unica serie di istruzioni che un computer comprende senza un traduttore. I computer riescono a realizzare la riproduzione audio e video, l'elaborazione e l'archiviazione dei dati, la comunicazione su Internet e tutte le altre attività specializzate rispondendo a un set di istruzioni che riconosce solo uno e zero. Scrivere centinaia di righe di codice costituite da uno e zero è un processo impegnativo e noioso che spiega la popolarità di linguaggi di livello superiore come C e Java.

I primi vantaggi

Il primo personal computer IBM era dotato di 512 kilobyte di memoria ad accesso casuale e un'unità floppy da 360 kilobyte. Dopo che il sistema operativo è stato caricato in memoria dall'unità floppy, i programmi sono stati caricati nello spazio di memoria rimanente lasciando un'area molto piccola di RAM, spesso inferiore a 100 kilobyte, per consentire al programma attivo di elaborare i dati. Durante questo periodo, la preoccupazione principale di un programmatore era un codice snello ed efficiente. Gli strumenti di programmazione prescelti su questi primi computer erano di solito un linguaggio macchina, che può essere considerevolmente più piccolo di una versione scritta in BASIC o C. Era anche un po 'più facile usare un linguaggio discendente, assembly.

Dipendenza dalla piattaforma

Il linguaggio macchina si rivolge direttamente all'hardware del computer, offrendo al programmatore il controllo completo su ogni aspetto dell'esecuzione di un programma. Lo svantaggio di questo approccio è che il programmatore deve conoscere l'architettura di ciascun chipset prima di poter scrivere codice efficace. Quando viene modificato un componente come una scheda video o un controller di unità, ad esempio, il codice della lingua della macchina deve essere aggiornato per riconoscere e indirizzare il nuovo dispositivo.

Lingue di alto livello

I vantaggi di velocità e ingombro della memoria del linguaggio macchina sono sempre più compensati dalla difficoltà di scrivere istruzioni a livello di chip in codice binario. Gigabyte di RAM e terabyte di spazio di archiviazione disponibile hanno eliminato la necessità di un codice snello ed efficiente nei moderni personal computer. Le richieste di memoria e archiviazione aggiuntive richieste da programmi scritti in linguaggi di livello superiore come C e Java non sono più un fattore nella scelta di una piattaforma di sviluppo. La facilità d'uso e i futuri problemi di manutenzione del programma prendono il posto della velocità e dell'efficienza nella maggior parte dei progetti software moderni.