Kodning enklare än någonsin

OLYMPUS DIGITAL CAMERA

Det var sämre förr. Jämfört med idag var det besvärligt för programutvecklare att hitta bra förebilder, att bygga upp sin kodningsmiljö, att distribuera sitt program, att hitta ut ur återvändsgränder då man kört fast. Programmering är idag betydligt enklare än någonsin förr.

Som företagare i älgbranschen har jag börjat programmera igen, efter en paus på ungefär tjugo år. Och att det är skoj! Att bli chef och att umgås med människor snarare än datorer har givetvis sina fördelar, men ränderna verkar aldrig gå ur en programmerare. Det må låta nördigt, arrogant eller bara underligt, men att omsätta idéer i lösningar på programnivå är bland det mest tillfredsställande som finns för somliga av oss. Att bygga teknik hör väl till ingenjörens grundläggande behov.

Återseendets glädje paras med insikten att ungdomskärleken mognat, men inte på bekostnad av skönheten. Vacker kod är tidlöst vacker. Python-kod årsmodell 2014 är egentligen mer estetiskt tilltalande, koncis, elegant och läsbar än Pascal-kod var för tjugo år sedan. Och nästan allting gällande kodning är bättre.

Editorn: Sublime Text eller Textmate klarar saker som på intet vis hade varit tekniskt omöjliga att förverkliga för tjugo år sedan; ingen hade bara kläckt så användbara program då.

Användargränssnittet: Via standardiserade markup-språk, såsom HTML, JSON och XML, slipper programmeraren koda oväsentligheter. Det finns färdiga verktyg för inmatning och utmatning. Till den grad UI-design alls behövs, underlättas den av färdiga komponenter.

Miljön: Baskonfigurationen för programutvecklingen är mycket mer omfattande än förr. Med vilken Mac som helst kommer en fullgod utvecklingsmiljö, som i standardutförande innehåller komponenter jag hade förväntat mig behöva köpa eller åtminstone installera separat.

Open Source: Komponenterna ingår ofta i källkodsform. Inte för att jag behöver ändra i dem, men ser jag källkoden, fattar jag så mycket enklare hur jag ska använda den, och kan samtidigt ta intryck av hur god kod ska se ut idag.

OS-oberoendet: Python-miljön avviker bara i ringa grad mellan Mac, Windows och Linux. Jag behöver omkoda bara det allra nödvändigaste. Dessutom används mitt program ändå via nätet, varvid de få olikheterna som beror av operativsystemet försvinner helt.

Programstrukturen: Med förbehållet att språkfrågor lätt blir laddade även i programmeringssammanhang, hävdar jag att dagens språk är mindre grötiga. Själv har jag i år badat i Python och duschat i JavaScript, och båda två har rykt konsekvens och elegans. Så är de också nyare än lapptäckena PHP och Perl, de ”näst nyaste” språken jag råkat ut för.

kajgps.graffle

Det allestädes närvarande Internet är det centrala som gör livet för en programmerande företagare så mycket enklare på 2010-talet än 1980- eller 1990-talet. Man kan dela sina specifikationer via GDoc, sin källkod via Github och sina testdata med Dropbox. Mellanresultaten kan man visa på nolltid, som HTML, som JPG, eller i filformat specifika för ens applikation, fastän användaren skulle sitta i ett annat land.

Kronan på verket är StackOverflow. Det är en webbsajt som innehåller klart och tydligt skrivna svar på vilka vettigt ställda frågor som helst. Hur beräknar man i Python avståndet mellan två punkter, vars latitud och longitud är kända? Hur konverterar man datum i JavaScript? Hur kodar man switch-case i Python? Det känns ibland som om man hade tillgång till en luntlapp, som välvilligt inställda medprogrammerare skrivit åt en.

Ska man lära sig nya begrepp eller verktyg finns det Wikipedia. Där står det hela kort förklarat på svenska. En grundligare variant får man sedan på tyska (med vettiga datumformat och icke-medeltida måttenheter) eller till nöds engelska. Och räcker inte vare sig StackOverflow eller Wikipedia, finns central dokumentation att tillgå öppet på nätet, så gott som alltid. Google-sökningar ger svaret, om man prövar ropa i skogen på några olika sätt.

Var allt sämre förr? Jag skulle nästan säga det. Undantaget skulle i så fall vara Unicode. Ja, ”de skandinaviska bokstäverna” har malträterats sedan datorerna kom till Norden. Men här stampar vi på stället. Förr klåpade datormiljöerna bort åäö, skrev ut dem fel eller sorterade dem fel. Nu schabblar datorerna inte bara med åäö, utan också med icke-germanska eller utomeuropeiska alfabet. Python beter sig annars konsekvent och förnuftigt, men om jag skriver ut de åtta första bokstäverna i ”Kaj Arnö” utgörs den åttonde bokstaven av ett halvt ö. Japp, ett halvt ö. Och felmeddelandet jag får är bland de mest esoteriska jag sett.

Men kanske också det blir bättre i framtiden.