People have asked me why is it that I have a problem with Microsoft, for afterall, I did work in MS in the late 1980s.
It is really quite simple. Time for a small story. I first started using PCs when I was working in Automated Systems PL (now known as CSA Automated PL). That was in late 83/early 84. We had taken on the distributorship of Corona PCs. As any good lore needs, the machines were really state of the art of that time – 8088-based, 4.77MHz, 64K or 128K bytes of RAM, 5.25 inch floppy drives (2) and for their higher end machines, a 10MB full height harddisk, green or b/w screen.
And life was good.
I quickly became the in-house “guru” of these PCs. It was realy fun – having to haul a Corona luggable machine (boy those were damn heavy) home was a privilege.
It was running MS DOS 1.1 and then became MS DOS 2.0 which suppoted directories. Wow, stuff from the Unix world which I was dabbling with as well running Venix for a 8088 machine as well. Actually, I am not sure if it was a 8088 machine or an early 80286. What impressed me about Venix was that it was multi-user. That made sense to me because we did not have machines on our desks (individual use machines were not there anyway).
Let me fast forward to 1988 when I was offered an position in MS under their co-op student program (I took a break from graduate school at Oregon State University). I did not plan on working in MS, but when it happened, it was a thrilling feeling – here I am being able to work for a company that was defining the use of technology.
I was part of the Operating Environment (openv) which was providing technical support for MS and PC DOS, Windows 286/286, MS OS/2 and the Windows 286/386 SDK (and indirectly the MS C compiler needed for the SDK).
My first office was at MS in Redmond (building 12 if I recall correctly), but we got relocated to Bellevue (Bellevue Plaza I think) becase of space constraints.
As part of the package, I was provided with a PC, a 80286 machine with 512K RAM, a 40M harddisk and a floppy drive. We had a monochrome monitor with it (connected via a Hercules hard). Some of my colleagues decided to upgrade the machine (we had to pay for it ourselves), and we bought a VEGA VGA card and a NEC MultiSync colour monitor. Running stuff in colour made more sense as it made tech support much better. Thinking back, I am wondering why MS did not pay for that upgrade – I think we had access to a colour workstation but that was not to be taken home.
Anyway, providing tech support to the people calling in about the Windows 286/386 SDK and the OS/2 Presentation Manager was very challenging to say the least.
Learning event-based coding was the first major change for me – considering that all my previous (upto 1988) coding was either in assembly, C or Pascal on a DOS based platform. The closest to event-based programming was in the device drivers and ISR (install but stay resident) types of coding I did. The fact that there was an event queue being managed by the “OS” was kinda new to me. Even the coding I did on some AT&T 3B2 UNIX machines were standard stuff.
The whole point of this history is to lead to the way we had to provide support to ISVs. When PSS (Product Support Services) gets a call – and it was not a toll free number – we are able to look up answers in the Knowledge Base, via a text-based vt100 terminal emulation – yes, we had to telnet into a VMS (I think). [Boy all of this writing up is bringing back some fond memories!]
When kb returns with answers to a question, you then are able to read off from the screen and determine if that helps the caller. While it was good that the kb was there to help, there were – perhaps 3 or 4 out of 10 times, a section on the kb article that was entitled “Microsoft Confidential”. What that meant was that anything following that heading was not to be shared/revealed to the caller. Inevitably, it would contain something like the information provided in the kb might be invalid in a future release of the product or that it is an undocumented aspect or something like that. But what was bothersome was that I could not tell the caller of this caveat as MS wanted to keep it secret. Now you know why you will find books entitled like “Undocumented Windows Function Calls” etc. MS wanted to keep some of the APIs, function calls for itself and not share with people whose applications were helping sell windows or os/2!
This level of dishonesty was bothering me and this was being done when MS was still an underdog with the big bad guy being IBM.
For what it’s worth, I decided to leave MS even though I was contemplating working in their LAN Development group. That group thought that TCP/IP is a university research project and the way you should do networking is using NetBIOS/NetBEUI!!
So, there in lies the seeds of how I got to a point of not trusting MS in what it does. The sad thing is that there are great people in the company – coders, testers, etc etc etc. And, yes, the money could have been good, but I think my conscience had the upper hand!
Over the next 10-15 years (1990 onwards), MS continued with it’s predatory practises in technology by acquiring companies perceived as a threat and then either killing off the technology or repackaging it. An example of the latter is Visual Basic from Cooper Software. I thought VB was cool – it helped people develop apps quite easily for an event-driven enviroment, but the way MS has “extended” it without thought to security is where MS has failed.
I hope that I can begin to like MS. Heck, some of my good friends work there. I hope that MS will do the following:
* Document and publish all the document and network standards of their products – word, ppt, excel, smb to name just 4.
* Stop charging the Microsoft Tax on the OEMs when they ship PCs from the factories. Let the OEMs ship what the customers want in the computers and pay the MS tax only for those that have MS products installed.
* You may keep your application code closed and proprietary, but let’s compete on implementation. If you want to open source the code, be honest about it and make it fully OSI compliant – not the sham that is “shared source”. Shared Source is a lie – see no touch. It seems to fool some countries and governments, but not for long.
So, I do not really hate Microsoft – I just do not agree with their business practises and principles. They can become the good guy quickly too. They just have to try to be honest.
In the meantime, I will do all that it takes to make sure that everyone I can cajole and influence understands the issues at stake and consider running Linux and open sourced products.