Kerta Consulting
Alle innlegg

AI · Field Notes

«Ikke lag det selv» handlet alltid om kostnad

Regelen enhver programmerer lærer - ikke finn opp hjulet på nytt - var økonomi, ikke håndverk. I år flyttet begge tallene seg: å lage det selv ble billig, og å låne ble farlig.

15. juli 20263 min lesing

.NET-verdenen hadde et lite jordskjelv for noen år siden. Moq - et av de mest brukte testbibliotekene i C#, greia som fakes ut avhengighetene dine så du kan enhetsteste resten - slapp en versjon som stille samlet inn utvikleres e-postadresser ved bygging og sendte dem hjem. Ikke en angriper. Vedlikeholderen selv. Jeg hadde den i prosjektene mine. Det hadde halve .NET.

Ramaskriket kom umiddelbart, og endringen ble trukket i løpet av dager, men mange av oss stolte aldri helt på pakken igjen - massevis av team rev den ut for godt. Det som satt igjen hos meg, var ikke e-postsamlingen. Det var det som lå under: jeg hadde gitt en fremmed en stående nøkkel til å kjøre kode på hver maskin som bygde prosjektet mitt, og jeg hadde ikke én eneste gang tenkt på det som et valg.

For rådet hadde alltid pekt andre veien. Enhver programmerer får det tidlig: ikke lag det selv, ikke finn opp hjulet på nytt. Hvis et bibliotek løser det, bruk biblioteket - det er testet, vedlikeholdt, noen smartere har allerede tatt grensetilfellene. Store deler av karrieren min var det rett og slett riktig. Men det rådet handlet aldri egentlig om håndverk. Det handlet om kostnad - kostnaden ved å bygge mot kostnaden ved å låne. Og i det siste har begge tallene flyttet seg, i hver sin retning.

Å låne ble farligere. Moq var en vedlikeholder med en dårlig idé; det nyere mønsteret er verre. Denne måneden fikk Jscrambler - et selskap hvis hele forretning er JavaScript-sikkerhet - npm-pakken sin forgiftet av en angriper utenfra. Det er et forsyningskjedeangrep: noen sniker skadelig kode inn i en pakke som tusenvis av prosjekter henter inn automatisk, så den kommer inn døra med dine egne betrodde verktøy. Denne kjørte i det øyeblikket du installerte den, før appen din i det hele tatt startet, på jakt etter skynøkler, kryptolommebøker og - betegnende nok - konfigfilene til AI-kodeverktøy som Claude og Cursor. Oppdaget på seks minutter. Noe som ikke hjalp dem som oppdaterte i løpet av de seks minuttene.

Å bygge selv ble på sin side billig. Jeg har kalt AI en uendelig kran av perfekte pakker - gi den problemet, og en ren, skreddersydd versjon renner ut i det øyeblikket du trenger den. Følg det ett steg lenger enn jeg gjorde sist: hvis kranen gir meg akkurat det jeg trenger, tilpasset koden min, trenger jeg ofte ikke tredjepartsavhengigheten i det hele tatt. Ingen vedlikeholder å stole på. Ikke noe tre av hundre transitive pakker jeg aldri kommer til å lese. Bare min egen.

«Ikke finn opp hjulet på nytt» handlet aldri om hjulet. Det handlet om kostnad - og kostnaden flyttet seg nettopp.

Jeg overselger ikke dette. Jeg river ikke ut React og skriver ikke min egen kryptografi - noen hjul er bærende og gjennomtestet, og du ville vært en tosk om du smidde dem på nytt. Men den lange halen av små hjelpefunksjoner, ettfunksjons-pakkene som drar med seg hundre andre du aldri leser? Den byttehandelen ser verre ut for hver måned, og mer og mer skriver jeg dem bare selv.