Hopp til hovedinnhold

Server conflicts

Et enkelt bilde av et kodeeksempel. Det er det man burde ha tatt det for. Men i stedet ble det tatt i aller høyeste grad på ramme alvor, og dermed var sirkuset i gang. Sånn føler jeg vi kan oppsummere skjermbildet der man demonstrerer mulighetene server components i Next har i seg. Nå kan du nemlig skrive SQL rett i en React-komponent, og så eksekveres den. Kult, hva?

Tja. Frontendfolka synes ikke det er så himla kult. For de kan da vel ikke mene ramme alvor, SQL-spørringer rett i React-komponentene? Tenker de ikke på injections? Dette er da fullstendig utrygt!

Neida, sier evangelistene og de som faktisk forstår hva som skjer her: det er slett ikke utrygt i det hele tatt, for spørringen kjøres på en sånn måte at du ikke kan kjøre noen som helst form for injection og dermed er alt OK. Les tråden, sett deg inn i teknologien, slutt å sutre over ting du ikke skjønner. Det er ikke gamle dager lenger og ting brekker ikke i vinkel.

Tullsnakk, sier forståsegpåerene. Det handler slett ikke om hvorvidt SQL-en er teknologisk trygg å kjøre i denne konteksten eller ikke. Det er faktisk helt fullstendig irrelevant, for det vesentlige er at en drøss med utviklere kommer til å tro at dette er sånn koden bør kjøres, uansett kontekst, og dermed kommer dette til å komme ut i det virkelige liv på ett eller annet tidspunkt. Unge utviklere som ikke skjønner hvorfor dette er en dårlig idé kommer til å florere. Vi er doomed.

Jo, forsåvidt, men det vesentlige er ikke egentlig at det kommer til å skje, sier de som har holdt på i bransjen en stund. Det vesentlige er at man ikke tenker på separation of concerns. Det handler om at det er en uting å ikke dele opp applikasjonen på en sånn måte at hver komponent, hver del, håndterer hver sin enkelte ting. SQL-spørringer har ikke noe i en React-komponent å gjøre, serverside eller ei. Er det ikke dette vi har APIer og endepunkter og sånt til, da?

APIer og endepunkter! De fnyser høyt, modernistene, for hvorfor skal du egentlig bruke APIer og endepunkter nå som vi har dette? Teknologien har kommet så langt at vi ikke trenger det! Bare fordi gamle utviklere ikke klarer å skjønne hvordan ny teknologi fungerer? Det er de som må innrette seg her, ikke oss!

En stakkars SQL-spørring i en React-komponent var altså det som fikk det til å koke over denne gangen, og det fascinerer meg. Det godter meg. Det får meg til å råflire, sagt rett ut, for det er utrolig å se hvordan alle fyrer seg opp over en slide som strengt talt burde tas som et proof of concept. Men vi klarer liksom ikke ta det som et proof of concept heller, for bare tanken på denne obskøne intermiksen av teknologier og konsepter og muligheter får de aller fleste som har drevet med web en stund til å krølle seg sammen av skam.

Det viktigste vi lærte av dette, spør du meg, var ikke at vi nå kan kjøre SQL-spørringer i React-komponenter. Det er at utviklere jevnt over er idioter som ikke tåler å ikke være den som får rett ute på webben. De steile frontene er helt vanvittige noen ganger.

I praksis ender vi opp som vi alltid har gjort.

For de fleste vet innerst inne at til syvende og sist så kommer noen til å omfavne dette, mens andre ikke vil ta i det med ildtang. Noen kommer til å ta i bruk server components, kanskje ikke helt på denne måten, men snarere på en annen måte som funker for dem. Og gud hjelpe meg, så mange som ikke kommer til å bruke Next i det hele tatt.

Det kommer til å komme flere iterasjoner, andre vil bli inspirert av mulighetene, andre vil se potensialet for å tweake og reworke litt her og der på det Next har fått til for å få det som de vil. Snart kommer det til et helt annet rammeverk, nær deg, i litt ny forpakning men med langt større bravado som seg hør og bør.

Vi lærer av hverandre og kopierer hverandre og plagierer hverandre til verdens ende, bare for å pushe ut HTML, CSS og JavaScript bittelitt raskere og mer effektivt enn før.

Selskapene messer om developer experience og hvordan akkurat deres måte å gjøre ting på er bedre enn de andre måtene å gjøre ting på, enten fordi det er bra for de som utvikler, bra for brukerne eller bra for miljøet.

Og om en liten stund er vi tilbake igjen, i tottene på hverandre over noe som overhodet ikke bure være noe å krangle om i det hele tatt.

For sånn er liksom webutvikling nå. Det er så jævla mange veier til mål nå at det eneste vi til syvende og sist har til felles er at vi er fullstendig uenige om hvilken vei som er rett.