Bij onvoldoende samenwerking binnen open source-communities, wordt nogal eens een nieuw, soortgelijk project gestart. Hierdoor raakt beschikbare medewerking gefragmenteerd en wordt moeite verspild met productie en onderhoud.
Bij de ontwikkeling van open source-software (OSS) wordt naar mijn mening nogal wat moeite verspild. Een belangrijk uitgangspunt van OSS is 'scratch your own itch'. Dat wil zeggen dat je iets doet aan wat je mist in bestaande software. Een van de meest aansprekende voorbeelden is Linus Torvalds, die een terminal emulator mistte en uiteindelijk de Linux-kernel schreef.
Dat niet alle projecten evenveel succes hebben, zien we op sites als Sourceforge en Freshmeat. Daar zijn genoeg projecten te vinden die jaren geleden zijn ontstaan, slechts enkele releases kennen en weinig of geen volgers hebben. Daar is natuurlijk niets mis mee. Een geldig doel van OSS is lering en vermaak van de ontwikkelaar. Ik vind het storender wanneer iemand het nodig vindt om een geslaagd project te klonen en te voorzien van een minimaal, eigen sausje. Zo kan ik me niet voorstellen dat het merendeel van het enorme aantal open source content management systemen voor heel veel gebruikers zinvol is. Bij het vertalen, documenteren en packagen van deze software wordt de nodige moeite verspild.
Bij diverse distributies vindt men het dan ook nog eens nodig om zelf package management software te bouwen met een eigen formaat. Dit betekent dat iemand extra werk moet doen om bestaande software in het nieuwe formaat beschikbaar te stellen. Een extreem voorbeeld vinden we in de BSD-wereld, waar de verschillende varianten zich richten op veiligheid, performance en portabiliteit. Het is logisch dat je deze gedeeltelijk tegenstrijdige zaken niet in een enkele distributie kan realiseren. Ik snap alleen niet dat je daarbij een ander packageformaat moet invoeren. Ook hier wordt moeite verspild.
Laat iedereen met een itch daar vooral iets aan blijven doen via OSS. Kijk wel eerst rond om te zien of je bij een bestaand project je ei kwijt kan. En laten we binnen OSS-projecten zoveel mogelijk openstaan voor suggesties van anderen. Dan zal minder moeite verspild worden met OSS.
En dit is met closed source anders? Ook daar wordt veel moeite verspild, het verspillen van moeite heeft imho niet zoveel met de licentievorm te maken maar met menselijke eigenschappen. En daar hebben we allemaal mee te maken.
@Frank
Inderdaad, dat kan ik beamen. Hoeveel resources er al niet zijn weggegooid doordat iemand binnen het bedrijf een kopietje heeft getrokken van bepaalde softwarecomponenten…. omdat ‘het net iets anders moet’. Soms is het een ego-kwestie, soms is de originele software niet eenvoudig uitbreidbaar. In plaats van het origineel te wijzigen, gaan ze “forken” of zelf opnieuw beginnen.
Inefficient? Zeker. Maar niet iets dat specifiek bij OSS hoort.
Bij closed source is het grote verschil dat een ander bedrijf niet beschikt over de software en dus eerst een investering moet doen om de benodigde functionaliteit te realiseren. Bij open source is de drempel om een project te forken erg laag.
Een lage drempel om te forken betekent dus ook lage kosten en dus weinig verspilde moeite wanneer je besluit om te gaan forken. Wanneer je besluit een closed source programma na te maken en te verbeteren (daar doe je het tenslotte voor), zit je direct met enorme kosten en een enorme verspilling van moeite!
Per saldo kunnen de verschillen tussen verspilde moeite in open en closed source best nihil zijn, bovenstaande opinie toont niet aan dat het ene beter uit de bus komt dan het andere.
Het is niet mijn bedoeling geweest om open en closed source op dit aspect met elkaar te vergelijken.
Ik zie teveel eigenwijsheid en de beschikbaarheid van alle code tot teveel forks leiden en daarmee tot versnippering van de communities. En daarmee wordt OSS verzwakt. Om dat te voorkomen, roep ik op tot een open samenwerking binnen communities.
De BSD wereld een “extreem voorbeeld” noemen lijkt me gezien het aantal Linux ‘distros’ nu niet het meest voor de hand liggen..
Het is in de OSS wereld nu eenmaal zo dat er een redelijke hoeveelheid ‘strong personalities’ rondlopen die niet eenvoudig te bewegen zijn tot (formele) samenwerking. Mensen die (bijv.) wel eens met rms of deraadt contact hebben gehad zullen dat beaamen.
Daarmee zijn ‘forks’ een gegeven, en is het vanaf de zijlijn roepen dat dat anders moet in feite totaal zinloos.
De verschillen in de BSD distributies kan ik heel goed begrijpen en daar heb ik dan ook geen bezwaar tegen gemaakt. Wat ik (extreem) zinloos vind is dat de package management software voor bijna alle BSD varianten verschillend is. De specialisatie van de verschillende varianten vereist dat echt niet. En op dit vlak had onder andere Theo de Raadt minder “strong” kunnen zijn.
Ik roep dit niet vanaf de zijlijn. Voor het open source project, waarin ik zelf actief ben (verzamelen van configuratie gegevens van systemen), tref ik bij ieder distributie weer andere software aan om de netwerk interfaces te configureren. Om het gebruik van de software zoveel mogelijk te bevorderen, produceer ik het ook in zoveel mogelijk formaten. Ook ik heb dus last van (overbodige) forks.