Hva er åpen kildekode?
Åpen kildekode er programvare der kildekoden fritt kan leses, brukes og videreutvikles etter vilkårene i en lisens. Det er fundamentet nesten all moderne utvikling hviler på. Men fri betyr ikke uten vilkår: Lisensene er forskjellige, og med fordelene ved åpen gjennomgang og fellesskap følger et forvaltningsansvar som dere må ta selv.
Åpen kildekode er en av de bærende ideene i moderne programvare, og samtidig et begrep som lett blir misforstått. Mange hører «gratis» og stopper der, men bildet er mer nyansert enn som så. Her ser vi på hva åpen kildekode faktisk er, hvorfor det som regel er en styrke, og hva du bør følge med på.
Definisjonen
Åpen kildekode (open source) er programvare der kildekoden fritt kan leses, brukes og videreutvikles i samsvar med vilkårene i en lisens. I stedet for bare å få det ferdige, forseglede produktet får hvem som helst tilgang til selve tegningen, og retten til å bygge videre på den.
Det står i kontrast til lukket, proprietær programvare, der koden er en forretningshemmelighet og du bare ser sluttresultatet. Åpen kildekode er i praksis fundamentet nesten all moderne utvikling står på: operativsystemer, programmeringsspråk, databaser og utallige byggesteiner som utviklere over hele verden deler, går gjennom og forbedrer sammen. Nesten alle systemer som bygges i dag, hviler på flere lag med åpen kode.
Gratis betyr ikke uten vilkår
Den vanligste misforståelsen er at åpen kildekode rett og slett er gratis, punktum. Det stemmer at man som regel slipper lisensavgift, men det er ikke det samme som at det er fritt frem uten vilkår.
Hvert prosjekt med åpen kildekode har en lisens, og lisensene er forskjellige. Noen er svært tillatende og lar deg gjøre stort sett hva du vil. Andre stiller vilkår. Den mest kjente typen, copyleft, kan kreve at også din egen kode gjøres åpen hvis du bygger videre på koden og distribuerer resultatet. For et kommersielt system kan det få store følger. Å forstå hvilken lisens en komponent har, er derfor ingen formalitet, men et spørsmål som kan påvirke hele forretningen.
Hvorfor det som regel er en styrke
Til tross for vilkårene er åpen kildekode i de aller fleste tilfeller et klokt valg, av flere grunner.
- Gjennomgang. Når koden er åpen, kan mange uavhengige øyne lese og gå gjennom den. Feil og sårbarheter blir ofte funnet og rettet raskere enn i lukket kode, som bare leverandøren ser innsiden av.
- Fellesskap. Populære prosjekter bæres av store fellesskap som utvikler, dokumenterer og svarer på spørsmål. Kunnskapen er tilgjengelig for alle, i stedet for å være låst inne hos én enkelt leverandør.
- Ingen leverandørinnlåsing. Med åpen kode er du ikke prisgitt prislisten, veikartet eller overlevelsen til ett enkelt selskap. Går et prosjekt i stå, kan andre ta over fordi koden er fri.
Derfor er spørsmålet sjelden om man skal bruke åpen kildekode, men hvilken og hvordan.
Et konkret eksempel
La oss si at dere bygger en ny nettjeneste. I stedet for at alt skrives fra bunnen av, hviler den på åpne byggesteiner: et rammeverk for selve applikasjonen, et bibliotek for innlogging og en database. Alt er åpen kildekode, fritt å bruke, og sparer dere for måneder med arbeid.
Men med det følger et ansvar. Hver av disse komponentene oppdateres fortløpende, ofte nettopp for å tette oppdagede sikkerhetshull. Hvis ingen holder dem oppdatert, sitter dere etter en stund med utdatert kode som har kjente sårbarheter, en åpen dør for den som leter. Fordelen med åpen kildekode er altså reell, men den innebærer et vedlikeholdsansvar.
Forvaltningsansvaret blir deres
Dette er det viktigste du bør ta med deg. I motsetning til et kjøpt produkt med supportavtale finnes det ingen leverandør som automatisk har ansvaret for en åpen komponent. Ansvaret for å holde den oppdatert og sikker havner hos den som bruker den: dere eller utviklingspartneren deres.
Det er ikke et argument mot åpen kildekode; fordelene veier nesten alltid tyngst. Men det bør være et bevisst valg, med noen som holder orden på hvilke komponenter systemet hviler på, og som sørger for at de vedlikeholdes. Ønsker dere hjelp til å gå gjennom hva systemet deres bygger på, og hvordan det holdes sikkert over tid, ta kontakt, så ser vi på det sammen.
Ofte stilte spørsmål
Hva er åpen kildekode, enkelt forklart?
Det er programvare der selve kildekoden, altså tegningen, er åpen slik at hvem som helst kan lese, bruke og bygge videre på den. Det motsatte er lukket kode, der du bare får det ferdige produktet og ikke ser hvordan det fungerer på innsiden. Åpen kildekode er byggesteiner som utviklere over hele verden deler og forbedrer sammen, og som ligger til grunn for det meste som bygges i dag.
Betyr åpen kildekode at det er gratis?
Som regel kan det brukes uten lisensavgift, men gratis er ikke det samme som uten vilkår. Hvert prosjekt har en lisens som bestemmer hva du får og ikke får gjøre. Noen er svært tillatende, andre stiller vilkår, for eksempel at din egen kode også må bli åpen hvis du bygger videre. Kostnaden ligger sjelden i lisensen, men i drift og forvaltning.
Er åpen kildekode trygt å bruke?
Som regel er det en styrke. At koden er åpen, betyr at mange øyne kan gå gjennom den og finne feil, i motsetning til lukket kode som bare leverandøren ser. Populære prosjekter er ofte svært grundig gjennomgått. Men åpenheten går ikke av seg selv: Man må holde komponentene oppdatert fordi kjente sårbarheter i gammel kode ellers blir en vei inn.
Hva menes med å velge feil lisens?
Lisenser for åpen kildekode krever ulike ting. En tillatende lisens lar deg bruke koden fritt, mens en såkalt copyleft-lisens kan kreve at det du bygger videre på den, også blir åpent. Bruker et kommersielt prosjekt en slik komponent uten å forstå vilkårene, kan dere bli tvunget til å åpne deres egen kode. Derfor er lisensspørsmålet verdt å ta på alvor.
Hvem har ansvaret for åpen kildekode vi bruker i systemet vårt?
Dere selv. Det finnes ingen leverandør med supportavtale bak en åpen komponent. Ansvaret for å holde den oppdatert og sikker ligger hos den som bruker den, altså dere eller utviklingspartneren deres. Det er ikke et argument mot åpen kildekode, men det bør være et bevisst valg, med noen som holder oversikt over oppdateringer og sårbarheter over tid.