Years ago I warned readers that Microsoft was sacrificing stability for speed in Windows NT 4.0. It is now easy to see the proof for yourself. Tonny Espeset, game designer and senior Java programmer at a company called Eye One in Norway, wrote a Java applet that crashes NT 4.0 regardless of the Java virtual machine (JVM) you're using. You can find it at the URL http://www.eyeone.no/KillerApp.
This simple applet creates an instance of the Java-class Image and then draws outside the bounds of that image. This is an NT bug, not a Java bug, because a Java Image does not really exist as a native Java object. When you create an Image, the JVM actually goes straight to the OS and tells it to create its own native peer object.
The JVM therefore assumes that the OS is smart enough to prevent you from doing stupid things like writing graphics information outside the bounds of the image. Most OSes do prevent this, which is why this is only a killer applet in Windows NT. (I've found that the applet screws up Windows 98 as well, but not as seriously as in NT.)Speaking of Windows design flaws, what's with Rob Glaser, chairman and CEO of Real Networks? He licensed his Real Networks streaming technology to Microsoft and allowed Microsoft to buy a 10 per cent interest in Real Networks. Now he's complaining that Microsoft's Windows Media Player -- which uses the Real Networks technology -- makes itself the default media player when you install it.
The most amazing thing I find about this skirmish is that Rob is an ex-Microsoft employee. I can only assume he was out sick the day Bill Gates defined the three-step Microsoft business plan:
1. License, borrow, or imitate technology2. Tie the Microsoft version of said technology to Windows3. Write eulogy for originator of said technology.
Despite this well-known business strategy, Glaser has mobilised some 20 companies to back an "Ask, Tell, & Help: Fair Practices and Conventions for handling file formats in the Era of the Internet" initiative. The idea is to establish a degree of cooperation between competitors so installation programs won't automatically clobber the default settings of some other programs.
What makes this initiative totally ludicrous is the fact that the tendency for one program to clobber another in Windows is a result of the brain-dead method Windows uses to associate programs with files -- file extensions.
Read my lips. There is no earthly reason why Windows should still rely on file extensions to know what program to use.
You should be able to associate one .ra file with the Real Networks player, and another .ra file with the Microsoft Windows Media Player. Don't blame it on backward compatibility requirements either. OS/2 solved this problem ages ago without breaking backward compatibility. It simply uses file extensions to identify a file as a last resort.
This is not rocket science, folks.
To prove it, I hereby issue this challenge to Microsoft: give me complete authority over your OS divisions for six months and I guarantee that I will fix both the file extension problem and DLL hell forever. (From a technical perspective, this is only a two-week effort, but given the inability of Microsoft to deliver anything in a timely manner, six months ought to do the trick.)To sweeten the pot, if I am truly given the full cooperation of the company and can't accomplish these two goals in six months, I promise to never again say anything bad about Windows for the rest of my career.
But, Microsoft will not take me up on the offer, and I'll tell you why.
These problems still exist in Windows so Microsoft can leverage them to gain a competitive advantage. You can trace almost every story about Microsoft breaking this or that application to either a file extension association or to the fact that a Microsoft program overwrites another program's favourite DLL file. (Yes, the technique works for competitors, too, but when you own the OS and the most popular office suite, you get final say over such things.)That leaves me with only one question this week. I understand why Microsoft doesn't fix these problems. But why do you, as IT decision makers, continue to put up with this nonsense?