Vad är open source?

Den här sidan sammanfattar anteckningarna inför en diskussionsöppning under rubriken "Vad är open source" vid det första mötet med Dataföreningens nätverk för open source 9 januari 2003. Den innehåller även en del exempel och länkar, vilka utgör uppräkningar som inte är lämpliga i en muntlig presentation.

Språkbruk

I rubriken har jag använt det engelska (amerikanska) uttrycket open source, eftersom det är det som används i nätverkets namn. På svenska har vi egentligen ett alldeles utmärkt översättningslån, öppen källkod. I resten av denna text kommer jag att använda de svenska orden. Vi använder också förkortningen OSS, vilket står för "open source software". Förkortningen OS är nämligen redan upptagen som beteckning för operativsystem och det är tämligen lätt att konstruera meningar där det inte omedelbart framgår av sammanhanget vilketdera som menas.

Varför skriver jag då öppen källkod och inte fri programvara (free software)? Det är inte ett ställningstagande i fråga om den rivalitet som finns mellan de grupper som lanserat respektive benämning, utan ett utslag av pragmatism. När man talar om fri programvara tvingas man alltid börja med att förklara att man faktiskt menar fri, i ordets sedan länge etablerade svenska betydelse, inte gratis. När jag nämner en fri människa menar jag alltså definitivt inte en slav som någon har fått till skänks. Fri programvara kan mycket väl vara program jag har betalat för och program jag har fått gratis behöver inte vara fri programvara. För att minska antalet missförstånd på den punkten skall jag hålla mig till termen öppen källkod.

Definitioner

Det centrala ifråga om öppen källkod är att den som får använda programmet också har rätt att läsa och ändra koden. Ytterst är det vad det handlar om. Till detta brukar man även foga rätten att sprida sina rättelser och ändringar.

Ett annat sätt att formulera saken är att användaren får tillgång till källkoden för programmet, så att användaren själv kan rätta fel och göra förbättringar i programmet, eller anlita någon programmerare som kan göra det.

Det finns ett antal sätt att formulera och precisera denna princip. De mest spridda är de som finns hos Open Source Initiative på http://www.opensource.org/docs/definition.php respektive hos Free Software Foundation på http://www.gnu.org/philosophy/free-sw.html.

Lite filosofi

Principerna bakom öppen källkod kan formuleras såväl i idealistiska som i högst pragmatiska termer.

Den idealistiska sidan av saken handlar i första hand om informationsutbyte. Här jämför man gärna med forskningsresultat, som av hävd publicerats för att var och en skall kunna ha nytta av dem, men också för att de skall kunna kontrolleras av andra forskare inom området. På så sätt har vi under århundraden byggt upp vår kunskap om världen - kunskap som åtminstone i teorin skall vara tillgänglig för mänskligheten som helhet. När vi återkommer från detta storstilade perspektiv till att betrakta fenomenet öppen källkod, kan vi t ex konstatera att internet inte hade varit möjligt utan öppna program för DNS-uppslagningar. Troligen hade vår integrerade värld heller inte sett ut som den gör idag utan Sendmail, hjärtat i många mailservrar.

Den strikt pragmatiska sidan av samma mynt är att öppen källkod ofta leder till att program utvecklas snabbare och blir bättre. Det finns skäl till Apache är världens vanligaste webserver, att gcc är den mest använda C-kompilatorn i Unix-miljöer och att språk som själva är öppen källkod, såsom Perl, Python och PHP, snabbt har blivit populära. När fler programmerare får tillfälle att felsöka och rätta kod blir resultatet helt enkelt bättre kod. Denna ständigt pågående granskning påverkar dock inte bara själva kodens kvalitet, utan också den övergripande designens. Dålig programdesign upptäcks snabbt och kommer antingen att ändras eller resultera i att programmet i praktiken slås ut av ett annat med bättre grundkonstruktion.

Historia i ett halvt andetag

Det här är inte rätt tillfälle att berätta om den utveckling som lett fram till dagens uppsjö av program med öppen källkod. Jag nöjer mig därför med att påpeka att det inte är något nytt fenomen och att det även finns en förhistoria i form av öppna arkitekturer, öppna system och öppna standarder.

GNU-projektet har varit igång sedan 1984. Open Source Initiative tillkom 1998. Eric Raymonds berömda essä "The Cathedral and the Bazaar" skrevs 1997. I termer av datorutveckling har det redan gått ganska lång tid sedan dess. Dock existerade naturligtvis öppen källkod tidigare än så.

Det finns en uppsjö licenser för öppen källkod. Jag går inte in på dem här, utan nöjer mig med att nämna att det är så. Att verkligen tala om licensfrågor skulle ledigt kunna fylla en hel kväll.

Hur och varför öppen källkod?

Frågan varför man väljer öppen källkod för ett projekt har förhoppningsvis åtminstone delvis besvarats ovan. Frågan varför man väljer att använda sig av en produkt med öppen källkod besvaras enklast med att man väljer enligt sina vanliga kriterier för den sorts system man för tillfället är ute efter. Sedan skulle jag hävda att om man väljer mellan två program som båda uppfyller kraven avseende funktionalitet, prestanda med mera, är det att betrakta som en fördel om det ena av dem har öppen källkod.

Ur praktisk synpunkt är det ganska få användare som går in och gör egna ändringar i spridda och väletablerade program som Apache, MySQL eller Linux-kärnan. Ändå är det en poäng att de kan göra det. Var och en kan hitta ett fel eller en funktion som hon vill förändra, göra sin ändring och använda sig av resultatet. Den som vill kan även sprida sin ändring vidare till andra - och skall då givetvis tala om att det handlar om en ändrad version.

Diskussionsöppning

Här kommer vi fram till diskussionsämnet: Vilka är fördelarna respektive nackdelarna med att använda sig av öppen källkod? Jag har redan medgivit att jag anser att fördelarna överväger, men det betyder naturligtvis inte att det inte också finns nackdelar. Som bete kastar jag ut ett argument mot och ett för:

En nackdel är att sambandet ett system - en leverantör försvinner. Man får finna sig att hämta eller köpa programmet på ett ställe och köpa support, underhåll och vid behov installationshjälp någon annanstans, eller rent av på tre andra ställen. Det kan göra det svårare för det inköpande företaget att uppskatta den faktiska kostnaden för systemet.

En fördel är att köparen inte är bunden till en leverantör. Om den som sålt programmet inte klarar av att underhålla det kan det inköpande företaget välja att köpa underhåll av någon annan, alternativt anställa programmerare som sköter det internt. Användaren får därmed fullständig kontroll över sitt system, det vill säga en mycket hög grad av trygghet. Program med öppen källkod blir därmed alternativet med högt nallevärde.


Monika Orski
M Orski Konsult

monika@orski.se

Intressanta länkar

Open Source Initiative, http://www.opensource.org/
GNU-projektet, http://www.gnu.org/
Open Source Development Network (OSDN), http://www.osdn.com/
The Cathedral and the Bazaarav Eric Raymond, http://www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

lite öppen källkod:
Linux-relaterade startpunkten linux.com, http://www.linux.com och naturligtvis många olika distributioner, t ex SuSE, http://www.suse.com/, Redhat, http://www.redhat.com/ och Debian http://www.debian.com/
Apache, http://www.apache.com/
MySQL, http://www.mysql.com/
Samlingspunkter för en stor mängd utvecklingsprojekt: Freshmeat, http://www.freshmeat.net/ och SourceForge, http://www.sourceforge.net/

aktuellt på svenska:
Gnuheter, http://www.gnuheter.org/
Läs på susning.nu om öppen källkod, http://www.susning.nu/Öppen_källkod och fri programvara, http://www.susning.nu/Fri_programvara
Mikael Pawlo berättar om ett möte med Svenska föreningen för upphovsrätt under rubriken Linux finns inte, http://articles.pawlo.com/idgse28.html
Hemsida för nätverket inom DFS, http://www.dfs.se/kretsar/sthlm/natverken/opensource/