CS systertidning Computerworld gräver i historien och presenterar programmeringstekniker som en gång i tiden var viktiga.

Faktum är att utvecklarens arbete har blivit lättare med åren. Ett annat sätt att se på saken är att alla arbetsuppgifter som är roliga i programmerarjobbet försvinner med tiden.

Sorteringsalgoritmer
Även i dag måste program sortera data, men för att lyckas med det räcker det för programmeraren att anropa en sorteringsrutin. Så sent som på åttiotalet gick debattens vågor heta om vilken sorteringsalgoritm som var bäst. ”Binära träd är bättre än bubble sort”, var inte ett helt ovanligt debattinlägg.

Utvecklare var inte bara tvungna att välja sorteringsalgoritmer förr i tiden, de fick även lov att skriva koden för att sortera. Programmeringsgurun Donald Knuth skrev en hel bok om ämnet i sin serie ”The Art of Computer Programming”. Man var inte en seriös programmerare om man inte åtminstone ville köpa den boken.

Skapa egna grafiska användargränssnitt
En gång i tiden härskade textbaserade användargränssnitt. Fram till en bit in på nittiotalet, fick programmerare lov att skriva egen fönsterhantering och sedan testa den med olika grafikstandarder som cga, ega och vga, för att inte tala om Hercules, på samma sätt som du i dag testar webbapplikationer i Internet Explorer, Firefox och Safari. Eller i alla fall borde testa dem.

Det är inte så konstigt att många användargränssnitt förr i tiden var i stil med ”skriv 1 för att lägga till, 2 för att redigera, 3 för att ta bort”. I dag är det en barnlek att välja mellan färdiga komponenter i ett utvecklingsverktyg för att skapa ett grafiskt användargränssnitt.

Goto, spagettikod och alla metoder innan strukturerad programmering

I många tidiga programmeringsspråk kontrollerades flödet i programmen med kommandon som ”GOTO 10”. Det innebär att körningen av programmet hoppar till en rad med etiketten 10, som finns eller inte finns mellan 9 och 11, och fortsätter där. Det är skrämmande enkelt att gå vilse och skapa en gordisk kodknut som blir till en underhållsmardröm, därav den nedlåtande termen spagettikod.

Räddningen kom på sjuttiotalet i form av strukturerad programmering, vilket innebär att kod delas in i beslut, sekvenser och slingor. Det bör påpekas att den debatt som kom i kölvattnet av programmeringsgurun Edsger Dijkstras artikel ”Go To Statement Considered Harmful” gav upphov till allt för många ”Considered Harmful”-artiklar.

I många moderna språk saknas goto-kommandot, vilket inte har hindrat vissa programmerare från att uppfinna egna varianter av kommandot.

Minneshantering
Fram till det förra decenniet var det otroligt ont om minne och lagringsutrymme i datorer, vilket innebar att det krävdes imponerande, men tidskrävande, speciallösningar. Programmerare var tvungna att lägga ner mycket tid på att kontrollera hur minnet användes och att minne som inte behövdes frigjordes. Den processen kom att kallas för ”garbage collection”. Den som slarvade med det fick lägga ner ännu mer tid på att täta minnesläckor, onödig användning av minne, som ofta ledde till att datorer kraschade.

Tidiga färdiga lösningar för minneshantering, till exempel i Adakompilatorer, medförde i princip att datorn hängde sig under tiden som minnet rensades. Det var inte så bra för programmerare som skrev program för att styra flygplan, en tänkbar tillämpning för Ada.

I dag har de flesta utvecklingsmiljöer godkänd minneshantering.

Merläsning om äldre programmeringstekniker:

Art of Computer Programming, Volume 3: Sorting and Searching
Exempel på ”Considered Harmful”-artiklar
Studera hur man kan återuppfinna spagettiprogrammering