– Sunt å kunne kode nettsider fra scratch!

- Jeg tror jeg er litt enig med CSS-skaperen Håkon Wium Lie, skriver kode24-journalist Kurt Lekanger i ukens nyhetsbrev.

Håkon Wium Lie snakket på kode24-dagen om historien til CSS – og mente flere utviklere burde prøve å bygge ting fra scratch i stedet for å lene seg for mye på rammeverk. 📸: Shawn Arvind
Håkon Wium Lie snakket på kode24-dagen om historien til CSS – og mente flere utviklere burde prøve å bygge ting fra scratch i stedet for å lene seg for mye på rammeverk. 📸: Shawn Arvind Vis mer

– Det er sunt å kunne kode nettsider fra scratch!

Mannen som sier dette er ingen ringere enn CSS-oppfinneren selv, Håkon Wium Lie. Fra scenen på kode24-dagen denne uken kunne han fortelle den fascinerende historien om hvordan han etter å ha trasket rundt i korridorene i CERN – der web-en ble oppfunnet – skjønte at vi trengte noe for å gjøre det enklere å lage nettsider som ikke bare fungerte, men også var fine å se på.

Og så fant han bare like godt opp CSS!

Kurt Lekanger, journalist i kode24. 📸: Ole Petter Baugerød Stokke
Kurt Lekanger, journalist i kode24. 📸: Ole Petter Baugerød Stokke Vis mer

Wium Lie mener mange utviklere i dag i altfor ofte tyr til biblioteker og rammeverk, og derfor "binder seg til en mast", som han sa. Det virket heller ikke som han var spesielt stor tilhenger av biblioteker som Tailwind – CSS og HTML bør skrives i separate filer, sa han.

Det er kanskje lett å tenke at dette er bare nok en fyr som mener at "alt var bedre før". Men jeg tror han har et poeng.

Mange av foredragene på kode24-dagen handlet om nettopp hvilket rammeverk du skal velge for ditt neste prosjekt. Og strengt tatt, når du skal bygge store komplekse applikasjoner innenfor en noenlunde fornuftig tidsramme (og pris) så kommer du neppe utenom å bruke et rammeverk.

Rammeverk som abstraherer bort kompleksitet og lar deg bygge applikasjoner raskere gjennom gjenbrukbare komponenter er gull verdt. Det er ingen grunn til å skulle måtte finne opp hjulet på nytt.

Samtidig tror jeg mange altfor ofte velger den lettvinte løsningen og bare importerer enda en npm-pakke selv om de bare skal gjøre noe banalt som kunne vært fikset med noen ganske få linjer JavaScript-kode. Eller bruker et digert frontendrammeverk til å lage en todo-app, for å sette det på spissen.

Kanskje det er lurt å kode en nettside eller en app fra scratch en gang iblant, slik Wium sier.

"Kanskje det er lurt å kode en nettside eller en app fra scratch en gang iblant, slik Wium sier." 📸: Kurt Lekanger
"Kanskje det er lurt å kode en nettside eller en app fra scratch en gang iblant, slik Wium sier." 📸: Kurt Lekanger Vis mer
«Det gjør at det kanskje er enklere å skjønne hva som er galt den gangen noe ikke fungerer helt som det skal.»

Jeg føler i hvert fall at det er nyttig for meg å prøve å få en litt dypere forståelse for hvordan ting gjøres i ren HTML, CSS og JavaScript, hvordan du manipulerer DOM-en og hvordan de viktigste nettleser-API-ene fungerer. Det gjør at det kanskje er enklere å skjønne hva som er galt den gangen noe ikke fungerer helt som det skal i en React-, Svelte- eller Vue-app.

Da jeg selv begynte å programmere var det i assembler på en eldgammel prosessor på 80-tallet – altså rett etter steinalderen. Den gangen måtte du skjønne hvordan alt fungerte helt ned til prosessorens instruksjonssett og registre, og hvordan alt hang sammen med de ulike komponentene i datamaskinen. Ellers ble det ingen bra "app" (som det ikke het den gangen).

Men så: Med stadig raskere datamaskiner har man kunnet bygge lag på lag med abstraksjoner på toppen, slik at man ikke lenger trenger å vite noe særlig om hvordan datamaskinen fungerer for å kunne lage noe som er bra. Og det er fint, samtidig som jeg tror man har mistet noe på veien.

Det er nok de færreste som trenger å kode i assembler nå i 2024, men kanskje selv en frontendutvikler i 2024 kunne ha godt av å en gang i blant lage noe fra scratch for å få en enda bedre forståelse av hvordan rammeverket fungerer? Og hvorfor det noen ganger ikke fungerer?

Ukas beste saker på kode24:

🎾 Jobbsøk-system lakk vitnemål og data – oppdaga av student

Studenten Jwan Mohammad fikk ut sensitive dokumenter om andre jobbsøkere, og kunne slette dem. – Menneskelig feil, sier CVideo, som tetta hullet.

🐤 Fikk Asperger-diagnose som 51-åring: – En superkraft!

Utvikleren og gründeren Bjørn Jarle Kvande har alltid følt seg annerledes. Etter å ha lest boken til en YouTube-kjendis fikk han en a-ha-opplevelse.

🐕 Apple kasta ut Epic etter kritikk rundt app-butikker

Apples advokater skriver i et brev at de ikke stoler på Epic når spillselskapet skal bygge en alternativ app-butikk for iOS.

🤿 Tar grep for å bli kvitt AI-spam i Google-søk

Forbedrede algoritmer skal redusere mengden dårlig innhold i søkeresultatene.

🥼 Mister tilgang til alternative app-butikker hvis du reiser for langt

iOS versjon 17.4 har fått støtte for alternative app-butikker i EU, men Apple vil at du skal holde deg i EU hvis du vil ha oppdateringer.

📰 Disse teknologiene bruker Bekks utviklere: – Mildt sagt ikke fornøyd!

La frem "State of frontend" på kode24-dagen 3.0. Ikke alle er like begeistret for alle teknologiene.

🍮 Vi var enige om å aldri jobbe med hardware: – Nå gjør vi det!

Design- og teknologiselskapet Heisenbug måtte lære seg å programmere kortlesere via serieport da de skulle lage verdens raskeste hotellutsjekking.

🦝 Apple snur: Tillater PWA-er i Europa, men låses til Webkit

Tillater PWA-er, men nekter å kjøre "Home Screen"-apper med alternative nettlesermotorer.

🥽 Sånn fant Robert lekkasjen hos Gule Sider: «Ekkelt»

Gule Sider lakk fødselsdatoer til mindreårige. Og det var Robert Sæther som fikk stoppet det.

God helg

Jeg må innrømme at jeg selv bruker rammeverk til det meste, og kommer til å fortsette med det. Og jeg elsker Tailwind CSS – selv om CSS-oppfinneren nok river seg i håret og helst vil at vi alle skriver "ren CSS" i egne filer.

Men helt fra jeg plukket fra hverandre gamle radioer som liten, har jeg likt å vite hvordan ting virker og hvordan det "ser ut inni". Derfor skal jeg lytte til rådene fra Håkon Wium Lie og prøve å i hvert fall en gang i blant lage ett eller annet med bare JavaScript, CSS og HTML.

Kanskje jeg blir en litt flinkere utvikler? Det er i hvert fall lov å håpe.

God helg!
– Kurt 🤓