A plea against Micro$oft

[ENS] [ENS students] [David Madore]
[Mathematics] [Computer science] [Programs] [Linux] [Literature]

$Revision: 1.14 $.

This page is best viewed with Micro$oft Internet Exploder. If you are viewing it with another browser, you are already on the Right Track toward the Free Side of the Source, so there is no need to continue :-)


A New Hope

A long time ago in a network far, far too close...

It is a period of computer war.
Rebel programs, striking
from a hidden base, have won
their first victory against
the evil Gatesactic Empire.

During the battle, Rebel
spies managed to steal source
code to the Empire's
ultimate weapon, the INTERNET
EXPLODER, a web browser
program with enough bugs to
destroy an entire hard disk.

Pursued by the Empire's
sinister agents, Princess
Lina races home aboard her
TCP/IP, custodian of the
stolen code that can save
her people and restore
freedom to the internet...

(...continued...)


The Encyclopædia Internetica defines a computer as an electrical apparatus designed to carry out calculations. The marketing division of Micro$oft Corporation defines a computer as ``Your Colorful Pal Who's Fun To Play With''.

The Hitch Hacker's Guide to the Internet defines the marketing division of Micro$oft Corporation as ``a bunch of mindless jerks who'll be the first against the wall when the revolution comes''.

Curiously enough, an edition of the Encyclopædia Internetica that had the good fortune to fall through a time warp from a thousand years in the future defined the marketing division of Micro$oft Corporation as ``a bunch of mindless jerks who were the first against the wall when the revolution came''.


Foreword

The purpose of this page is to describe a few of the reasons why I do not like Micro$oft, and in particular Micro$oft Windoze - and why I believe that Micro$oft represents a danger to the computing world and perhaps to the world altogether. In none of the reasons presented here is Micro$oft truly unique: it is the combination of all these factors which make Micro$oft unique and uniquely dangerous.

Please note that the opinions expressed here are mine, and although I believe that they (or at least part of them) are shared by many, I cannot speak for anyone but myself. Also please note that you had probably better not read this page if you do not believe you are able to fill in the missing smileys.

I mean no personal offence to anyone, not even to Micro$oft's Chairman of the Board. I have often wondered which of the following is true of Micro$oft's directors and thinkers. Either they truly believe they are working for Good, and that Windoze is the best possible operating system for PC's - in which case it is my humble opinion that they are very deeply in error. Or they are simply after money - but even in this case they are more to be pitied than blamed.

I wish to express particular gratitude to Péter Horvai for reading this page very carefully, for pointing out many errors or inaccuracies, and for playing the Devil's advocate. He has pointed out to me that getting excited would be of no avail and I should restrain from making strong statements - I have tried to do so but not always with the success I would have wished. I also wish to thank Roberto Di Cosmo for writing a wonderful little tract (in french) on the dangers of Micro$oft.

Legalese

Copyright (c) 1998 by David A. Madore.

Anyone may distribute verbatim copies of this document by any means whatsoever provided this copyright notice is kept intact and the reference of the original version is given, namely:

http://www.eleves.ens.fr:8080/home/madore/computers/antims.html

Anyone may distribute edited or modified versions of this document provided that the modifications are clearly marked as such and that they do not risk to lead to a misinterpretation of the document's contents and goals, and provided a verbatim copy of the document, or the reference of the original version, is given.

Contents

Here is a summary of this page, consisting of links to the appropriate detailed arguments:

  1. In the first place, I am opposed to the very principles of proprietary software, and Micro$oft is the epitome of proprietary software in that not only they only edit such software, but it will not even acknowledge the existence of any other kind.
  2. Moreover, Micro$oft writes software that is terribly buggy, because they care more about selling new features than correcting defects.
  3. The whole principle of these ``easy to use'', ``intuitive'' graphical user interfaces is fallacious, and only manages to make your computer less powerful - and to damage your brain. Micro$oft wants to take us back to the time of the hieroglyphics.
  4. Finally, independently of what they sell, Micro$oft's commercial strategy and dealings with other companies are dangerous, certainly unethical, and possibly illegal.

Thus, I believe Micro$oft might actually represent a danger for the future.

Finally, I have added a collection of related links at the end.

Against proprietary software in general

In this section, Micro$oft won't be the only Great Satan(tm), just one of the villains; perhaps the worst one (the furthest one from even considering making anything they do free software or having anything to do with, whether working with, dealing with, cooperating with, or even mentioning, free software), certainly the most successful one, but not the only one. Still, I had to include this part for completeness.

Why copyright should not apply to software

The possibility of applying a copyright to software has been around for some time, and the idea now seems ``natural'' or ``obvious'' to many people. It is not so. In fact, it is a perverse idea. The copyright system is destined to protect works of art: literature, music, the fine arts. It makes sense for that kind of work to be protected some fifty or seventy (in the case of music) years after the death of the author, and then to fall in the public domain, because a work of art lasts forever. How this rule applies to software, where the copyright holder is generally a company, is unclear - but what is certain is that a copyright on a program will last essentially forever (since new versions are continually renewing the copyright). But the copyright system was made to protect the rights of the author of a work, not his employer, and the intolerable clause stating that the rights over software written by an employee will be owned by the employer shows that this is a perversion of the system, not its normal use. For in the case of books the copyright holder remains the author, not the editor.

Patents

Patents are another form of evil that pervades the computer world. They are perhaps less evil than the copyright form of restriction (I use this term where others would speak of ``protection'' - an interesting form of propaganda) in the sense that they do not last as long, but on the whole they are probably even more dangerous, first of all because they apply not to programs but to algorithms. Now an algorithm is just a mathematical entity (in fact, there is a very important association between algorithms and mathematical proofs, the Curry-Howard isomorphism, which states that both are in effect the same thing, arrows in a category of types) and it should not be permitted to put any kind of restriction on mathematical ideas. Second, whereas one thing that can be said to the credit of the copyright system is that it is easy to apply (anyone who writes anything becomes ipso facto the copyright holder), the patent system on the other hand is horribly complicated. It is very difficult and expensive to file a patent so that in effect only big companies can do that (one of the most abominable forms of ploutocracy); worse than that, it is even very difficult and expensive to learn whether something is patented. So the patent system is the amateur programmer's nightmare - he has no way of knowing where the blow will come from. All major software editors have filed very large numbers of software patents over the most trivial things and are thus contributing towards making programming a difficult and dangerous task.

Need for the Source

Another perversity with proprietary software is that its source is not given out. In other words, not only have software editors tricked the legislators in ``protecting'' their work but they also do not even trust this protection and take their own measures in doing so, and only issue the compiled form of the software. As an extra ``safety'', they also had law forbid reverse-engineering, that is, going back from the compiled form to the source. Now this is very nasty, and for several reasons. For one thing, if a bug is found in a software, not only does the client have no legal protection whatsoever (the ``no warranty clause''), no possibility of (justly) suing the company for the bug or its consequences, but he does not even have the possibility of repairing the bug himself even if he had the technical ability to do so; all he can do is wait for the new version to come out and pay for it again. Similarily, if one is mostly satisfied with a program except for one tiny little bit which one would want to see done differently, one can only either live with it or write an entire new program from scratch! In fact, in general, keeping the source secret is a complete loss of time and efficiency, because it means that every program has to be written from scratch. Essentially, it amounts to selling machines with a big lock around the central part so you can't see what's in it - and also a legal statement that you are not even allowed to try to open the lock; the machine is yours but you may not do what you want with it.

Dangerous consequences

Now the operating system, the central dynamic library and the system compilers are vital parts of the system and they should definitely not be proprietary. Using a Windoze on your system means that you absolutely entrust all your data to Micro$oft. They can delete it all or they can send it to their home site through the network, and you have no way of checking that they won't. If they do, you cannot sue them, even if you can prove that they did it intentionally (but you can't do that because that would mean reverse-engineering the system, which you are not allowed to). (Of course, in the case of Free Software you also get no warranty (someone was willing to write it for free so you can't complain to him) but at least you get the source - and also, if some suspicious part is found, someone is most likely to correct it.)

A few thoughts

What is the alternative? Free Software of course. Currently, Free Software is being written almost exclusively by amateurs, and it is not only morally better, but also technically better than proprietary software written - but this is beside the point here. An interesting economical which has been raised is whether Free Software is economically viable. In other words, what happens to the software industry if software users finally begin to massively realize that they are being fooled when they buy proprietary software (or if the copyright laws on software are suddenly abrogated, an unlikely event)? Is it possible to make money by selling free software (when the same software can be obtained for free)? Where can free software find the necessary funds to finance itself? My belief is that it is possible to have a software economy based on free software. Actually, there already is (see the RedHat distribution of Linux for an example); but this doesn't prove everything of course.

I have been told that development costs are so huge that nobody could afford to pay for the development of a program if they weren't sure to make money out of it - but that argument is not quite correct. First of all, a widespread use of free software would make development costs much lower since everything can be reused in an efficient way. Second, there are plenty of amateurs willing to do a lot of work for no money at all and that has been the main motor of free software development up to now. Third, there are domains of research which are even less money productive than free software, for example mathematics, and mathematics gets its money somewhere, doesn't it? Lastly, it is to be guessed that many people would still like buying the software from those who wrote it, even if can be obtained at zero price elsewhere, either because they want to support the authors, or because that means being sure of getting pristine software and probably the best technical support if any (or at least people will think so, and that's what counts). Also remember that a lot of software is destined to fill some very specific need that is likely to occur only once; a client with such a need would still have to pay a software editor to do develop the program and whether the program is afterwards made free software or not is of no direct impact on the economical analysis of such a situation.

True, in a free software world, much less money would circulate in the software industry, and perhaps also fewer jobs. But what we are doing right now amounts to ``breaking glass to give the glaziers work'' (breaking windows perhaps?), that is, spending huge amounts of money and effort in an industry that is artificially maintaining its underproductivity in order to make more money. That is generally not considered a good way of creating jobs. Besides, those who are ready to give money away like that would probably also be ready to buy free software (and many others, too).

Technical objections against Windoze

Having discussed the general objections I have against proprietary software, I now turn very specifically to Micro$oft Windoze to discuss some of its shortcomings.

Bugs

It won't come as a surprise: Windoze, and especially Windoze 98, contains many bugs. I guess everyone knows that. The sad thing is that some people probably believe that it is the normal way for an OS to behave to hang as soon as you try to run three or four different programs at the same time. These people obviously have not heard of GNU/Linux. Any decent operating system, whether free like BSD or GNU/Linux, or proprietary like Solaris, AIX, OS/S, or even OS/2, is capable of doing full multitasking without any danger of comprimising system stability. In fact, I have known people who actually had guilty feelings when their attempt to run three simultaneous programs under Windoze resulted in crashing the system - as if they had overworked the computer!

Backward (compatibility)

Now let us reflect upon the reason for these bugs. Most probably, Micro$oft programmers are not idiots. But here they were given a nearly impossible task: to maintain backward compatibility. It is unbelievable how often this mistake has been made in the history of computers, whether at the hardware level (the latest 64 bit Intel chips are almost directly descended from a 4 bit chip, the 4004, a screen controller) or at the software level. Yes, Unix might be in the process of making the same mistake, but Unix was a tolerably good OS to begin with, whereas the thing that Windoze is ultimately trying to remain compatible with is DOS, the Dirty Operating System (that's what it means). And an OS that tries to be compatible with a dirty OS (even indirectly) will necessarily contain many bugs. Besides, there are several ways of being compatible, let's say, being source compatible and being binary compatible. Trying to keep binary compatibility at all costs is the worst possible policy - but then of course in a non-free-software world you don't have the sources so you have to stick to that...

Actually, a much better system, also written by Micro$oft, was OS/2, which did not have many of the central deficiencies of Windoze (even though it was not as good as Unix). It was a commercial failure, but Micro$oft should neverless have maintained it and discontinued Windoze: in the short term that would have been bad but later on everyone would have caught on (since programs have to be rewritten and adapted all the time anyway) and they would have been (that is, the users would have been) in a much better position now.

Design policy

Despite all these difficulties, it would probably be possible to stabilize Windoze somewhat. This is a difficult operation, however, and it would probably require many months, if not years, of full-time work. Evidently, this would not be productive as far as Micro$oft is concerned: it does not care about correcting mistakes (upon which some programs actually depend in some cases) but about adding as many new features as possible.

My belief is that now nobody in Micro$oft understands how the Windoze kernel works; and certainly nobody has a clear, global view of it. This means that the developers just keep adding layer after layer on a very shaky foundation which they don't understand. This is certain to make the whole structure huge, unefficient and highly unstable.

Security

Security under Windoze 98 is a farce. It is possible for any program to screw the system at any time. Or to wipe out the entire hard disk. Or to play any similar joke that was possible under DOS and should now belong to the all-but-forgotten past. Under Windoze NT the situation is somewhat better, but it is still pretty far from being as good as Unix. Now remember that Unix (as opposed to Multics) itself wasn't developed with security in mind...

Various features

Just to name a few of the essential features which for the most part UNIX has had in a long, long time, and which Windoze still does not have or is just beginning to discover.

Smallness

The only version of Windoze which can be compared with Unix is NT. It costs less than a commercial Unix but it is also distinctly less powerful - and remember that Linux is free and at least as powerful as any commercial Unix. Now price is not the only thing we pay performance with: we also pay it with disk space taken, memory eaten by the kernel, and syscall overhead. As far as the two first at least are concerned, NT is simply indecent. So I would just like to remind a few people out there that a 486DX33 with 16Mb RAM and 80Mb hard disk is a powerful computer despite what one would have you believe. At the very least, it makes a decent network router. Now try using it as such under a Micro$oft OS. I've done it under Linux.

Non conformance

One of the things of which Linux is proud is its POSIX conformance. And this is a thing to be proud of, for a free OS, since the POSIX norm is not free. Windoze NT (not the other ones) is also supposed to be POSIX conformant, but it seems to have a rather peculiar interpretation of the POSIX standard... The same goes for other kinds of standards and protocols. The Internet Exploder (which, remember, by Micro$oft's own statements to the american Department of Justice, is fully part of the OS itself) has its own not-very-standard version of HTML.

Inertia

Considering all these failures, it is an interesting question why people actually use Windoze. There are several possible answers. (A) Many people don't know there is anything beyond that: they have completely associated the name ``PC'' with the name ``Windoze'', and they treat the two as equivalent. (B) Some people have heard of GNU/Linux (or *BSD, or any other OS), but they don't want to use it because they somehow figure it's only for specialists, hackers and computer scientists. (C) Yet some more people know about Linux, but their favorite software won't run under it. And (D) some people are just lazy.

This is mainly a lot of inertial effect. Software is being written for Windoze because people use Windoze, and people use Windoze because software is being written for Windoze, and also because their PC came with Windoze on it, that being because people use Windoze. And so on. It's a vicious cycle, one which neither Micro$oft nor anyone else really controls. Inertia, however, works both ways, and right now this cycle is giving signs of deceleration. Effect (A) is getting weaker because the media and the internet are ever more talking of Linux. Effect (B) is getting weaker thanks to the efforts of many people including RedHat software, the KDE and Gnome teams. Effect (C) is getting weaker thanks to the effort of the Wine and Dosemu teams, and also because commercial sofware editors are starting to consider other platforms than Windoze. Effect (D) is, of course, unlikely to cease in the near future, but its effects may be alleviated if computers start selling with some other OS than Windoze installed.

More...

Please remember that I do not have Micro$oft Windoze (I am certainly not going to pay for it, and anyway I don't have space on my hard disk for such a vast amount of useless junk), so I can't be quite sure of its exact capabilities. I am pretty sure of what I have mentioned above; my information comes from what people told me and what I have seen on other (unfortunate) people's computers. I may, of course, have been doing Micro$oft some injustice: if this is the case, please tell me (because I don't want to be doing even Micro$oft an injustice) but of course I need the exact details, not just ``I'm pretty sure NT is good at networking''. More probably, I have not told of all the missing features in Windoze, so please tell me about those, too.

Anyway, my greatest technical objection to Windoze is the one I describe in the next section.

The Graphical User Interface

A horrible confusion

Let us clearly distinguish three things: the kernel (that is, the operating system itself), the graphics interface and the (graphical) user interface. The kernel has nothing to do with graphics or with the user in any way: it is concerned with dealing with peripherals (so it may perform some minimal interaction with the graphics card, but definitely nothing as compicated as windows), with arbitrating system resources between the various processes, with maintaining system security, and such things. The kernel should be small and very robust - for one thing because it is difficult to replace. The graphics interface performs communication between programs and the graphics hardware (perhaps as handled by the kernel, or perhaps directly by the bus); it is still not concerned with the user, only insofar as it receives input events (key strokes, mouse motions and buttons) and sends them to the concerned programs, called ``clients''. The user interface may be a simple text prompt, but in the case we are discussing we mean graphical interfaces, also called window managers: the role of the GUI is to interpret certain kinds of input events (sent to it by the graphics interface) and to correspondingly change the screen layout. Note that I'm not talking here about what would be the ``widget toolkit'' under X: it resides on the same level as the window manager but it is still different

Now does that sound confused? If it does, then you probably are too accustomed to using Windoze. If you are used to Unix, there is no difficulty: the kernel is Unix itself, the graphics interface is the X server, and the graphical user interface is Your Favorite Window Manager. The best proof that they are very different is that each may be running on a separate machine (the X server on an X terminal, the window manager on one machine, which obviously also has a kernel, but perhaps not the same machine as the one your applications are running under, which is the one whose kernel really counts).

Now why should these three things necessarily be different? Well, I have already explained why the kernel should have nothing to do with graphics, so that separates the kernel from the other two. As for the graphics interface and the user interface, the reason is simple: the choice of a particular graphics interface (or perhaps does not depend on anything if it comes with various drivers) depends on your hardware (or perhaps does not depend on anything if it comes with various drivers) whereas the choice of a particular user interface depends on your tastes. Your tastes generally do not depend on which particular hardware or operating system you happen to be using, and you should be allowed to have the same screen layout everywhere. Ergo, the three should be well separated.

Although it has been heavily criticized, X Windows remains in my humble opinion the only satisfying graphics interface. But it is not a user interface so it should not be compared with what is not comparable. The user interface under X Windows is the window manager, which may be many things, t(v)wm, f(v)wm, ol(v)wm, m(v)wm, or more fancy things like kde or enlightenment. X Windows is quite capable of reproducing precisely the graphical user interface of Windoze. However, and that is the important point, this is not the only possible user interface. Moreover, since each user interface is to a large extent configurable, X Windows may look like anything and does not have a standard look - which is how it should be since X Windows is a graphics interface and not a user interface. Of course, if one does not like configurability one can choose, under X, a user interface that does not have so many configuration options.

Under Windoze, however, one is stuck with one particular user interface. I must admit that it is quite pretty but one can have different tastes - only one is not allowed to! (For example, one essential feature which I find seriously lacking is a virtual desktop.) What is worse, the uttmost confusion has settled between the kernel, the graphics interface and the user interface. One is not entitled to have the Windoze kernel without the graphics interface and user interface (this might be useful to run certain programs). Or to have the user interface without the rest of it (actually, one can, it's called kde, it's free, has nothing to do with Micro$oft, and runs under GNU/Linux :-)

Why Graphical Interfaces are Bad(tm)

Now the present discussion is not specifically against Windoze, though Windoze is one of the main targets. Actually, the first target here is MacOS.

So, what am I comparing? Well, on the one hand, a graphical user interface where one simply clicks on a disk to see its contents, and on the other hand, a text-based user interface with a prompt, where one has to type something like ``ls'' in order to achieve the same effect. A graphical interface is easy and intuitive to use: a three-year old will generally immediately understand what he has to do in order to achieve the desired effect. A text-based interface on the other hand takes some time to get used to, and also requires a minimal amount of intelligence (something mankind is reputed to have).

Now where is the problem? If a graphical interface is so easy and intuitive, what is the problem with it? It's simple, really: although to do something one can do one will immediately understand how, on the other hand there are things, and in fact, very many things, that one cannot do with a graphical interface. It would be possible, I guess, with enough perversity, to design a graphical interface that has Turing power, but that is not what I am talking about. The point is that programming languages are always text-oriented (except ridiculous degenerated pseudo-languages) and for a good reason. And a graphical user interface simply does not have Turing power, whereas a good text-based interface does. I can write a few lines in a unix shell to have it print the prime number and I challenge you to do the same with the Windoze supposedly so wonderful graphical user interface. (Of course, Unix does have a graphical user interface, but there is no issue there: one can open a window and, voilà, a text interface!)

But, one may argue, who cares about Turing power? One does not want to calculate primes at the computer prompt. Agreed, but there are plenty of other things, not necessarily related to Turing power, which one cannot do with a standard graphical interface, and which I have had the need to do at least once:

All these things I have done with the Unix shell, without writing a line of C, thanks to the many small and useful utilities which come with Unix and which nobody has thought necessary to add to Windoze.

Am I suggesting that the average user, say anybody's mother, should learn the complexities of the command prompt? Yes! In the first place, anybody's mother is not any more stupid than anybody, and I do not believe in natural abilities. The problem is essentially that people who design graphical interfaces have made us belive that this is the ``right'' way to use a computer. But this is simply not true. In the first place, contrarily to an absurd idea, it is for humans to learn the computer's language and not the contrary (and even then, our language is not graphical). This whole idea of communicating with pictures is intellectually harmful. A great number of thousand years ago man stopped grunting and started talking: that was difficult intellectually and even though most important concepts like ``I am hungry'' or ``I don't like you'' could satisfactorily be expressed by grunts, it was a great step forward and everyone agrees on that. Surprisingly recently, nearly everyone learned to write - even though some time before it was generally considered that writing was a complex task, better left to those who held the lore (and/or the power and wealth). But reading and writing is a complex task: for many purposes, pictures could have sufficed (and indeed, did suffice for a long time, when an inn was designated by the picture of a mug of beer). Still, almost everyone learned how to read and write. Now software editors would have us believe that everyone should not learn to program, that knowledge of how computers operate is better left in the hands of Those Who Hold the Secret Lore of the Hidden Source - that all you are capable of doing is clicking on www.microsoft.com. This is the computer equivalent of publishing picture books Because People Are Too Stupid To Read. Or perhaps even of going back to grunting. So, yes, I propose that even anybody's mother (she learned to write, did she not?) should learn to program and use the shell. Now if the governments would please stop trusting our children's education to people like Micro$oft who are actively trying to make them believe they are stupid! Besides, remember, people are fools but they are not stupid; so trying to write a foolproof operating system proves one is a fool, whereas writing an operating system that requires some intelligence on the user's part is the intelligent thing to do.

To summarize, Graphical User Interfaces are a good thing provided one is not a prisoner of them. They are a useful thing when they are used to provide several simultaneous terminals - or to view images - or if you are two years old - or if you have three arms so that using the mouse will not impede your typing speed - or when it is 3AM and you are two tired to try to remember whether the right option to cp is -r or -R - or if your keyboard happens to be broken - or if you're just a lazy ass. But they will never be a substitute for a command line.

An ideal graphical user interface will only do things that can also be done with the keyboard, by typing appropriate commands. In fact, it will do better than that: it will be able to print out what commands it is issuing, so that the user can learn to type commands by using the graphical interface.

Against Micro$oft as a company

Micro$oft and their clients

As far as all that I said up to now goes, the answer is easy: just don't use any Micro$oft software. In fact, that is exactly what I do, and I am proud to announce that my computer is Micro$oft-free. But it is Micro$oft's entire right to write worthless software and sell it for a fortune. If people are foolish enough to buy it, it's too bad for them and it's good for Micro$oft. Now where I don't agree any more is when Micro$oft uses some people's foolishness or ignorance and their own monopoly to impose their software on other people.

Take the example of hardware retailers: what Micro$oft is doing is imposing this one-or-zero condition, that is, either Windoze must come with each and every computer they sell, or with none. Consequently, people (like myself) who do not want Windoze on their machine must pay for it anyway. I have been told that the European Union has found this practice illegal.

A similar situation, for which Micro$oft is being sued by the american Department of Justice, concerns their pet product, the Internet Exploder. Micro$oft is abusively using its monopoly as an OS editor to favour its position as a web browser editor. This has been the downfall of Netscape - although with the unforeseen positive consequence that Mozilla has been made Free Software.

This goes the other way, also: Micro$oft uses its dominant position on the web browser market to favour its position on the OS market. By this I mean that Micro$oft does not release a version of Internet Exploder for GNU/Linux. (Of course, nobody gives a d... - and even that is not so certain, after all, it is permissible to like IE and not like W98, is it not? - but I'm talking principles.) But this is part of a more general strategy of systematically ignoring the very existence of Linux. So Micro$oft will even state some half-lies such as saying that the special effects of the movie ``Titanic'' were produced under NT - the truth is that some computers were running NT, but most were running RedHat GNU/Linux. I suspect - but I cannot prove - that the decisions made by a great number of companies not to publish Linux versions of their software is not so much due to the fact that fewer people use Linux (after all, adapting software is a comparatively easy task, so even for a small number of clients it is worth the effort) as to the fear of Micro$oft's ire. And indeed, Micro$oft should fear lest many editors publish Linux versions of their software, for, were that the case, the last valid reason anyone might have for using Windoze would disappear. If indeed Micro$oft has put pressure on other software editors for them not to support Linux, it is a very serious ethical fault on their part.

Even more seriously, Micro$oft is also putting pressure on the world's (and especially Europe's) governments so they should favour Micro$oft software for use in their educational and administrative systems. This is also quite serious; the propositions are not very honest as the governments are urged to accept the offer immediately or else never.

Worse even is the way users are being kept hostage of Micro$oft's products. If I consider it annoying for software to be proprietary, I find it highly unethical for data formats to be so. A document written in M$Word is the author's property, not Micro$oft's. But in practice, since the format is proprietary, the author can only read his document with Micro$oft tools. So moving to any other editor might mean losing all one's data! (In reality, that is probably not so, because the document format is really quite easy to decode, but it might become harder one day, so heed my warning. Besides, it's the intent, not the act, that counts.) This is a way of keeping one's clients hostage, and I can find nothing more despicable.

Micro$oft and the competition

Bill Gates is the modern Rockefeller. As the former Rockefeller did, Micro$oft uses its economic weight to crush its competition. In the game of poker, a player who is thousands of time richer than the others is sure to win if he lets the stakes rise to far more than the others can bid - and this, even if his cards are not good at all. This is the strategy which Micro$oft uses on the computer market. Rather than coming up with good products, they prefer to sell mediocre software at a loss, thus ruining their competition and acquiring an effective monopoly. When this is done, they can get their money back by raising the prices again.

This has gone so far that there are many terrains now where other software editors will not venture - they know that if they do, they will be either crushed or bought by Micro$oft. Anyone can imagine the consequences on the ability of the software industry to innovate.

Free Software is, of course, less directly menaced by these kinds of aggressive actions than proprietary software is - but it too can be endangered, since after all Free Software also can be commercial.

Micro$oft and their employees

I do not wish to dwell to much on this point. Just a few sentences for completeness. Micro$oft is very intelligent and extremely unethical in its treatment of their employees. These are very well paid, and well-cared for (free drinks, hobby facilities, etc). But the intellectual pressure is truly formidable. They are given goals which are set ever so slightly above what they can possibly achieve, and when they don't meet these goals, they are made to feel guilty.

A Brave New World

Now what might the future look like? Well, I can show you a glimpse of both two futures, none of which I believe will happen, but which are still possibilities. So here are hell and heaven - whose doors, it is well known, are adjacent and identical...

A possible future: Windoze 1984

BilG Brother is a powerful man: he has an uncomfortably large amount of money and he controls far too many computers on the planet. Suppose Windoze 00 (the version to come out in the year 2000) is a great financial success and he makes enough money to buy a couple of rival software editors. With the commercial competitors out of the way he would then turn to the Free Software rebels. Certainly, enough money given to the right people (like lawyers or, we might fear, judges or legislators) could make the Gnu Public License illegal and perhaps even the entire concept of Free Software. The whole GNU project and Linux with it would crumble in an instant and all the computers in the universe would belong to BilG Brother.

Adding a ``feature'' in Windoze to control and report the user's activity and interests is a trivial task once it is integrated with Internet Exploder. With computers becoming a critical necessity in a fastly developing society, the entire world is locked behind gates, caged behind windows. With the combined television-internet medium, BilG Brother would control every part of our lives, from hobbies to work. He would have himself elected chief of state or chief of government of a couple of major industrial countries, and establish a universal dictatorship. For a continuation, see Aldous Huxley, George Orwell, or Ray Bradbury.

The art of writing and reading would be forgotten as a now useless lore with computers able to respond to mouse clicks and to understand the human voice - and even grammar would be simplified to the extreme so that computers are able to understand the sentences. Opening a computer to see what's inside would be forbidden, and people would imagine programs as sophisticated little boxes with lots of wires sticking out, inside the computer - and the régime would keep that illusion because it makes people belive they can't copy them.

What a road ahead we have!

Another possible future: a Brave Gnu World

On the other hand, the number of Linux users is growing exponentially. It might overtake the number of Windoze users, and cause Micro$oft to lose a lot of money. More and more software editors would then publish Linux versions of their programs, which in turn would cause more and more people to use it and them. GNU/Linux and/or GNU/Hurd and/or *BSD would become the operating systems of choice for all the world's computers, and a very wide range of software would be available for them.

Even Micro$oft in turn would end up publishing software for these OSes, and perhaps Mister Gates would discover to his astonishment that he likes that - since the source is available he could have his private version of Linux if he wants, with all his favorite Windoze bugs in it :-) Now since the OS is free people would get used to programming their own little differences and would start preferring free software, so that only editors who sell free software versions of their software could survive, and all would eventually do that.

Everyone would have learned to program thanks to an efficient educational system, and this would develop people's intelligence. ``Old-fashioned'' computers (since Free Software does not make those obsolete) would be given to third-world countries which would thus have the opportunity of developping faster and participate fully in the World-Wide Wave. Contact with other peoples and other cultures would make the people on earth more enlightened, and the internet would offer the final realization of one world society where people's individualities are not lost. Naturally, Richard Stallman and Linus Torvalds would be made saints, but that is an inevitable unpleasantness: I hope they won't mind :-)

Related links

The arguments exposed in the first section are essentially those of Richard Stallman, so the best is to see the Free Software Foundation itself, and in particular this text.

A different but related institution is the League for Programming Freedom, that defends the right to write software (free or otherwise) and tries to help programmers defend themselves against software patents.

If you can read French, I urge you to read Roberto DiCosmo's wonderful tract entitled ``Piège dans le cyberespace'': it is a very lively and clear account and it is what prompted me to rewrite this page. It corresponds essentially to the arguments of the last section.

Also in French is Stéphane Fermigier's list of anti-Micro$oft material.

A much more virulent anti-M$ site is www.enemy.org : it contains many truly interesting pictures and essays. And there is a related mailing list, the anti_ms mailing list, to which you can subscribe by sending a mail containing "subscribe anti_ms" to majordomo@enemy.org.


Finally, it is most fitting and proper to give the Defense the occasion to speak after the Prosecution. This was the case for the Prosecution and here is now the case for the Defense.


[ENS] [ENS students] [David Madore]
[Mathematics] [Computer science] [Programs] [Linux] [Literature]

David Madore
Last modified: $Date: 2000/04/02 19:52:41 $