Sam Vargh­ese over at iTWire asked me a cou­ple of days ago for input on whether FOSS would be affect­ed if the Win­dows source code was released. I start­ed draft­ing a response, expect­ing to be fin­ished quick­ly, but the ideas just kept flow­ing. The end result was a touch over a thou­sand words! I was expect­ing Sam to maybe quote a token sen­tence or two in his arti­cle. To my sur­prise, he basi­cal­ly repro­duced (with a lit­tle para­phras­ing) the whole thing! 🙂

The arti­cle is here. Skip to page 4 to start read­ing my contribution.

Here is my com­plete response to Sam. As you can see, very lit­tle was left out of the article.

The impact on FOSS would depend on what cir­cum­stances the code was released under. Win­dows code is already avail­able under Microsoft­’s ‘shared source’ pro­gramme. In this state, you must sign a restric­tive NDA to see the code, and after that your mind is for­ev­er taint­ed with Microsoft­’s intel­lec­tu­al prop­er­ty. Write any­thing even remote­ly sim­i­lar to the code you were deigned to see, and you leave your­self open to lit­i­ga­tion. In oth­er words, tak­ing part in shared source is a sure-fire way to tor­pe­do your career in software.

Microsoft have for years been exper­i­ment­ing to find a licence that they can con­vince peo­ple is ‘free enough’. For­tu­nate­ly they haven’t suc­ceed­ed. The dan­ger if they did would be to shift the bal­ance in the open source world away from free soft­ware and towards a mod­el that is more restric­tive but still accept­ed. They have enough code to seri­ous­ly upset the bal­ance, ignor­ing for the moment the com­plex­i­ty (which includes also lega­cy cruft, bloat and so on) and hence dif­fi­cul­ty for any­one to actu­al­ly com­pre­hend the code and par­tic­i­pate in development.

Qual­i­ty (or rather, lack of qual­i­ty) aside, Microsoft­’s code could be use­ful to see how for­mats and pro­to­cols are imple­ment­ed. Linus Tor­valds once wrote, “A ‘spec’ is close to use­less. I have _never_ seen a spec that was both big enough to be use­ful _and_ accu­rate. And I have seen _lots_ of total crap work that was based on specs. It’s _the_ sin­gle worst way to write soft­ware, because it by def­i­n­i­tion means that the soft­ware was writ­ten to match the­o­ry, not real­i­ty.” It’s one thing to have doc­u­men­ta­tion (as the Sam­ba team have recent­ly man­aged to acquire), but there’s noth­ing to guar­an­tee that there are no mis­takes or devi­a­tions (inten­tion­al or oth­er­wise) in the actu­al imple­men­ta­tion. The WINE project is a clas­sic exam­ple — con­signed to faith­ful­ly reim­ple­ment all of Microsoft­’s bugs, even if they run counter to doc­u­ments you might find on MSDN.

There are many ‘open source’ licences. Too many, in fact. Many of these are incom­pat­i­ble with each oth­er, and a ludi­crous vol­ume of them are just MPL with ‘Mozil­la’ replaced with $com­pa­ny. What keeps open source strong are the licences that either have clout in their own right or ones which can share code with those licences. The GPL is right at the cen­tre of this, and we should be proud that the core of open source’s supe­ri­or­i­ty is Free Soft­ware. Microsoft could try and release code that meets the Free Soft­ware Def­i­n­i­tion but is inten­tion­al­ly incom­pat­i­ble with the GPL, as Sun did with Open­So­laris and CDDL. It still remains to be seen if Open­So­laris is of any suc­cess, and I think GPL incom­pat­i­bil­i­ty is cer­tain­ly a fac­tor there (for exam­ple, they can’t take dri­vers from Lin­ux, so its hard­ware sup­port remains poor)., on the oth­er hand, is a prime exam­ple of a large pro­pri­etary project that has been released under a GPL-com­pat­i­ble licence (LGPL) and has gone on to be suc­cess­ful as a con­se­quence. That suc­cess would not have hap­pened if code could not be shared with oth­er FOSS projects, inte­gra­tion could not be made (direct link­ing, etc.) and mind­share not won (FOSS advo­cates to write code, report bugs, evan­ge­lise, etc.).

The big stinger here is patents. Sun have addressed this in the past with a strong patent covenant, and more recent­ly they’ve been try­ing to do it prop­er­ly by for instance reli­cens­ing as LGPLv3 (hence grant­i­ng its users the inher­ent patent pro­tec­tions of that licence). Would a mere ‘Covenant Not to Sue’ suf­fice for Microsoft? In the case of Microsoft­’s recent releas­es of bina­ry Office for­mats doc­u­men­ta­tion, their covenant only cov­ers non-com­mer­cial deriva­tions. Sim­i­lar­ly, their Sin­gu­lar­i­ty Research Devel­op­ment Kit was released a few weeks ago under a ‘Non-Com­mer­cial Aca­d­e­m­ic Use Only’ licence.

It is be vital that com­pa­nies have as full rights to use the code as non-com­mer­cial groups. Oth­er­wise, the code would be deemed to be non-Free (Free Soft­ware does­n’t per­mit such dis­crim­i­na­tion). The con­tri­bu­tions made by com­mer­cial enti­ties into the FOSS realm is immense and can­not be ignored. To deny them access would be a death sen­tence for your code. Microsoft would be stuck improv­ing it on their own, and in that case what was the point in releas­ing it in the first place? Don’t mal­ware writ­ers have enough of an advantage?

Don’t trust what a sin­gle com­pa­ny says on its own. Nov­ell was for a short while the dar­ling of the FOSS world… then they made a deal with Microsoft. I’m glad that many of us were scep­ti­cal of Mono back before the Nov­ell-MS deal, because I’m sure as hell ain’t touch­ing it now. .NET might be an ECMA ‘stan­dard’, but like OOXML it is a ‘stan­dard’ con­trolled whol­ly by Microsoft. Will such a stan­dard remain com­pet­i­tive and open? We’ve seen this in oth­er stan­dards debates, a good exam­ple being the devel­op­ment of WiFi. Com­pa­nies jos­tled to get their own tech­nolo­gies into the offi­cial stan­dard. The end result might indeed be open, but if it’s your tech­nol­o­gy in there you already have the ini­tia­tive over every­one else. If Win­dows is accept­ed as being open source, Microsoft will con­tin­ue to dom­i­nate by virtue of con­trol­ling and hav­ing unpar­al­leled exper­tise in the under­ly­ing platform.

To raise the most basic (and in this case, flawed) argu­ment, free soft­ware is fan­tas­tic for all users no mat­ter what. Free (not just ‘open’) Win­dows means that Free Soft­ware has final­ly achieved glob­al dom­i­na­tion — a Free World, if you will. By this argu­ment, we should sim­ply rejoice in our lib­er­a­tion from pro­pri­etary soft­ware and restric­tive formats/protocols.

Of course, I have already demon­strat­ed that this cor­nu­copia like­ly will not even­tu­ate even if Microsoft released the Win­dows source code as open source (even GPL). The soft­ware on top will remain pro­pri­etary (the GPL’s ‘viral’ nature aside). We’ll still have pro­pri­etary pro­to­cols and for­mats — and even dig­i­tal restric­tions man­age­ment (DRM) — at the appli­ca­tion lev­el. In the grand scheme of things, the end con­se­quence on FOSS of Win­dows source code being released might pos­si­bly be zilch.

LotD: Hap­py Pi Day everyone!