Door Luke van Drie

Teamlead Mediateam

Polderpioniers: het concurrent versions system

03-06-2012 • 08:00

47 Linkedin

Dick Grune was de bedenker van het concurrent versions system - ook wel bekend als cvs - waarmee ontwikkelaars tegelijkertijd aan softwareprojecten kunnen werken. Voor de derde aflevering van Polderpioniers gaat Tweakers.net bij hem op bezoek. In de volgende aflevering: Kees Schouhamer Immink, de bedenker van de codering van de cd, dvd en blu-ray.

Reacties (47)

47
47
31
0
0
10
Wijzig sortering
Ik was eigenlijk wel benieuwd naar een reactie van meneer Grune op de uitgesproken mening van Torvalds op CVS. Maargoed ik begrijp dat je dan bezig blijft als je moet reageren op al die rants :P
For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is, but I did end up using CVS for 7 years at a commercial company Transmeta[10] and I hate it with a passion. When I say I hate CVS with a passion, I have to also say that if there are any SVN (Subversion) users in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started. The slogan of Subversion for a while was "CVS done right", or something like that, and if you start with that kind of slogan, there's nowhere you can go. There is no way to do CVS right.

[Reactie gewijzigd door dualnibble op 3 juni 2012 09:10]

Ja daar ben ik ook benieuwd naar. Echter Torvalds is geen god. Hij heeft vaak sterke meningen zonder goede argumentatie. Zo kraakt Torvalds b.v. ook c++ af ten faveure van c. Weliswaar is de taal c++ verre van perfect, maar het is een grote verbetering t.o.v. van c, waar je alles met de hand moet dan en waar buffer overruns en memory leaks aan de orde van de dag zijn. Degene die nu nog c kiest om een applicatie te bouwen is echt niet slim bezig.
Ik denk dat jij je even moet inlezen in de figuur Torvalds, C en C++, etc.

Je kan zowel in C als C++ even goed buffer overruns, memory leaks en wat dan nog schrijven. Als jij in he destructor resources niet vrijgeeft: boem. Als je zonder controleren data inleest: boem.

Bovendien zijn er redenen waarom Torvalds geen C++ in de kernel wil. Het is helemaal geen argumentatie-loze keuze.
Ik weet niet wat voor c++ jij gebruikt, maar c++ bied je nu juist de mogelijkheden om dit soort dingen te voorkomen. Precies zoals jezelf al zegt in de destructor dealloceer je de geclaimde resources. De basic_string is een superieure oplossing t.o.v. char arrays. Het voorkomt buffer overruns en resource leaks. Daarnaast is het performance wise vaak ook nog sneller. De lengte wordt b.v. bijgehouden ipv met strlen iedere keer berekend. Ook gebruiken de meeste string library implementaties small buffer optimalisaties wat cache vriendelijker werkt.

Wellicht dat jij een goed argument kan vinden in zijn verhaal 'C++ is a horrible language', de rest van de c++ community kon dat niet. Het blijft bij persoonlijke aanvallen en non argumentatie.

Edit: link

[Reactie gewijzigd door gast128 op 3 juni 2012 12:00]

Verschrikkelijk offtopic deze discussie, maar voor c++ is geen standaard. Er zijn wel 10 tallen implementaties die onderling niet uit te wisselen zijn , dus wat kan je er nu eigenlijk over zeggen.
http://en.wikipedia.org/wiki/C%2B%2B#Standardization

Er zijn belangerijke lessen geleerd uit CVS, En er zijn wellicht betere 'implementaties' maar het concept dat je software gebruikt om samen code te schrijven is toch wel met CVS naar een breed publiek gebracht.

[Reactie gewijzigd door Mr_Light op 3 juni 2012 18:31]

C++ is we degelijk gestandariseerd, maar vrijwel geen enkele compiler ondersteunt de standaard volledig.

Ja het is een beetje off topic geraakt. Torvalds heeft bij het schrijven van Git CVS als anti voorbeeld genomen ('Take CVS as an example of what not to do; if in doubt, make the exact opposite decision.'). Vandaar dat we geinteresseerd zijn wat Grune daarop te zeggen had. Zoals ik al eerder aangaf staat Torvalds bekend om zijn expliciete mening waar niet altijd een sterk argument achter zit. De discussie over c++ is daar een voorbeeld van.

Edit: kleine bewoording

[Reactie gewijzigd door gast128 op 3 juni 2012 18:42]

Dat ligt er maar aan wat je wilt maken. Ik kan me voorstellen dat voor een kernel of b.v. game engine the overhead van c++ de performance teveel benadeeld. En dan is C een uitstekende keuze.
Programmeertalen zijn niet alleen maar objectief te vergelijken als goed en slecht. Het hangt maar net van je probleem af. Het is ook voor een groot deel persoonlijke voorkeur qua stijl en manier van denken.
Ach Torvalds is in veel op zichten een lompe boer. Er zijn inmiddels vele verschillende oplossingen mogelijk om tegelijk aan verschillende versies van software te werken en o Torvalds het nu wel of niet leuk vind het is soms simpel weg de enige manier om het goed te doen zonder dat je een dictator achtig figuur als Torvalds nodig hebt.

CVS heeft zeker beperkingen en die worden steeds duidelijker naarmate de groep mensen die aan een project werken groeit. Maar zo als je in dit filmpje ook ziet is het niet iets dat echt bedoeld was om met een enorme groep mensen aan een project te werken meer om met een klein aantal mensen de overhead van het met de hand bijhouden van versies te automatiseren.
Persoonlijk denk ik dat hoe je het ook wendt of keert je simpel weg niet zonder een version management oplossing kan, zeker niet als je met een team van meer dan 10 of 20 mensen aan een project werkt kun je eigenlijk niet meer zonder, tenzij je echt al het werk in aparte modules kan splitsen en dat 100% van de tijd kan doen (maar zeer zelden het geval)

CVS is mijn's inziens wat lastig om mee te werken in een grotere groep je voelt gewoon dat het wat ouder is en nooit echt bedoeld is voor de grotere groepen. Subversion zo als Torvalds al aanhaalt is niet heel veel beter, ja het is een verbetering ten opzichte van CVS maar het is ook niet echt meer dan dat en daarom simpel weg niet heel veel beter.
Met een aantal toevoegingen zo als tools waar mee je makkelijk (binnen een grafische interface) kunt zien wie wat uitgechecked heeft, welke versies met welke andere zijn gemerged of waar een fork heeft plaats gevonden etc, maken de wereld een heleboel fijner voor een build manager. Er zijn natuurlijk oplossingen die met CVS en of SVN werken en dit soort dingen bieden maar helaas zijn deze vaak nog wat klungelig en onhandig wat UI betreft. De alles in een oplossingen van bij voorbeeld IBM zijn daar in tegen erg duur zien er goed uit (en werken prettig) maar juist de prijs maakt dat ze vaak niet gebruikt worden.

Persoonlijk heb ik in de tijd dat ik in build management heb gewerkt altijd erg veel baad gehad bij een grafisch overzicht van een project waar je simpel weg veel meer informatie kunt zien in een oog opslag dan je met een tekst gebaseerde oplossing kunt. En zeker in een groter team is het iedere ochtend even alles door nemen en developers die een fork hebben gemaakt of hun werk niet hebben in gecheckt even te vragen of ze hier van op de hoogte zijn etc. Een grote groep developers +20 betekend dat er altijd wel zo iets gebeurt, 99% van de tijd is er niets aan de hand en meld de developer zich zelf al op het moment dat je aan komt lopen maar zo af en toe kan het een vervelende situatie voorkomen.

CVS zou ik alleen gebruiken bij kleine projecten tot een man of 5 a 10, maar ook dan zou ik liever met SVN werken. Boven deze aantallen en met een echte build manager zijn tools die sneller makkelijker (en dus grafisch) een overzicht van een project kunnen bieden een heleboel handiger. Daar naast kun je in dat soort projecten ook vaak de kosten verantwoorden voor een meer geavanceerde manier van version control.
Wat misschien ook mee speelt in Torvalds aversie is dat Grune in de vakgroep van Tanenbaum zat. En Tanenbaum was de bedenker van Minix. Moet je maar eens voor de grap googlen op Minix tanenbaum en Torvalds dan kom je ook in een regelrecht modder gevecht terecht. Maar goed nu gaan we helemaal off topic.

Grune was een goede docent en ik ben blij en trots dat ik van hem vakken heb mogen volgen.
Ach, Torvalds moet niet zo zeuren want dhr Grune heeft exact hetzelfde met CVS gedaan als wat Torvalds met Git deed: iets in elkaar zetten dat doet wat ze wilden dat het deed. Ze hebben beiden iets gemaakt omdat ze een probleem hadden wat ze wilden oplossen. In beide gevallen zijn de systemen uitgegroeid tot iets wat door heel veel mensen gebruikt wordt. Bij CVS is dat kennelijk nooit verder ontwikkeld, bij Git lijkt dat wel zo te zijn. Daarbij moet wel gezegd dat er destijds weinig oog was voor version control en dat is tegenwoordig wel anders. Gevolg is dat er toen eigenlijk niks was en je nu een flinke concurrentie hebt.
Razend interessant! Deze man heeft helemaal nooit de ambitie gehad om dit heel belangrijk te maken, maar is gewoon een vakidioot die iets maakt dat ie nodig heeft.

Die opmerking van Torvald in de eerste reactie zou ik gewoon negeren. Er is op elk systeem wel wat aan te merken en er is voor ALLES wel iemand te vinden die er iets negatiefs over te zeggen heeft. Sommige mensen gaan nogal makkelijk overboord in hun kritiek en doen net alsof het het meest vreselijke is dat er bestaat. Ik negeer dat soort opmerkingen. Niet omdat ik graag zou willen dat deze Nederlander een held is, maar omdat ik gewoon niets kan met dat soort opmerkingen. Meestal zeggen ze meer over de persoon die die opmerkingen maakt.
Razend interessant! Deze man heeft helemaal nooit de ambitie gehad om dit heel belangrijk te maken, maar is gewoon een vakidioot die iets maakt dat ie nodig heeft.
Sta ik ook wel van te kijken. Eigenlijk heeft de man dus ook 'per ongeluk' de aanzet gegeven voor alle Version Control varianten die er nu zijn.
Die opmerking van Torvald in de eerste reactie zou ik gewoon negeren. Er is op elk systeem wel wat aan te merken en er is voor ALLES wel iemand te vinden die er iets negatiefs over te zeggen heeft. Sommige mensen gaan nogal makkelijk overboord in hun kritiek en doen net alsof het het meest vreselijke is dat er bestaat. Ik negeer dat soort opmerkingen. Niet omdat ik graag zou willen dat deze Nederlander een held is, maar omdat ik gewoon niets kan met dat soort opmerkingen. Meestal zeggen ze meer over de persoon die die opmerkingen maakt.
Helemaal mee eens. En als CVS er niet geweest was was er dus een grote kans dat Thorvalds niet de richting van Git had gekozen die nu dus gekozen is.

Daarnaast, CVS is van 1990 (volgens Wiki), Git van 2005. Wel 15 hele jaren later, wat in software ontwikkeling eeuwen zijn...
Mooi interview. Je hoeft amper vragen te stellen en de beste man praat lekker door.

Kijk uit naar de volgende!
Ja, inderdaad. Vindt ik ook, makkelijk interview zo. Wel een goed en leuk interview.

Mooi dat hij dat zegt dat hij geen ambitie had om het uit te vinden maar dat hij het simpelweg nodig had. Zo gaat dat vaker. Je hebt zelf iets nodig, je gooit het erna online en er zijn meerdere mensen die er plezier van hebben.
Handig systeem.
Erg leuke serie idd! Goed bezig Tweakers, kijk al uit naar de volgende!
De volgende aflevering, of de volgende serie? Of allebei? :)

Inderdaad, heel leuke afwisseling van de gewone nieuwsitems, ga zo door!
offtopic:
Grappig hoe hierboven een paar slimmer denken te zijn dan Torvalds. Ja ik ben het met je eens; hij is geen god, maar trek je hoofd uit je aars want die jongen zegt echt niet zomaar wat.

als je echt zo slim was, commente je niet op tweakers


Gaaf! Ik wist niet dat CVS door een Hollander was gemaakt.
Werk al een poos op GIT en dan is CVS echt geen optie meer. Raar hoe je van jaren met werken met het ene systeem (cvs) zo kan omschakelen naar een nieuwe. En dan ook gelijk bedenkt "Hoe heb ik ooit zo kunnen werken".
offtopic:
Grappig hoe hierboven een paar slimmer denken te zijn dan Torvalds. Ja ik ben het met je eens; hij is geen god, maar trek je hoofd uit je aars want die jongen zegt echt niet zomaar wat.

als je echt zo slim was, commente je niet op tweakers
Offtopic antwoord: ik denk dat je de posts nog eens goed moet lezen, er wordt door niemand beweerd dat hij slimmer is dan Torvalds. Maar de man heeft niet automatisch gelijk omdat hij Torvalds heet.

Overigens denk ook ik dat het wel meevalt met slimheid van Torvalds. Hij is zeker een kundig kernel programmeur. De man Grune heeft b.v. gewerkt aan een machine en taal overdraagbare compiler kit, dat lijkt me ook niet echt triviaal.
Ik geloof niet zo in het blind volgen van iemand, simpelweg omdat hij/zij wat gepresteerd heeft in het leven. Het dwingt respect af, maar respect is geen excuus om niet kritisch te zijn en maar blind te volgen.

Dat is is pas de dooddoener van innovatie.

Van macht en status ben ik niet onder de indruk in ieder geval. Van een man als Dick Grune in ieder geval wel; hij ontleend geen status aan hetgeen wat hij ontwikkeld heeft en volgens mij is hij tot op de dag van vandaag nog steeds kritisch op z'n eigen werk.

[Reactie gewijzigd door Laurens-R op 13 juni 2012 23:19]

Leuk! Goede serie, we mogen best wel trots zijn op Nederland en onze voortrekkers en ons laten inspireren door dit soort mannen.
Inderdaad!

Ik ben ook benieuwd naar een interview met Guido van Rossum, de grondlegger van Python.. :)
Mooi interview! Grappig om te zien dat vele uitvindingen gewoon bedoeld waren voor eigen gebruik, totdat er andere mensen zijn met hetzelfde probleem en graag jou uitvinding willen gebruiken.

Sjonge, wat hebben Nederlanders eigenlijk veel bijgedragen aan de techniek! Erg trots op onze polderpioniers! :D
"Ik had niet de ambitie om dit uit te vinden. Ja Ik had het nodig."

Necessity is the mother of all inventions. :)
Mooi om te zien, ik kijk al uit naar de volgende aflevering.
Leuke en interessante reeks! Ik ga ze allemaal even op mijn gemak bekijken en wat collega's tippen...

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee