Innhold
Målet med ethvert programmeringsspråk er å gjøre en dyr datamaskin med papirvekt til en nyttig databehandlings- og lagringsenhet. Språket som er valgt for å utføre denne oppgaven, må balanseres mellom effektivitet og brukervennlighet. Maskinspråk representerer endene på spekteret for begge faktorene.
Maskinspråk
Maskinspråk produserer det eneste settet med instruksjoner som en datamaskin forstår uten en oversetter. Datamaskiner er i stand til å spille av lyd og video, behandle og lagre data, kommunisere med internett og utføre andre spesialiserte oppgaver, og svare på et sett med instruksjoner som bare gjenkjenner ener og nuller. Å skrive hundrevis av kodelinjer med bare ener og nuller er en kjedelig oppgave som bidrar til populariteten til språk på høyt nivå, som C og Java.
Innledende fordeler
IBMs første personlige datamaskin var utstyrt med 512 kB tilfeldig minne og en 360 kB diskettstasjon. Etter at operativsystemet ble lastet inn i minne fra disketten, ble programmene lastet inn i den gjenværende minneplassen, og etterlot et lite RAM-område, vanligvis mindre enn 100 KB, for det aktive programmet å behandle data. I løpet av den tiden var en programmerers hovedoppgave å lage kortfattet og effektiv kode. Programmeringsverktøyet som ble brukt mest på disse datamaskinene var maskinspråket, som kan være betydelig mindre enn en versjon skrevet i BASIC eller C. Det var også litt lettere å bruke monteringsspråket.
Plattformavhengighet
Maskinspråket peker direkte på datamaskinens maskinvare, noe som gir programmereren full kontroll over alle aspekter ved å kjøre et program. Ulempen med denne tilnærmingen er at programmereren må kjenne arkitekturen til hvert sett med integrerte kretser (brikkesett) for å skrive effektiv kode. Når en komponent som et skjermkort eller en diskkontroller endres, må koden oppdateres for å gjenkjenne og bruke den nye enheten.
Språk på høyt nivå
Fordelene med hastighet og lite minne ved maskinspråket oppveies av vanskeligheten med å skrive instruksjoner på brikkenivå i binær kode. Tilgjengeligheten av gigabyte RAM og lagring av terabyte har eliminert behovet for kortfattet og effektiv kode på moderne personlige datamaskiner. Ekstra minne- og lagringskrav til programmer skrevet på høyt nivå språk, som C og Java, er ikke lenger en faktor når du velger en utviklingsplattform. Brukervennlighet og vedlikehold er foretrukne faktorer for hastighet og effektivitet i de fleste moderne programvareprosjekter.