Gisteren blogde ik over een OSS developer die de vraag van een gebruiker kreeg “graag binnen 24 uur hoe uw bedrijf is ingericht op het afdekken van risico’s rondom de enorme log4j bug”. Dat is een typische grootzakelijke manier van doen, die verder met de realiteit niets te maken heeft. Kan gebeuren, je stuurt een “haha no sla okthxbye” mailtje of en klaar. In de comments werd ik getipt over ene meneer Marak die anders reageerde: hij saboteerde zijn eigen code, waar vele vele mensen en projecten door gedupeerd werden.
Marak is ontwikkelaar van een uitbreiding op het bekende node.js framework voor Javascript. Zijn module colors zorgt voor mooie stijling van de beheersomgeving. Verder weinig opmerkelijk, alleen bleek dat recent een toevoeging te hebben gekregen die zorgt voor een oneindige lus, waardoor je hele systeem niet meer werkte als je deze module automatisch liet updaten. Wat iedereen en z’n moeder doet, dus dat gaf de nodige ergernis.
Een foutje? Nee, zeker weten niet. Allereerst niet omdat het een losse nieuwe regel was, met ook nog eens “for i = 666; i < infinity” er in, en dat getal heeft natuurlijk een negatieve betekenis. En ten tweede omdat Marak eerder al boos was dat bedrijven zijn code gebruiken zonder hem financieel te steunen. Wat zijn goed recht is, daar niet van, maar dan volautomatisch je code saboteren, dat kun je niet maken.
Of was het dom van al die mensen, hadden ze maar de code moeten controleren en niet automatisch updaten? Dat vind ik te makkelijk. Natuurlijk hoor je niet zomaar willekeurige code van internet te halen en in productie te nemen, maar dit is een project dat al enige tijd bestaat, goed aangeschreven staat en daarom vertrouwd wordt. Dan wek je bepaalde verwachtingen – en dat gaat boven je opensourcelicentie waarin “als het breekt, mag je de stukjes houden” staat als beperking van aansprakelijkheid.
(Voor de juristen: dit lijkt mij zo’n geval van opzet of grove nalatigheid waarbij je beperking van aansprakelijkheid niet geldt.)
Regelmatig zie ik dan de opvatting “het is mijn code, ik doe wat ik wil en ik heb geen contract met die mensen dus ik ben niets verplicht”. Dat is dus te kort door de bocht. Door op een bepaalde manier te handelen, schep je verwachtingen. Als jij die verwachtingen regelmatig waar maakt, ontstaat een patroon waar mensen op mogen vertrouwen. Dat kun je niet eenzijdig doorbreken, zeker niet op zo’n lompe en schadebrengende manier. Dat noemen we in Nederland gewoon onrechtmatig, dat kun je niet maken.
Arnoud