Plötsligt händer det!
2014-11-09
Kommer ni ihåg den där gamla reklamfilmen när en person står i en lång kö till kassan i en mataffär då plötsligt en ny kassa som personen blir först i kön till öppnas? "Plötsligt händer det!". Jag kommer inte ihåg vad filmen gör reklam för, men igår inträffade i alla fall en sådan "plötsligt händer det"-händelse.
Jag satt och kodade på matteappen fram på kvällskvisten. Höll på med en egen grafisk View
i vilken användaren skall kunna ange ett klockslag genom att ställa visarna på en analog klocka. Jag hade kommit så långt att jag hade ritat ut en urtavla med siffror och minutmarkeringar samt den långa visaren. Den korta visaren tänkte jag vänta ett slag med. Det jag jobbade med för tillfället var funktionalitet för att kunna flytta den långa visaren runt urtavlan genom att dra fingret över surfplattan. Det som gjorde det hela icke-trivialt (relativt sett....) var att eftersom den långa visaren alltid skall gå från mitten av urtavlan till dess perferi men fingret som styr den i de flesta fall inte kommer att befinna sig på urtavlans rand måste jag projecera fingrets position på rätt ställe på randen. Inte superkomplicerat så klart, men det kräver lite trixande med trigonometri. Sen måste man hålla koll på i vilken kvadrant fingret befinner sig också för att veta hur man skall justera koordinaterna på visarens slutpunkt.
Vad var då det där "plötsligt händer det"-ögonblicket nu då? Jo, det var att det funkade precis som jag hade tänkt mig med en gång! Inte en enda omkompilering pga att det var något jag missat eller något fall jag glömt eller så. Det funkade direkt. Helt otroligt. Det händer ju i princip aldrig. Inte mig i alla fall.
Blev så uppspelt att jag gick bort till frugan som satt och såg på TV i soffan och visade upp den fina nya funktionaliteten. Kommentaren blev ett förstrött "Vad bra.", med undertonen "gå nu så kan jag se klart på programmet". Vissa förstår inte hur ovanligt det är att något i mjukvaruvärlden funkar på en gång ;)
Varför är det på detta viset då? Att det är så få gånger som man skriver något funkar med en gång. En förklaring kan vara att det vi sysslar med som programmerare är så komplext att det är svårt att få det rätt på första försöket. En annan, mindre välvillig, förklaring kan vara att tiden det tar att genomgå en write-compile-(deploy)-run-test-cyklel ofta är så kort så att det inte är lönt mödan att tänka igenom sitt program ordentligt. Det är lättare att bara köra på och låta testerna avgöra om programmet är korrekt eller inte. Antagligen är det väl en kombination av de två. Egot vill dock gärna propagera för den första förklaringen ;)
Skönt var det i alla fall att ha ett "plötsligt händer det"-ögonblick. Får väl se när det händer nästa gång. Misstänker att det lär dröja...
Leave a reply