Sam Var­ghese over at iTWire asked me a couple of days ago for input on wheth­er FOSS would be affected if the Win­dows source code was released. I star­ted draft­ing a response, expect­ing to be fin­ished quickly, but the ideas just kept flow­ing. The end res­ult was a touch over a thou­sand words! I was expect­ing Sam to maybe quote a token sen­tence or two in his art­icle. To my sur­prise, he basic­ally repro­duced (with a little para­phras­ing) the whole thing! 🙂

The art­icle 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 little 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 restrict­ive NDA to see the code, and after that your mind is forever tain­ted with Microsoft’s intel­lec­tu­al prop­erty. Write any­thing even remotely sim­il­ar to the code you were deigned to see, and you leave your­self open to lit­ig­a­tion. In oth­er words, tak­ing part in shared source is a sure-fire way to tor­pedo your career in software.

Microsoft have for years been exper­i­ment­ing to find a licence that they can con­vince people is ‘free enough’. For­tu­nately they haven’t suc­ceeded. The danger 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 restrict­ive but still accep­ted. They have enough code to ser­i­ously upset the bal­ance, ignor­ing for the moment the com­plex­ity (which includes also leg­acy cruft, bloat and so on) and hence dif­fi­culty for any­one to actu­ally com­pre­hend the code and par­ti­cip­ate in development.

Qual­ity (or rather, lack of qual­ity) aside, Microsoft’s code could be use­ful to see how formats and pro­to­cols are imple­men­ted. 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_​ accur­ate. And I have seen _​lots_​ of total crap work that was based on specs. It’s _​the_​ single worst way to write soft­ware, because it by defin­i­tion means that the soft­ware was writ­ten to match the­ory, not real­ity.” It’s one thing to have doc­u­ment­a­tion (as the Samba team have recently man­aged to acquire), but there’s noth­ing to guar­an­tee that there are no mis­takes or devi­ations (inten­tion­al or oth­er­wise) in the actu­al imple­ment­a­tion. The WINE pro­ject is a clas­sic example — con­signed to faith­fully 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­ible with each oth­er, and a ludicrous volume of them are just MPL with ‘Moz­illa’ replaced with $com­pany. 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 centre of this, and we should be proud that the core of open source’s superi­or­ity is Free Soft­ware. Microsoft could try and release code that meets the Free Soft­ware Defin­i­tion but is inten­tion­ally incom­pat­ible with the GPL, as Sun did with OpenSol­ar­is and CDDL. It still remains to be seen if OpenSol­ar­is is of any suc­cess, and I think GPL incom­pat­ib­il­ity is cer­tainly a factor there (for example, they can’t take drivers from Linux, so its hard­ware sup­port remains poor). Open​Of​fice​.org, on the oth­er hand, is a prime example of a large pro­pri­et­ary pro­ject that has been released under a GPL-com­pat­ible licence (LGPL) and has gone on to be suc­cess­ful as a con­sequence. That suc­cess would not have happened if code could not be shared with oth­er FOSS pro­jects, integ­ra­tion could not be made (dir­ect link­ing, etc.) and mind­share not won (FOSS advoc­ates to write code, report bugs, evan­gel­ise, etc.).

The big stinger here is pat­ents. Sun have addressed this in the past with a strong pat­ent cov­en­ant, and more recently they’ve been try­ing to do it prop­erly by for instance reli­cens­ing Open​Of​fice​.org as LGPLv3 (hence grant­ing its users the inher­ent pat­ent pro­tec­tions of that licence). Would a mere ‘Cov­en­ant Not to Sue’ suf­fice for Microsoft? In the case of Microsoft’s recent releases of bin­ary Office formats doc­u­ment­a­tion, their cov­en­ant only cov­ers non-com­mer­cial deriv­a­tions. Sim­il­arly, their Sin­gu­lar­ity Research Devel­op­ment Kit was released a few weeks ago under a ‘Non-Com­mer­cial Aca­dem­ic Use Only’ licence.

It is be vital that com­pan­ies 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 doesn’t per­mit such dis­crim­in­a­tion). The con­tri­bu­tions made by com­mer­cial entit­ies 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 writers have enough of an advantage?

Don’t trust what a single com­pany says on its own. Nov­ell was for a short while the darling of the FOSS world… then they made a deal with Microsoft. I’m glad that many of us were scep­tic­al 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 ‘stand­ard’, but like OOXML it is a ‘stand­ard’ con­trolled wholly by Microsoft. Will such a stand­ard remain com­pet­it­ive and open? We’ve seen this in oth­er stand­ards debates, a good example being the devel­op­ment of WiFi. Com­pan­ies jostled to get their own tech­no­lo­gies into the offi­cial stand­ard. The end res­ult might indeed be open, but if it’s your tech­no­logy in there you already have the ini­ti­at­ive over every­one else. If Win­dows is accep­ted as being open source, Microsoft will con­tin­ue to dom­in­ate by vir­tue of con­trolling and hav­ing unpar­alleled expert­ise in the under­ly­ing platform.

To raise the most basic (and in this case, flawed) argu­ment, free soft­ware is fant­ast­ic for all users no mat­ter what. Free (not just ‘open’) Win­dows means that Free Soft­ware has finally achieved glob­al dom­in­a­tion — a Free World, if you will. By this argu­ment, we should simply rejoice in our lib­er­a­tion from pro­pri­et­ary soft­ware and restrict­ive formats/​protocols.

Of course, I have already demon­strated that this cor­nu­copia likely 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­et­ary (the GPL’s ‘vir­al’ nature aside). We’ll still have pro­pri­et­ary pro­to­cols and formats — and even digit­al restric­tions man­age­ment (DRM) — at the applic­a­tion level. In the grand scheme of things, the end con­sequence on FOSS of Win­dows source code being released might pos­sibly be zilch.

LotD: Happy Pi Day everyone!

%d bloggers like this: