Verwijderd schreef op vrijdag 23 september 2005 @ 11:12:
[...]
Ik wel degelijk open voor een andere mening en je hebt gelijk als je zegt dat de standpunten niet eens zo ver uit elkaar liggen. Alleen zeg nou zelf, als we het niet zwart wit maken is er weinig voer voor een discussie. Doch ontbreekt van beide kanten duidelijke voorbeelden waar commentaar overbodig danwel noodzakelijk is. En ik wil best wel wat voorbeeld code neerzetten, maar dat bewijst helemaal niets. Ik ben immers vrij te kiezen wat ik wil en kan dus zo'n duidelijke code die geen commentaar behoeft neer zetten. Verre van interessant dus. Het ontbreekt ook van de voorstanders van commentaar van duidelijke voorbeelden waar commentaar noodzakelijk is. De voorbeelden die zijn neergezet bevat namelijk geen zelf documenterende code (vb: float32 f). Dus enkel code die duidelijk is opgezet en noodzakelijk commentaar bevat zal dus mijn stelling onderuit halen.
Ik denk dat je zal moeten accepteren dat ideale code niet bestaat. Ja, alle code zou gerefactord moeten worden en duidelijke namen bevatten etc etc, maar in de praktijk zal je pragmatischer te werk moeten gaan. Je kan zelden voordat je aan een project begint alle namen van variabelen en structuren in je code uitgedacht hebben dat er nergens meer een greintje onduidelijkheid is, en als je tijdens een project dergelijke onduidelijkheden tegen komt, zal je alleen dingen aanpassen waar je tijd voor hebt en waar een pragmatische reden voor is (dwz: tijdwinst, duidelijk betere onderhoudbaarheid, etc). Een stukje documentatie toepassen is dan vaak een betere pragmatische oplossing dan het stuk code helemaal opnieuw gaan uitdenken. Soms is de impact ook gewoon erg groot en heeft het geen pragmatisch nut.
Een tweede issie is dat er soms materiekennis is bij developers die zij toepassen in het schrijven van hun software, zonder het verder te abstraheren naar een voor iedereen begrijpbare taal / structuur. Om toch mensen die onbekend zijn met deze zaken te helpen (en zichzelf te helpen als de kennis na maanden aan een ander project gewerkt te hebben is weggezakt) zal een programmeur dan liever wat regels code hieraan besteden dan zijn code herschrijven voor de leek.
Zo zijn er nog veel meer redenen te noemen waarom het misschien theoretisch beter kan, maar waar het pragmatisch de beste oplossing is om wat commentaar te typen. Het verschil ligt dan bij wat je 'beter' noemt: de theoretisch beste of de praktisch beste manier. Een aanvullend issue daarbij is dat de theoretische benadering de praktische niet ziet: "Het probleem met het verschil tussen theorie en praktijk is dat die in theorie niet bestaat, maar in praktijk vaak wel."
Ik denk dat alle voorbeelden in de wereld daar niets aan zullen veranderen, want jij zal er anders naar kijken dan anderen.
En als dat gewoon eens op een normale toon kan zou het ook wel fijn zijn. Ik hoef niet te horen dat ik volgens jullie te weinig ervaring heb. Als het echt een kwestie van ervaring is zul je met diezelfde ervaring op vrij simpele wijze kunnen aantonen dat code dergelijk commentaar behoeft.
Ik denk dat jij zelf ook de toon hebt gezet door heel erg stellig te beweren dat het fout was om code te documenteren, om vervolgens jouw betoog ook in deze toon door te zetten. Daarmee schoffeer jij net zo goed al de mensen die wel commentaar in hun code zetten. Je had ook kunnen zeggen dat je dat zelf niet nodig vindt / hebt omdat jouw code zichzelf voldoende beschrijft en zou dan nog wel andere meningen gekregen, maar in een heel andere toon.
Dit bedoel ik met het zwart-witte: je mag je eigen mening heel duidelijk maken, zolang je andere mensen en hun mening daarbij in hun waarde laat. Als dat niet gebeurt, zal iedereen heel defensief worden mbt hun eigen mening en die bij anderen willen opdringen, zoals dat nu gebeurt.
Daarbij lijk jij het feit dat je minder ervaren bent wel heel erg als een aanval te zien, terwijl het een constatering is van een feit, en verder niet een oordeel over jou als persoon. Verder helpt het je als je erkent dat je een eigen idee hebt en voelt dat dat goed is, maar dat dat misschien niet de universele oplossing is voor alle situaties, want je bent nog lang niet alle situatuies tegen gekomen. Wat in jou huidige situatie goed werkt zou in een andere omgeving wellicht niet werken.
Overigens zou ik ook de meer ervaren mensen op hun hart willen drukken dat zij hun ervaring ook dor schade en schande hebben opgedaan, en daarom niet hun mening zo moeten opdringen, maar gewoon minder ervaren mensen de kans geven zo te leren.
Edit:
/me koelt zijn vingers na dit wollige verhaal ...
@oisyn: