3301601 1998-09-09 19:36 /227 rader/ Mikael Adolfsson Kommentar till text 3300446 av Bellman -- The Recursive Hacker Mottagare: GNU (och andra snälla djur) erfarenhetsutbyte <3911> Mottagare: (De) bästa inläggen i LysKOM! <710> Sänt: 1998-09-09 19:41 Sänt av Henrik Grubbström (Lysator) Markerad av 13 personer. Ärende: Programvarulicenser -- GNU GPL och andra ------------------------------------------------------------ GNU GPL är svårt. Det tog mig flera år innan jag kände att jag förstod hur det var tänkt att den skulle fungera. Det har tagit ytterligare några år att inse att man kan tjäna pengar på arbete med GPL:ad kod. Riktigt hur man gör det är jag fortfarande lite osäker på. Jag antar att det är svårt att förstå GPL eftersom man alltid utgår från Microsofts licensavtal (och liknande) när man försöker förstå hur en programvarulicens är uppbyggd och vad den tjänar för syften. Pengar får världen att gå runt. Allt vi gör utgår från hur mycket pengar vi kan tjäna på det. Vid första påseende verkar GNU GPL göra det mycket besvärligt att tjäna pengar på programmering. En anledning till detta är att GNU GPL inte i första hand konstruerats för att försvåra eller underlätta möjligheten att tjäna pengar på programmering. Konceptet GNU GPL handlar om något helt annat. Själva idén har vuxit fram ur det sätt på vilket programkod hanterades av de ursprungliga hackarna vid MIT:s AI-lab på 60- och 70-talen. RMS såg i början av 80-talet hur den atmosfär av öppenhet och gemenskap som existerade i AI-labbet höll på att raseras av copyright och licensavtal vars enda syfte var att tjäna så mycket pengar som möjligt på programvara, utan tanke på användarna. Fram tills dess hade användarna av programmen i AI-labbet varit samma personer som också utvecklade dessa program. Det var den naturligaste sak i världen, för dem, att lägga all programvara i lådan brevid konsollen så att alla som kom till datorn för att använda den hade full tillgång till både källkod och objektkod. Det var lika naturligt för dem att omedelbart fixa varje liten bug de hittade och lägga tillbaks den fixade versionen i lådan, så att nästa person skulle ha ett bättre program att använda. Den andan hade ingenting med att tjäna pengar på program att göra. Det var ingen som ens funderat i såna banor. RMS ville med sitt GNU-projekt återskapa andan av gemenskap mellan programmerare genom att dela med sig av sina program till alla som vill och kan använda (eller på annat sätt njuta av) dem. GNU-projektet handlar fortfarande inte om att bli rik på programmering. Det handlar fortfarande bara om att bygga upp en gemensam kodbas, en plattform från vilken alla kan utveckla fria program i en nästan utopisk värld där alla fritt kan kopiera, mångfaldiga, läsa, njuta av, skratta åt, kompilera, modifiera, buggfixa och köra program utan fåniga restriktioner i form av licensavtal som syftar till att kontrollera människors liv och begränsa deras handlingsfrihet. Trots detta har det visat sig fullt möjligt att ändå tjäna pengar på programmering av GPL-kod. Man blir inte lika rik som Bill Gates på det, men man förtjänar sitt levebröd i alla fall. >GPL är obra eftersom det smittar ner annan kom det är länkat med >också. I AI-labbet litade alla på varandra. Det fungerade eftersom ingen var så elak att han med flit gömde sina förbättringar av programmen, eller på annat sätt försvårade för sina medhackers. I den lite större krets av användare man får om man räknar in hela världen finns det tyvärr personer man inte kan lita på. För att behålla GNU-programmen i den utopiska fria världen måste man tyvärr införa vissa begränsningar i friheten. En begränsning är att inte tillåta någon att modifiera ett GNU-program och sedan frånta användaren av det modifierade programmet alla de friheter användaren hade med originalversionen. Detta kan tyckas vara en elak begränsning, men den ligger helt i linje med att återskapa en av grundpelarna i "The Hacker Ethic", nämligen att man måste dela med sig av sina förbättringar av program. Jag kan förstå den frustration som många "kommersiella" programmerare känner inför denna begränsning. De tänker inte på samma sätt. De har inte som mål att ge bort sina program. De vill "bara" tjäna pengar på "hederligt" arbete. De ser att här finns ett program som är fritt att läsa, kopiera och modifiera. Alltså borde man kunna ta den bit av koden som är fri och bygga vidare på den. Det i sig påverkar ju inte originalet. Vad kommersiella programmerare inte ser, är att originalprogrammet inte är en fri naturresurs bara för att programmet är fullt läsbar i källkodsformat för alla som ids tanka hem och kolla på det. De vill ta programmet ur sitt sammanhang som om det vore bara en bit kod, vilken som helst. Nu är det emellertid så att GNU-program är en del av ett större sammanhang. De är en del av en vision om en bättre värld. De är inte bara kod som löser ett praktiskt problem för stunden. Målet med den GNU-producerade koden är att den ska lägga grunden till ett större samförstånd mellan programmerare i alla åldrar. Till detta krävs en betydligt större respekt för själva koden än att bara betrakta den som en algoritm som löser en specifik uppgift. >Inte "smittar ner", utan snarare "befriar" Här är det alltså frågan om två olika filosofier. Frågan är om de någonsin kommer att kunna enas. Lyckligtvis behöver de inte enas. Copyrightlagarna kan användas både för att skydda Microsofts kod och för att skydda GNU-projektets kod. Det är inte särskilt många som gillar Microsofts egoistiska licenser som förbjuder användarna att göra allting utom att köra programmen, men det är GNU GPL man gnäller på för att den har ett par små irriterande men nödvändiga begränsningar. De som inte gillar GNU GPL kan gnälla sig less. De lär inte rå på FSF lika lite som de rår på Microsoft. Den som inte är nöjd kan starta sitt eget projekt. Det är fritt fram. Precis som det är fritt fram att skriva sitt eget KOM-system om man inte är nöjd med det som skrivits hos Lysator... ;-> Någorlunda fritt fram i alla fall. Patent på programvara hindrar i viss mån fria program mer än hemliga. Jag föreställer mig att kommersiella programmerare ser GNU GPL som en glaskupa över en bit ost (eller annan läckerbit) där osten är ett program med GPL-licens. De ser att där finns en god ost och de vill ta den, eller kanske bara hyvla av några skivor av den, men de kan inte för det sitter en glaskupa över den. Fria programmerare som klickar "Yes" i dialogrutan med GNU GPL- licensen och accepterar de hårda men rättvisa villkoren i avtalet kan få lyfta av glaskupan och smaka på osten. Ett program i Public Domain är samma ost fast utan glaskupa. I det fallet kan vem som helst ta osten och göra vad som helst med den. Det är äkta frihet, men det ger också maximalt utrymme för att inte dela med sig och därmed gå emot andemeningen med Public Domain. Kommersiella program är samma ost under en kupa av skottsäkert glas övermålad med mattsvart ogenomskinlig plastfärg och försedd med stora hänglås runt kanten. Skillnaden är att då kan man inte längre se osten och dessutom vet man att man inte har en chans att röra vid den, så då känner man sig inte längre frustrerad över att man inte kommer åt den. Det vill säga; så vida man inte är en hacker av den klassiska skolan, typ RMS. Den klassiske hackern vill läsa, modifiera, pilla på, leka med och hacka om alla program han lägger vantarna på. Då duger det inte att bara få tillåtelse att på nåder köra programmet i en fientlig miljö. Då revolterar man -- piratkopierar, disassemblerar och hackar om programmen ändå -- eller skapar en egen värld av fria program. >"Fighting for peace is like whoring for virginity." Jag kan förstå det här synsättet. Ett bra svar gavs redan i inlägg 3300305, men jag kan förstås inte låta bli att ge en egen kommentar också. :-) Jämförelsen haltar lite. Både i citatet och när det appliceras på GNU GPL. Att slåss för fred och frihet är naturligtvis att använda just de metoder man kämpar mot. Problemet är att det inte finns något annat sätt att uppnå sina mål. Att gå på gatan för oskuldens skull är något helt annat. Det är bara absurt, men det låter förstås kul. Om man vill uppnå, eller snarare bibehålla, sin oskuld är det återigen en kamp man för. Man kanske brottas med sina egna lustar eller mot andras, men man måste i vilket fall som helst slåss för det man tror på. Just i fallet fred och frihet blir det absurt att man tvingas ta till vapen för att bekämpa vapenmakt. Det blir absurt i fallet fria program också. Det är absurt att ha copyright på fria program. Jag håller med om det. Problemet är att det inte finns något annat sätt att få fria program att fortsätta vara fria. Om GNU GPL tillät förändringar av GNU-program att vara ofria skulle situationen snabbt degenerera till ett läge där den fria delen av programmet är så obetydligt liten att programmet inte längre kan sägas vara fritt. Det är i alla fall vad man är rädd för. Oavsett om man tror på det eller inte så skadar det åtminstone inte GNU-projektet att man utformat GNU GPL på det här sättet. Det snarare underlättar eftersom det "tvingar" de som vidareutvecklar GPL:ad kod att släppa sina förbättringar fria och det är ju hela målet med GNU. "Tvingar" inom citationstecken, eftersom ingen är tvingad att använda GPL:ad kod överhuvudtaget. Om du tycker att du kommit på ett bättre sätt att licensiera program är du fri att skriva egen kod och ge ut den med din egen licens. Det är ju exakt vad GNU-folket också varit tvungna att göra, men så har det också tagit mer än tio år att få till ett GNU-system som går att köra på. >Varför ska man inte tillåta Bozzes AB att tjäna pengar på sitt arbete? Detta är nästan exakt vad Bill Gates sa när några hackers kopierade hans BASIC för Altair. Jag antar att man inte kan förstå hur hackers resonerar om man har den där inställningen. Det är återigen inte frågan om att tjäna pengar. GNU GPL handlar inte om det. GNU GPL är ett licensavtal som i ett visst avseende är lika ofattbart fientligt mot kommersiella programmerare som Microsofts licensavtal är mot fria programmerare. Det är hårt mot hårt och ändå inte diametralt motsatta åsikter. Det är snarare ortogonala mål i livet -- tjäna pengar vs. tjäna mänskligheten -- vilket gör att personer med dessa olika livsåskådningar har oerhört svårt att förstå varandra. Efter att ha skrivit så här mycket känns det fånigt att återigen förtydliga vad jag menar, men så här resonerar jag i alla fall: GNU GPL-licensen tillåter dig att göra nästan vad som helst med källkoden, med ett viktigt undantag: Du får inte göra ofria kopior/modifieringar. GPL:ad kod är alltså inte Fri(tm). Microsofts licenser förbjuder dig att göra nästan allting med objektkoden, med ett viktigt undantag: Du får köra den på din egen burk (och ingen annanstans). Ingen av dessa licenser gör program helt fria, men jag vet vilken licens jag föredrar. (3301601) ------------------------------------------