Jeg har sett på min 20 år gamle kode, og gremmes 🙈

Grove variabelnavn, uforståelige kommentarer og milevis med README.TXT. Jeg håper noen kjenner seg igjen.

Det var her, på rommet mitt i Porsgrunn, på denne PC-en, trygt plassert i dette lekre PC-bordet, at jeg programmerte i Visual Basic rundt år 2000. Akkurat dette bildet er fra 2001, da jeg var 17 år gammel og syntes det var kjempegøy å gjøre meg til på bilder. 📸: Privat
Det var her, på rommet mitt i Porsgrunn, på denne PC-en, trygt plassert i dette lekre PC-bordet, at jeg programmerte i Visual Basic rundt år 2000. Akkurat dette bildet er fra 2001, da jeg var 17 år gammel og syntes det var kjempegøy å gjøre meg til på bilder. 📸: Privat Vis mer

Etter litt knoting i QBasic fikk jeg meg en vaskeekte lisens på Visual Basic 5 mot slutten av 90-tallet. Og det var da min hobbykoding virkelig tok av.

Jeg må innrømme at jeg av og til tenker litt stolt tilbake på denne tida. Jeg både var og er fullstendig klar over at andre på rundt 15 år programmerte langt bedre greier enn meg, men likavæl - det var ikke noe alle drev med på den tida.

Nå, 20 år senere, har jeg funnet fram koden min igjen. Og stoltheten min har jekket seg noen hakk; det viser seg nemlig at jeg ikke akkurat var noen kodingens Mozart.

Det er faktisk oppriktig flaut å dele mye av dette.

Men jeg håper inderlig at noen der ute kan kjenne seg igjen i noen av disse fire, rare tingene som går igjen i mine gamle prosjektmapper.

Denne skjermdumpen tok jeg i år 2000. Her kjører Visual Basic det som senere skulle bli Upload Terrorizer; ett av mange heller snodige prosjekter. 📸: Ole Petter Baugerød Stokke
Denne skjermdumpen tok jeg i år 2000. Her kjører Visual Basic det som senere skulle bli Upload Terrorizer; ett av mange heller snodige prosjekter. 📸: Ole Petter Baugerød Stokke Vis mer

#1: Snodige prosjekter

Jeg hadde det samme problemet på 90-tallet som jeg har i dag: Jeg hadde lyst til å programmere, men visste ikke helt hva. Så jeg måtte finne på noe lurt, som å løse problemer som det strengt tatt allerede fantes bedre løsninger for.

Det ga en haug merkelige resultater, med flaue navn, som:

  • En hel bunke spill, av forsiktig sagt ulik kvalitet. Ett handla om å skyte bindersen Clippy i Office-pakka ("Drep Bindersen"). Ett annet var bokstavelig talt stein, saks, papir, ("The Ultimate Boring Game"). På hytta en sommer programmerte jeg en tamagotchi ("Virtual Bjarne Omar") - med stor fokus på avføring.
Dette programmet får jeg faktisk kjørt den dag i dag. Nå har jeg heldigvis fått meg både internett og samboer, så jeg har begrensa bruk for det.
Dette programmet får jeg faktisk kjørt den dag i dag. Nå har jeg heldigvis fått meg både internett og samboer, så jeg har begrensa bruk for det. Vis mer
  • "Upload Terrorizer 2000" lot deg fylle opp andres upload-mapper på datapartyer med tusenvis av meningsløse filer. Det var en greie; folk hadde en mappe på maskinen kalt "upload", hvor andre på samme nettverk kunne laste opp filer. Det var også en greie at når du skulle slette tusenvis av filer samtidig, krasja Windows.
  • "CD Manager" var akkurat det navnet tilsier; et program for å holde orden på CD-er man brant, fulle av piratkopierte filmer, musikk, spill og programvare. Robuste databasesystemer? Hah, nei takk, jeg kan programmere selv.
  • "Inner Chat" / "Apati" lot deg chatte med deg selv. Som i at det du skrev inn dukka opp som chat-beskjeder, annenhver gang mellom for eksempel "me" og "Britney". Jeg hadde ikke internett på den tida. Og innser ikke hvor trist dette programmet er før nå.
  • "Pizza Pod" lot deg velge en pizzatype og sette på tilhørende nedtelling. Fordi hvorfor bruke vanlige stoppeklokker når man kan lage sin egen.
Ah, ingenting som norske variabelnavn med masse Æ-er i som blir uleselige 20 år senere. 📸: Ole Petter Baugerød Stokke
Ah, ingenting som norske variabelnavn med masse Æ-er i som blir uleselige 20 år senere. 📸: Ole Petter Baugerød Stokke Vis mer

#2: Grove, norske, meningsløse variabelnavn

Det er når jeg går inn i kildekoden til prosjektene at det virkelig begynner å bli flaut. Men jeg bjudar på, jeg. For eksempel er variabelnavnene mine helt ute og sykler:

  • Som oftest har jeg gått for norske variabelnavn. Og når jeg sier norske, mener jeg virkelig norske, med ÆØÅ og full pakke. Som forklarer hvorfor kildekoden min er full av "�"-tegn når jeg åpner den opp 20 år senere i VSCode. For eksempel i variabelnavnet "bæsjeklatter" i tamagotchien min.
Til mitt forsvar tror jeg denne variabelen skulle være morsom fordi det var et bilde, altså et "pic". Jeg håper det var grunnen. 📸: Ole Petter Baugerød Stokke
Til mitt forsvar tror jeg denne variabelen skulle være morsom fordi det var et bilde, altså et "pic". Jeg håper det var grunnen. 📸: Ole Petter Baugerød Stokke Vis mer
  • Variabelnavnene på prosjekter som ikke har kommet ut av startgropa er ofte overraskende grove. Jeg gadd tydeligvis ikke å bruke tre sekunder på å finne ut hva jeg burde kalle dem, men gikk heller sporenstreks ned i underbuksa.
  • Noen ganger er variabelnavnene totalt uforståelige, som over. Andre ganger er de kanskje litt vel forståelige. I allerede nevnte Upload Terrorizer definerer jeg for eksempel MusOverFarge, MusIkkeOverFarge, MusOverFargeRød, og MusIkkeOverFargeRød. Hjelpes.
  • Det virker også som at jeg har prøvd meg på en viss form for humor i variabelnavnene. Tamagotchien min teller omsorgspoeng som Kjærleik, og i løkker bruker jeg ofte ErnFerdigTru i stedet for en vanlig i. Off.
I flere av de gamle Visual Basic-prosjektene mine finner jeg bolker som dette. Det er slags blanding av dagbok, bug-logg, versjonskontroll og blogg i ett, og er tidvis rimelig kleine greier. Denne går fra 1999 til år 2000. 📸: Ole Petter Baugerød Stokke
I flere av de gamle Visual Basic-prosjektene mine finner jeg bolker som dette. Det er slags blanding av dagbok, bug-logg, versjonskontroll og blogg i ett, og er tidvis rimelig kleine greier. Denne går fra 1999 til år 2000. 📸: Ole Petter Baugerød Stokke Vis mer

#3: Milevis med tekst

Det viste seg at jeg ikke skulle bli profesjonell utvikler, men journalist. Når jeg ser tilbake på den gamle koden min burde det ikke kommet som et sjokk, for ofte er jeg mer opptatt av å skrive ting rundt koden enn selve koden.

Altså akkurat som det jeg gjør i kode24, akkurat her og nå. Men uansett:

README.TXT til CD Manager, skrevet i 1999. Her er det så mye kleine greier at jeg nesten ikke tør lese hele. 📸: Ole Petter Baugerød Stokke
README.TXT til CD Manager, skrevet i 1999. Her er det så mye kleine greier at jeg nesten ikke tør lese hele. 📸: Ole Petter Baugerød Stokke Vis mer
  • Det beste jeg visste var å lage readme.txt-filer. CD Manager har for eksempel en readme med innholdsfortegnelse, noen greetings ("Greetings all members of Black Magic!"), litt om meg ("I'm at the time a student of Porsgrunn Vidergående Skole!"), noen mer eller mindre politiske uttalelser ("Fuck Bill Gates, rasism of all kind and Boyzone!"), og i det hele tatt så mye flaut at jeg allerede angrer på at jeg tok med noe av dette. Grøss.
  • Også inne i selve koden min er det milevis med kommentarer. For å bruke samme eksempel kan jeg i CD Manager lese at: "Prosjekt startet fredag sen kveld med tanke på forhåpentlig cd-brenner kjøp". I lange bug-rapporter, til meg selv og bare meg selv, også disse inne i selve koden, kan jeg se hvordan jeg ofte finner feil og "løser" dem ved å bare fjerne funksjonaliteten. Eller faktisk klarer å løse dem og blir så gira at både capslock og utropstegnene virkelig får kjørt seg.
  • Meningsfulle kommentarer, derimot, som kunne bidratt til at jeg faktisk forstår koden nå i ettertid, var jeg ikke spesielt opptatt av. Kommentarer av typen "bwah bwah bwah!" får jeg begrensa ut av 20 år senere, merker jeg.
Se på dette. Det bryter alle regler om tørr kode, men er jommen ikke lett å misforstå. Det skal den ha. 📸: Ole Petter Baugerød Stokke
Se på dette. Det bryter alle regler om tørr kode, men er jommen ikke lett å misforstå. Det skal den ha. 📸: Ole Petter Baugerød Stokke Vis mer

#4: Herlig banal kode

Den gamle koden min har helt kaotisk struktur; i den grad jeg bruker innrykk bruker jeg dem uten mål og mening. Den er ikke lett å forstå, heller, med de nevnte meningsløse kommentarene, og Visual Basic-objekter med standardnavn som gir hundrevis av funksjoner som Command1_Click().

Om du lurer på hvorfor jeg ikke har flere skjermdumper av selve programmene, er dette noe av forklaringen. Jeg skulle gjerne kontakta "Black Magic 2K", men gruppa vår ble lagt ned rundt år 2K. 📸: Ole Petter Baugerød Stokke
Om du lurer på hvorfor jeg ikke har flere skjermdumper av selve programmene, er dette noe av forklaringen. Jeg skulle gjerne kontakta "Black Magic 2K", men gruppa vår ble lagt ned rundt år 2K. 📸: Ole Petter Baugerød Stokke Vis mer

Men: Noe av koden er så banalt skrevet at den ikke bare er enkel å forstå, men nærmest litt søt. Koden min er så lite "dry" at det renner av den, og jeg tror min favoritt er funksjonen JegHarBæsja() i Virtual Bjarne Omar.

Om Bjarne Omar har... "bæsja", så settes det ut en ny... "bæsjeklatt", for eksempel... "bæsj1", på samme sted som... "hue" til Bjarne Omar befinner seg.

Litt Porsgrunns-dialekt i koden også sånn på tampen, ja, da snakker vi.

Prøv selv

Tusen takk for meg, jeg bare setter meg med en pute over fjeset i et hjørne og venter på at artikkelen skal fordufte fra internetts arkiver, jeg. 🙈

Men sånn seriøst: Finn fram din egen, gamle kode, da vel! Se på den, le av den, del den! Selv om det er aldri så flaut!

«Se på den, le av den, del den!»

Ikke bare blir du dusjet ned av nostalgi, men du innser også hvor langt du har kommet siden den gang. I en verden full av utviklere du kanskje føler er mye flinkere enn deg, kan du se hvitt på svart at du har blitt ganske så mye flinkere siden starten, du og. Alle starter et sted.

Så får vi se om koden jeg skriver i dag virker like latterlig om 20 år. Det ser jeg ikke helt bort fra.