Indhold
Målet med ethvert programmeringssprog er at gøre en dyr papirvægtscomputer til en nyttig databehandlings- og lagerenhed. Det sprog, der vælges til at udføre denne opgave, skal være afbalanceret mellem effektivitet og brugervenlighed. Maskinsprog repræsenterer enderne af spektret for begge faktorer.
Maskinsprog
Maskinsprog producerer det eneste sæt instruktioner, som en computer forstår uden en oversætter. Computere er i stand til at afspille lyd og video, behandle og gemme data, kommunikere med internettet og udføre andre specialiserede opgaver og svare på et sæt instruktioner, der kun genkender dem og nuller. At skrive hundreder af linier med kode med kun dem og nuller er en kedelig opgave, der bidrager til populariteten af sprog på højt niveau, såsom C og Java.
Indledende fordele
IBMs første personlige computer var udstyret med 512 KB tilfældig adgangshukommelse og et 360 KB diskettedrev. Efter at operativsystemet blev indlæst i hukommelsen fra disketten, blev programmer indlæst i den resterende hukommelsesplads, hvilket efterlod et lille RAM-område, normalt mindre end 100 KB, til det aktive program til at behandle data. I løbet af denne tid var en programmørs primære bekymring at skabe kortfattet og effektiv kode. Programmeringsværktøjet, der blev brugt mest på disse computere, var maskinsproget, som kan være betydeligt mindre end en version skrevet i BASIC eller C. Det var også lidt lettere at bruge samlesproget.
Platformafhængighed
Maskinsproget peger direkte på computerens hardware, hvilket giver programmøren fuld kontrol over alle aspekter af at køre et program. Ulempen ved denne tilgang er, at programmøren skal kende arkitekturen for hvert sæt integrerede kredsløb (chipsæt) for at skrive effektiv kode. Når en komponent såsom et grafikkort eller en diskcontroller ændres, skal koden opdateres for at genkende og bruge den nye enhed.
Sprog på højt niveau
Fordelene ved hastighed og lav hukommelsesforbrug ved maskinsproget opvejes af vanskeligheden ved at skrive instruktioner på chipniveau i binær kode. Tilgængeligheden af gigabyte RAM og terabyte lagerplads har fjernet behovet for kortfattet og effektiv kode på moderne pc'er. De ekstra hukommelses- og opbevaringskrav til programmer skrevet på sprog på højt niveau, såsom C og Java, er ikke længere en faktor, når man vælger en udviklingsplatform. Brugervenlighed og vedligeholdelse er foretrukne faktorer for hastighed og effektivitet i de fleste moderne softwareprojekter.