Back to kbase
Should you use Microsoft Windows?

I will attempt to present a non biased analysis of Microsoft operating systems.  This article will include the opinions of the author, Jeff Greene.  Although I will list some of the arguments that are being used against Microsoft, I will attempt to support those that I agree with and to discredit arguments that seem to be purely based on anti Microsoft rhetoric or can not be supported logically.  I intend to dissect Windows and present both reasons to use Windows and reasons not to use Windows so you can make an intelligent decision about your operating system.

First and foremost, you should choose software and hardware based on your needs.  Microsoft has done a wonderful job of creating a market and a demand for computers with consumers who otherwise may not have purchased a computer.

If you see a superscript number, it will link to a definition at the end of this article.  Click the link for more information.  There will also be a link to return to the section you just left.

Here are my arguments both for and against Windows based operating systems.

I believe that the worst thing about Windows (95, 98, ME, NT 4, 2000, and XP) is that third party software is allowed to modify core system files.  These files include dll1 files and the Windows Registry.

Problems associated with dll files.

A good example of the problems caused by dll files is found in the first job I had in the technical support field.  I worked for a regional ISP2.  Dial-Up Networking uses a dll named winsock.dll to establish a network connection to your ISP.  This is a Windows core and a system file.  (By core, I mean that this file is integral to the operation of your system.  Winsock is only used with networking though, so it is a core component of the networking subsystem of Windows.)  Other companies, especially in the Windows 95 era would often add functions that their software needed to the existing dll files, therefore if you installed a chat program, or a business application that dialed into the computer of the company that created the program they may include a custom winsock.dll file.  The problem is that if they did not coordinate their version with every other company that provided you with a custom winsock.dll, then some of your programs may not work.  Another problem is that most of the shared dll files are in the Windows\system, Windows\system32, or winnt\system32 folder.

As an example if you install the programs Superchat, and Business Contacts, and they each include their own version of winsock.dll ther are several potential pitfalls that can occur.
 

  1. Lets assume that Windows includes version 1.0.0.0 of winsock.dll.  Superchat installs 1.0.2.0, and Business Contacts installs version 1.0.1.0.  If you install Superchat first and Business Contacts second, the installer for Business Contacts must check the version of the files on your system and compare it to the version of any files that it installs.  If it fails to determine that you have a newer file installed, then the next time you use Superchat, you probably will not be able to connect, because you now have an older version of winsock.dll that does not include the functions necessary to chat in Superchat's chat rooms.  This makes the assumption that the makers Superchat and Business Contacts made sure that version 1.0.2.0 included all of the changes that were implented in version 1.0.1.0.
  2. Lets assume that Windows includes version 1.0.0.0 of winsock.dll.  Superchat installs 1.0.2.0, and Business Contacts installs version 1.0.1.0.  This time, it does not matter which order you install the programs on your PC because the manufacturers of Superchat and Business Contacts did not talk to each other.  Superchat's programmers may have arbitrarily chosen the version 1.0.2.0 or they included enough changes that they decided to skip 1.0.1.0 and go straight to 1.0.2.0.  In this scenario, the dll for Superchat does not include the additional functions necessary for Business Contacts, and the dll for Business Contacts does not include the additioinal functions that are necessary to use Superchat.  The only solutions are to try to find a newer version of winsock.dll and hope it will work with both programs or to rename version 1.0.2.0 to something like winsock.spc (spc for superchat) and version 1.0.1.0 to winsock.bc.  Each time you want to use one of the programs you will need to use the command "copy winsock.spc winsock.dll" to use superchat or "copy superchat.bc superchat.dll" to use Business Contacts.
  3. You sign up for a proprietary online service, or a service that uses proprietary software.  This could be Prodigy, AOL, Compuserve, MSN, or a normal ISP that has signed an agreement to use custom software.  Any of the following situations may occur.
I actually ran into this situation with a customer in 1996.  The customer was a doctor who had installed a program that was marketed to physicians and provided the ability to connect to the servers of the company that made the program.  Unfortunately their customzed version of winsock.dll was not compatible with the software our servers used, therefore we did need to rename the dll and copy it to winsock.dll each time he used either the Internet or the other application.

Other problems with Microsoft's implementation of dll files is that many of them can not be removed by the uninstallation program when you remove the program that installed the file originally.  Therefore if you format your hard drive and install several applications, then uninstall all of them, you will have less free space afterwards than you started with.  This may not seem like a problem now that we have 160 gigabyte drives, but software always grows to fill the available hard drive space.

The reasons that I dislike the Registry3 is as follows:

The Registry is the ultimate system file.  It contains the settings for your user profile if you have profiles enabled, all of the software you have installed, and the operating system settings.  Because it contains all of the settings for Windows, if it becomes corrupted, you may be unable to boot into Windows.  Although there are tools to backup and restore the Registry in all versions of Windows that use the Registry, some of these tools are harder to use than others.  Since every program that is written in the 'correct method' for Windows writes to the Registry, any program can corrupt the Registry.  Do you really want to take a chance on allowing your Word Processor, or a game to wipeout your operating system.

Other problems with the Registry include removing programs or fixing problems with programs.  When you uninstall a program, it often leaves a lot of it's entries in the Registry.  I can think of some good reasons to do this including:

Some of the problems with leaving the Registry entries behind include: I believe that many of the Registry issues could be resolved if every program kept a separate file of either your specific settings, or the typical installation settings.  Therefore if the registry became corrupted, you could shutdown Windows, delete the Registry, and restart Windows.  The Registry would then be rebuilt from the individual files as you launched each program.  The worst case scenario would be that you may need to reselect some of your settings such as the desktop color or the default save location for your word processor if it has that option.

The following is purely my opinion, however I am surprised that I have not seen it listed anywhere.  It will contain an anti Microsoft bias as there is no other way to present the argument.

The lie regarding the integration of Internet Explorer and Windows

Starting with Windows 95 OSR2, Microsoft has integrated IE 4 and later with Windows.  They claim that they can not remove IE without destroying Windows or at least making it much less of an operating system than it is.  This can not be true.

Assuming Internet Explorer is an integral part of Windows, how is it possible to upgrade to a new version of IE without replacing either your operating system or installing the new version to a completely separate directory than the original version of Internet Explorer.  Since Microsoft Claims that IE is so important to the operation of Windows, they should only be allowed to release patches to correct problems with Internet Explorer if they are not creating a new directory to install Internet Explorer when you upgrade.  This scenario would require that Microsoft release a version of IE for each Windows platform that it runs on, because since the original Windows 95 and NT4 did not include IE, it would be able to install any version of IE either as an upgrade or as a new installation, however since Windows 98 included IE 4.01, you would need to create a new directory for IE 5 and newer.  Windows 2000 and ME would need a new directory for IE 5.01 or 5.5, etc.

Other updates from Microsoft including the newer versions of MDAC4 require that an appropriate version of IE be installed before they will install.  This is ridiculous because if I have a server that requires ODBC to connect to a database, but it will never be connected to the Internet and I will not access an intranet with it, I should not need a web browser.

Other Problems

Too many updates from Microsoft can not be removed.  These include DirectX and the JavaVM.  If you upgrade your version of DirectX and find that the new version is incompatible with your video card, or sound card or any of your existing software, you can not uninstall it.

Common arguments that are not valid

These are arguments that I have read on other web sites and in message boards.




dll - dynamic link library.  A dynamic link library is a file that contains a library of functions that may be used by more than one program.  These files are shared between different programs.  A good reason to use dll files is that you do not need to include the code from the dll in every program that uses it, therefore you can make the programs smaller.  This is good because a company can make several program that all require the same functions and just have one copy of the dll files on your computer.  Return to 1.

ISP - Internet Service Provider.  Return to 2.

Registry - The Windows registry is a database of almost all of the settings used by Windows starting with Windows 95 and NT4.  This database contains the configuration for your personal settings such as the desktop colors, and wallpapers that you use as well as the Windows configuration, and the settings that every application uses.  These settings include which components are installed, your perferences for the software if it lets you change them, etc.  Return to 3.

MDAC - Microsoft Data Access Components.  MDAC is Microsoft's implementation of ODBC and OLEDB.  Return to 4.