Formålet med ethvert programmeringssprog er at omdanne en computer fra en dyr elektronisk papirvægt til en nyttig databehandlings- og lagringsenhed. At vælge et sprog til at udføre denne opgave er en afvejning mellem effektivitet og brugervenlighed. Maskinsprog repræsenterer de ekstreme ender af spektret for begge disse faktorer.

Programmering

Maskinsprog

Maskinsprog producerer det eneste sæt instruktioner, som en computer forstår uden en oversætter. Computere formår at udføre lyd- og videogengivelse, databehandling og opbevaring, internetkommunikation og alle andre specialiserede opgaver ved at svare på et instruktionssæt, der kun genkender dem og nuller. Skrivning af hundreder af kodelinjer, der består af ender og nuller, er en krævende og kedelig proces, der tegner sig for populariteten på sprog på højere niveau, f.eks. C og Java.

Tidlige fordele

Den første IBM-pc var udstyret med 512 kilobyte hukommelse med tilfældig adgang og et 360-kilobyts diskettedrev. Efter at operativsystemet var indlæst i hukommelsen fra diskettedrevet, blev programmer indlæst i den resterende hukommelsesplads, hvilket efterlod et meget lille RAM-område, ofte mindre end 100 kilobyte, for at det aktive program kunne behandle data. I denne periode var en programmerers største bekymring mager og effektiv kode. De valgte programmeringsværktøjer på disse tidlige computere var normalt maskinsprog, som kan være betydeligt mindre end en version skrevet i BASIC eller C. Det var også noget lettere at bruge efterkommer, samlingssprog.

Platformafhængighed

Maskinsprog adresserer computerens hardware direkte, hvilket giver programmereren fuld kontrol over alle aspekter af programmets udførelse. Ulempen med denne tilgang er, at programmereren skal kende arkitekturen i hvert chipset, før han kan skrive effektiv kode. Når en komponent, såsom et videokort eller en drevcontroller, ændres, skal maskinsprogekoden opdateres for at genkende og adressere den nye enhed.

Sprog på højt niveau

Fordelene ved maskinsprogets hastighed og små hukommelsesfodaftryk opvejes i stigende grad af vanskeligheden ved at skrive instruktioner på chipniveau i binær kode. Gigabyte RAM og terabyte med tilgængelig lagring har elimineret kravet om mager, effektiv kode i moderne pc'er. De yderligere krav til hukommelse og opbevaring, der stilles af programmer skrevet på sprog på højere niveau, såsom C og Java, er ikke længere en faktor, når du vælger en udviklingsplatform. Brugervenlighed og fremtidige bekymringer om programvedligeholdelse tager stedet for hastighed og effektivitet i de fleste moderne softwareprojekter.