Saturday, November 19, 2005

The Anti-Microsoft World

Nowadays it has become fashionable to blame Microsoft for almost any problem with your PC, be it software or hardware. People think it is prestigious to hate Microsoft. By hating them you think that you belong to the Linux/Unix geek group. And since being geek is thought of like being sexy, many people are using this anti-Microsoft propaganda to prove themselves that they are geeks.

Hey, I too blamed MS while I was in college. Needless to say that at that time I had little experience with Windows and we were seduced by the charm of Unix. But after working in software industry for more than three years I have started to think otherwise. First of all, let's thank Microsoft for making Windows so popular worldwide. It is because of its popularity that much of the application software is written for Windows and not for Unix. That creates a lot of job opportunity for software developers like us. If there were no Windows there wouldn't have been sufficient demand for application software by the Unix community (limited to universities and corporates).

I find it silly that people who use Office, IE and Visual Studio tend to blame Microsoft recklessly. Just try to imagine your life without these applications and you will know what is great about Windows. For those in print/publishing think about life without Adobe apps. I believe that at least users of these applications should not hate Microsoft.

I agree that there are lot of security issues with Windows, but same is the case with any other OS. Bugs are a general feature of any software and are not limited to the ones developed by MS. After introduction of NTFS in Windows 2000, MS ensured file system security and in this respect it is much better than the file permissions of Unix world. And since the XP SP2 update, it looks like the Microsoft guys are taking security issues very seriously.

But the great gift which Microsoft has given us is the Win32 APIs and COM. Win32 APIs deal with graphics and user interface and system level functions on Windows. These APIs are designed to be developer-friendly. The names of the functions and their syntax is much better compared to the system calls and other APIs on Unix. If you compare the X11 functions for graphics on Unix with the APIs in GDI32.DLL (Windows graphics API) you can see the perplexing nature of X11 functions.

With introduction of COM Microsoft created a new paradigm of component based software development. Almost all applications (IE, Office, Media Player, Acrobat, Real Player etc) use COM. In crude terms COM is an extension of the C++ polymorphism (which is the base of OOP). In COM an application is divided into independent components and only the interface between the components needs to be adhered to. One component is totally unaware of the implementation details of the another component. And this is done at binary level, so while developing one component you just need the binary (DLLs) of other components and not the source code. However there is a catch here. If there is a bug in one component, it will be visible in all clients which use the component. Much of Windows bugs are related to buggy implementations of COM components.

For the developer community Microsoft has created Visual Studio which is unparalleled. Developing applications is damn easy with Studio and none of Unix apps/tools are even 1% near it. Thanks to Qt GUI library that you can write good applications in Unix and even then Qt apps on Windows look much better than the ones on Unix.

The one thing for which Microsoft should be justly hated is their anti-competitive monopolistic strategy. The way MS created anti-Linux propaganda is very disgusting. Instead they should have improved their server OS to compete with Linux. And now they are fighting with Google. Why don't they simply embrace the internet and compete with Google? They have already won the desktop and I believe if they work hard they can have a good chance in internet services. Suing Google over recruitment of an employee is too much for me. An employee (or his brain and experience) is not a property of an employer and one should not use legal means to keep employees. Such actions frustrate the employees to great heights. Rather Microsoft should try to win employees by providing them good work and salary (like Google does).

To conclude if you wish you can hate Microsoft, but at least know the proper reasons for hatred. Don't hate MS just because the guy next door also does the same.


Anonymous Captain Jack Sparrow said...

I like and totally support the point -
"If there were no Windows there wouldn't have been sufficient demand for application software by the Unix community (limited to universities and corporates)."

Windows learnt as well as copied a lot from the OS for Mac, and then they improved on it. Its about learning the good points of others, and thats what unix/linux community should try to do, and not propagate anti-microsoft stuff. And Microsoft should keep on improving. A very good example of what Microsoft did to the OS world is what GOOGLE is doing today to e-mail. The critical factor is to always improve and innovate.

Another great achievement of Microsoft is the COM model; if a program doesn't use the COM framework or the .NET framework, then it isn't worth being called a windows application.

As an operating system, I really like windows, but with unix/linux you can tinker a lot more, even a beginner can tinker with linux.... but in case of windows you need to be atleast a novice at hacking to do something. So for my desktop it will always be two OSes - Windows XP and Linux.

But this windows-linux clash atleast gives us the oppurtunity to see some creative anti-propaganda - don't you agree?

10:41 AM  

Post a Comment

<< Home