Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 55 reacties
Bron: Shawnburke

Microsoft overweegt de broncode van Windows Forms openbaar te maken, zo blijkt uit een post op het blog van developer division program manager Shawn Burke. Om dit mogelijk te maken moeten echter twee problemen overwonnen worden, aldus Burke. Het eerste probleem bestaat uit intellectueel eigendomsrechten, maar dat lijkt volgens de betrokkenen niet onoverkombaar te zijn. Het tweede probleem situeert zich echter in de commentaren in de broncode. Alvorens deze beschikbaar gemaakt kan worden, zou men ervoor moeten zorgen dat deze commentaren volledig opgepoetst zijn en ontdaan zijn van grappen, scheldtirrades en opmerkingen over belangrijke klanten. Dit kan op een drietal manieren gebeuren. De eerste manier is de gemakkelijkste en goedkoopste en bestaat erin gewoon alle commentaarregels integraal te verwijderen.

De tweede manier zou zijn om commentaar in bepaalde bestanden te gaan verwijderen en dit in andere bestanden, waar geen problemen mee verwacht worden, intact te laten. De derde oplossing, die het meest zinvolle resultaat oplevert, is meteen ook de duurste en bestaat erin alle broncode handmatig te controleren op delicate commentaarregels om deze te verwijderen en het zinvolle commentaar intact te laten. Hiervoor is echter een budget nodig dat er momenteel niet is en dat er in de nabije toekomst ook niet zal komen, aldus Burke, zodat een eventuele oplossing zou kunnen zijn om de hulp te vragen van gewaardeerde communityleden, de zogenaamde Microsoft Valued Professionals.

Moderatie-faq Wijzig weergave

Reacties (55)

Misschien dat ik nu als een debiel overkom, maar ehm... wat houd dit precies in? Wat is de Forms-broncode? Wat gaan wij er aan hebben? Is dit een vrijgave van broncode van een gedeelte van de API set van windows??
Windows.Forms is een onderdeel van de .NET API. Meer bepaald het onderdeel om grafische windows applicaties te maken (vensters, menus, buttons, tabellen, ...). Tot nu toe kon je de API wel gebruiken, maar kon je niet zien hoe hij intern werkt. Met andere woorden de broncode was nog nooit gepubliceerd.
Ja dat zou ik ook wel eens willen weten.

Kunnen we nu eindelijk snappen hoe een dropdownbox gemaakt wordt?
Mono is nu al in staat om .NET apps te draaien onder andere platformen dan windows, maar de Windows.Forms is nog niet geimplementeerd, niet dat het meteen kan helpen maar t'zou dan mss mogelijk zijn om Windows.forms in z'n shared vorm te compileren en te gebruiken onder mono zodat alle apps gewoon cross-platform werken met enkele aanpassingen onder de motorkap van Windows.forms, hoe legaal dit is weet ik niet, maar uiteindelijk werkt het mono team ook al aan een eigen implementatie.
Niet echt professioneel als je als organisatie eerst alle "foute" comentaren eruit moet halen. Geeft mij geen warm gevoel van binnen qua professionaliteit van deze programmeurs.
dat schijnt bij iedere programmeur ter wereld voor te komen.
dat spreek ik graag tegen (en ik weet dat er een hoop programmeurs zijn die er wel rekening mee houden dat hun code wel eens door derden gezien zou kunnen worden)
En juist daarom staan er vaak grappen en tirades in..
Ja maar imho zijn ook "grappen" != "delicate commentaarregels" :)
tsja, maak jij dan nooit wat politiek incorrecte opmerkingen? programmeurs doen dat ook vaak zat, maar vaak in de code van hun programmatuur, omdat daar later toch niemand in zal zitten kijken, behalve collega's, die de humor er vaak wel van inzien, tot de code openbaar wordt gemaakt ;)
Ik vind at dit niks met professioneel te maken heeft. Uiteindelijk staat er gewoon een product dat aan de eisen voldoet. Dat die programmeurs daar leuk commentaar in zet betekent alleen maar dat het een heel hecht team is dat elkaars humor waardeert. Ook is het nooit de bedoeling geweest dat die code door derden ingezien zal worden.
wil dit zeggen dat de maker van Mono daar dan ook gebruik van mogen maken?
Ik wil liever niet vooruitlopen op de zaken, maar gezien de recente geschiedenis van het vrijgeven van informatie door MS waarschijnlijk niet. Ik denk dat MS dit onder een Shared Source achtige "look-but-don't-touch" licentie zal uitbrengen of misschien onder een licentie die expliciet het gebruik in OSS uitsluit (zoals met die protocollen die ze "openbaar" gemaakt hebben).

Daarnaast zal Mono er weinig aan hebben, aangezien het grotendeels Win32 wrapper code is (staat in de bron) en dat natuurlijk niet gaat werken op een non-Win32 OS.
Alsof het de schuld is van Microsoft dat er een virale open source licentie bestaat (waar niet alleen Microsoft de ongewenste effecten van betreurt en zich tegen wil beschermen) en alsof de (L)GPL de enige open source licentie is...
Ik weet niet welke reactie jij hebt zitten lezen, maar het was waarschijnlijk niet de mijne. Ik heb nergens beweerd dat MS de forms code onder GPL moet uitbrengen.

Als MS de boel onder een "alleen-kijken" licentie wil uitbrengen moeten ze dat helemaal zelf weten en zal niemand ze een strobreed in de weg kunnen leggen. Ook zal niemand daarover klagen, kijken is beter dan niet kunnen kijken.

Wat wel kwalijk is, is dat MS dan zegt dat ze de source open gemaakt hebben. Dat wijst namelijk naar Open Source en de meeste mensen zullen het verschil niet zien tussen open van MS en Open Source.

Bij Open Source horen namelijk heel wat meer rechten dan bij de MS versie van open, het enige virale aan die GPL is dan ook dat het je verplicht om die rechten ook aan de volgende te geven die de source krijgt, wat is daar mis mee?
Daarnaast zal Mono er weinig aan hebben, aangezien het grotendeels Win32 wrapper code is (staat in de bron) en dat natuurlijk niet gaat werken op een non-Win32 OS.
Dat het een win32 wrapper class was, was natuurlijk al heel lang bekend. Heeft MS inderdaad ook nooit een geheim van gemaakt.

Het is natuurlijk wel zo dat de win32 port naar andere platformen al redelijk ver is. Mischien dat het technisch mogelijk is om de bestaande Windows Forms source deze win32 port te laten wrappen op andere platformen. Of MS dat toestaat is een heel andere zaak. Ik denk van niet...
// comment:
// This part is for the non-ie browsers
// go search your own solution

END

// lol
Ik krijg hierbij een beetje het gevoel van "lulverhaal" :)

Hoe moeilijk kan het zijn om bestanden door een find & replace te halen, met een regular expression die alle /* */ en // entries verwijderd.

Dit soort zaken bestaan namelijk al heel lang voor andere talen.
Ik neem aan dat dat ook wel bekent is binnen MS.
Maar het lijkt me toch het meest zinvol om zo veel mogelijk commentaar in tact te laten. Dat is wel net zo makkelijk voor degenen die met de broncode aan de gang willen. Code voorzien van goed commentaar leest namelijk vele malen makkelijker dan code zonder commentaar.
Dat zegt ie toch ook? Het is geen probleem om alle commentaar te verwijderen. Alleen is dat een beetje zonde van al het nuttige commentaar.

Als je regelmatig code van andere mensen leest dat weet je idd niet alle commentaar voor alle ogen geschikt is :)
De vraag die ind e blog dan ook werd gesteld was of het zinnig was om de code zonder commentaar beschikbaar te stellen. Shawn Burke is niet zo dom als jij nu suggereert.
Tuurlijk, dat is de meest eenvoudige manier.

Maar als je duizenden regels code hebt, dan zijn comments juist een goede manier van het verkrijgen van overzicht/werking e.d.

Ik kan me voorstellen dat wanneer er veel programmeurs aan een stukje werken het gauw onoverzichtelijk wordt voor elkaar en anderen. Als je ALLE comments verwijderd, dan snijd je je daarmee in de vingers denk ik.

@RavenFire, ik ben het niet helemaal met je eens, omdat als comments als een uitingsvorm fungeren, dan kan het natuurlijk een flinke uitlaatklep zijn voor een programmeur. Die z'n stress even kwijt moet. Als leidinggevende weet je gelijk wat er in je programmeurs omgaat hehehe....
1. Duh
2. Overigens zullen ze daar eerder een tooltje voor gebruiken voor code reviews als met regular expressions gaan kloten.
3. Waarschijnlijk is de source nogal veel en is dat het probleem (geen budget om mensen dat te laten doen)
4. De procedures bij MS voor veranderde code (ook al is het maar enkel commentaren wijzigen) releasen (in al dan niet gecompileerde vorm) bestaat uit meer dan een mannetje wat ff een regeltje veranderd en op compile drukt.
Ik weet wel een goedkope oplossing voor het tweede probleem, zeg gewoon tegen je programmeurs dat ze zich een beetje volwassen gaan gedragen en niet meer van de rare onzin in de code zetten.
je snapt toch wel dat commentaar nooit mee gecompiled wordt? :P
Ik denk dat hij dat inderdaad niet begrijpt. Waarschijnlijk begrijpt hij ook niet dat de source code vele gigabytes groter is dan die 650mb.
Open source broncode staat ook vaak vol met dergelijke grappige opmerkingen, alleen trekt niemand zich daar iets van aan.

Blijkbaar hebben de 'suits' bij MS en hun klanten minder gevoel voor humor... ;)
MS heeft geld, veel geld, en is gebaseerd in de VS.

Het is dus wachten op de eerste malloot die zich "gekwetst" voelt door een "foute grap" in de comments, en een rechtzaak tegen MS begint om een gigantische schade vergoeding te eisen.

De kale open source kip kun je toch niks van plukken.
Iedereen heeft al toegang tot optie 1, pak gewoon een reflector en kijk wat er voor code staat,. tada.. met de huidige versie kun je het zelfs vertalen naar vb.net. (voor de jongens en meisjes die dat prefereren *mogenlijke flame, non intended*)

Daarnaast is al veel code van het dot net platform "open", via de shared source licentie. download
Dat was ook mijn eerste reactie. Wat voor quality assurance systeem wordt daar gehanteerd als er code wordt opgeleverd met foute grappen en meer van die ongein? OSS heeft ook wel een cultuur van grappen in de source, maar die zijn meestal meer to-the-point.

Als je kijkt naar de reacties op de blog dan lijken de meeste MVPs erg blij te zijn met het beschikbaar komen van de source. Naar mijn idee een duidelijk teken dat het beschikbaar zijn van source code een groot pluspunt is tijdens het ontwikkelen van software. Zelfs MS lijkt daar beetje bij beetje achter te komen.
Quality Assurance in software ontwikkeling is iets wat pas redelijk recent een echt issue is geworden. +/- 15 tot 20 jaar geleden met de start van de ontwikkeling van Windows en daarmee het Forms systeem was dat zeker nog niet het geval.
@Gordijnstok: Erg leuk...en broncode zonder enig commentaar. Daar heb je lekker veel aan.
oh, blijkbaar zijn er genoeg programmeurs die denken (en tegen mij ook daadwerkelijk gezegd hebben):
Goed geschreven code wijst zichzelf...

hahaha... dan zeg ik maar altijd: fout geschreven code wijst zichzelf ook...

Zo kun je weer zien hoe sommige programmeurs denken.. tja, 1 voordeel van die programmeurs is natuurlijk wel dat ze achteraf niet hun code door hoeven te spitten op commentaar, want wat er niet is hoef je ook niet aan te passen...
En toch is het zo dat goed geschreven code als een goed spannend boek leest :Y)
Dat heeft wel degelijk zin. Op dit moment kun je ook een decompiler gebruiken om te proberen te achterhalen wat er precies gebeurt, maar echte source is een stuk gemakkelijker voor dat soort doeleinden, al was het maar om dat variabelen tenminste zinnige namen hebben.
Broncode van een dergelijk grote omvang heeft totaal geen zin zonder commentaren je raakt het overzich zo kwijt. Decompilen heeft vaak ook geen zin omdat je daarmee niet de namen van de variabelen bewaart. Bij het compilen veranderen de namen van de variabelen gewoon in geheugen adressen dus waarschijnlijk zal die decompiler (als dit uberhaubt al gaat werken) zelf een paar creative variabelen aan maken.
onwaar, in il blijft de naam van de variabelen gewoon bewaard, dit geld ook voor java. Daarom zijn er zogenoemde obfuscators,.. die gezellig een grote search en replace doet en methods aan maakt met namen zoals a(),a(x),a(x,x)..z(x,x,x),.. aa(x,x,x,x) etc.. dan pas begrijp je er geen hout meer van. Tja alleen met een decompile is geen commentaar terug te halen.
Als ze nu die code eerst gewoon vrijgeven zonder commentaar, en dan langzaam aan het commentaar gaan revicen en terug plaatsen in de code.

of als ze nu gewoon zonder commentaar vrijgeven, er zijn vast wel genoeg ontwikkelaars die het een en ander aan commentaar willen schrijven, komt er vanzelf wel commentaar beschikbaar.
en ontdaan zijn van grappen, scheldtirrades en opmerkingen over belangrijke klanten.
Je zou maar belangrijke klant zijn en dit lezen......Dan voel je je flink ge...fopt.

Enkele regels code die ik ingezien heb :+

// It's not a Dell, it's a Slut
// iPod rulez, but everytime I play a song I hear something new from Apple. (wat opzicht positief is voor Appels)
En hoe zit het met de code zelf dan?

long lCrap;
while ( bTillHellFreezesOver )
{
PaintTheDamnForm();
};
Nou, daar hebben we refactoringtools voor :)

uuhh... oh nee, VS.NET heeft dat nog niet |:(
Ah, dan vraag ik me af waar dat menu aan de bovenkant, 'Refactor' voor is |:( Doe je huiswerk voordat je domme statements maakt.
Ja... daar zit het zeker vol mee. :P

en ook:

if saved(5) = false then
'I don't think that that stupid user knows what's happening
throw new BSOD
end if

function saved(byval min as integer) as boolean
....
return false
end function
een eventuele oplossing zou kunnen zijn om de hulp te vragen van gewaardeerde communityleden, de zogenaamde Microsoft Valued Professionals.
Als ze mij vragen, doe ik het wel, nadat ik er een kopie van gemaakt heb :Y)
In het verleden is er ook al het een en ander geschreven over commentaar in gelekte Windows 2000 broncode.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True