Monday, August 31, 2009

In Defence Of Microsoft

I’m sick of hearing people bag Microsoft for Vista, Windows 7 or Windows in general.

You read one article that says Vista is bad and no one should upgrade to it because it’s incompatible with a lot of old applications. People get all up in arms about older applications that don’t work and how Vista is useless as a result. Next, you read an article that says Windows is bloated with too much legacy code for backwards compatibility and asking why Microsoft doesn’t make a clean break and ship an OS that is entirely new, has no legacy code and therefore only works with new applications. After all, Apple did that so why can’t Microsoft ?. The answer to that question has to be, “Because people like you keep writing articles saying not to upgrade to an OS with only 70% application compatibility… how do you think the press and users would react to an OS with zero compatibility ?”.

Not to mention the fact that Vista has been out for years now, and was available to most ISV’s and IHV’s long before it shipped, so there’s no excuse for not having a Vista compatible version of your product, except perhaps if your application was written in DOS and performs direct memory access or other low-level functions that might not be allowed. In that case, it’s past time for a re-write anyway.

Of course Apple did create a new OS that wouldn’t run any older apps (at least not without virtualisation)… but they didn’t get hammered the same way as Microsoft, presumably because of the different ways the brands are perceived. Although, the difference in the size and type of markets they’re each in might also have had something to do with it.

Application incompatibility also lead to Microsoft being taken to task by the EU. Microsoft changed the kernel to make it better, more secure. This should have been a win for the consumer. Of course "Microsoft changed the kernel to make it better, more secure. This should have been a win for the consumer." this broke existing security applications that required access to the kernel that arguably no software should have had in the first place, and then the EU got involved. Some conspiracy nuts claimed this was a deliberate attempt by Microsoft to use their ‘monopoly’ to put other companies out of business. This is of course nonsense, Microsoft isn’t big player in the security space, with the exception of the security it builds into it’s own products, and it had no reason to put anyone else in that space out of business. Most of the security focused Microsoft products like Windows Defender and OneCare are free or mostly free/cheap anyway. Not to mention that one of the main benefits of Windows is the ecosystem that has been built around it and that includes all the third party security suites.

Regardless, the EU got upset and started insisting that Microsoft re-open the kernel. Excuse me ? A private company should be forced to make it’s product worse, less secure, because it’s the interest of the consumer to have more choice ? I’d rather NOT have to choose between a hundred different security suites, and even if I do I’d feel a lot better knowing the underlying OS was as secure as possible anyway. Besides, more choice doesn’t necessarily make the consumer happier.

Don’t even get me started on the whole Internet Explorer bundling issue. No one is telling GM they have to offer customers wheels manufactured by Ford or going after Apple because iTunes, the largest online music store, is tied directly to the proprietary and Apple-owned iTunes software and iPod device.

Then you get those people that complain Vista is slow. Yes, it is generally slower than XP on the same hardware (although rumour has it on some really modern PC’s the reverse is true). However on any recent PC Vista is not so slow that it’s unusable. Even if you disagree, you have to admit that generally Windows 95 was slower than 3.1, 98 was slower than 95, 2000 was slower than 98, XP slower than 2000. At least assuming you were running hardware the same age as the older OS. Vista being slower than XP is hardly a surprise or a reason not to use it on modern hardware.

Microsoft probably won’t appreciate this, but Windows 7 will probably be the first Microsoft OS that is faster than it’s predecessor. Of course you still get people blogging about how, in performance tests, Windows 7 is faster than Vista but still slower than XP for Y test. So everyone complained that Vista was too slow, ignoring any other improvements it had, and now that Microsoft is shipping a new OS that has all those other improvements and is faster as well and we’re still complaining ?

"A classic case of damned if you do and darned if you don’t."No matter what they do, or who they side with, they can do no right. Just like the compatibility mode issue in Internet Explorer 8. At first compatibility mode was going to be the default, and everybody complained because they wanted the standards to take priority to make development easier. So Microsoft changed their stance and turned compatibility mode off by default, and then everybody complained that a lot of old sites wouldn’t work properly unless the user manually switched to compatibility mode, which was likely to make the user unhappy with the site they were visiting, even if they understood how to switch modes. A classic case of damned if you do and darned if you don’t.

Despite all this, tens of thousands, if not hundreds of thousands of users (including myself) installed Vista (and IE 8), found it to be perfectly workable or even better than that and got on with our lives.

Now you might think I’m a Microsoft fan-boy. I guess you could be right, I use Windows on all my PC’s and the company I work for primarily uses Microsoft tools, operating systems etc. But I wasn’t always this way. When I was ten or twelve years old I was no less a geek and I used to walk around my school playground with my friends saying how useless Windows was and how Microsoft had a lot to answer for. After all, they brought the evils of the user interface to the PC, and clearly the command line was far superior. I dreamed and spoke of how one day I would create my own OS that would rival Microsoft Windows and since it would be technically better in every way no doubt they would wither and crumble before me. Of course I grew up in the following fifteen odd years, and so has Windows. I realise now that Windows and the other Microsoft products are actually really good most of the time, that they’re complex systems (out of necessity) that are never going to perfect for all uses, and the products have improved anyway.

Besides, while I don’t want Windows to stagnate and die, it’s actually not the most important piece of software I use. I don’t really care about the OS…  I bet you think I’m going to say the web has made it irrelevant, but I’m not. I don’t like the web, web browsers or web development much either. It’s applications and development components that are important, whether it’s a browser, a web server, a game, a word processor, an IDE, a compiler and framework, a database engine, a messaging system, a graphics editor, a document reader or whatever. The OS is primarily there to make it easier to write applications, to abstract away hardware, task switching, memory management and so on. Computers are tools, to be used to achieve things whether that’s creating a business document, sharing information or entertaining someone. The OS is a tool to make it easier for developers to write the software to achieve these things, and to provide a user interface so users can start and manage their applications. Beyond that, it holds little interest.

Even if I am a fan-boy, at least I’m prepared to listen to other arguments. There are those that will reject anything to do with Microsoft on principle, it wouldn’t matter if they had the best system technically, and it was free, and it was open source, it would still be produced by Microsoft and therefore evil. These people will even twist statistics in their favour, like suggesting that a 41% adoption rate of Windows 7 is somehow a failure despite that fact that if this number holds true it would out do the adoption rate for XP.

I’ve tried non-Microsoft, open source and Linux based systems. I haven’t gotten very far with them. Perhaps I’m just too stupid. I tried to use MySql in a project once. I"I’ve tried non-Microsoft, open source and Linux based systems. I haven’t gotten very far with them. Perhaps I’m just too stupid." downloaded MySql to find the version I’d got had no GUI and I had to do everything including creating tables from the command line. I found that too time consuming, so I spent more time looking for a GUI. I eventually found one with great recommendations, but there was no compiled version available for download. I had to go looking for a C compiler (I wasn’t writing in C and didn’t have one), then figure out how to compile the GUI application. When I finally managed that, it didn’t work. The GUI came up and seemed fine but it got weird errors when actually trying to do anything, I discovered by reading the source it was effectively shelling out the command line programs instead of using a library to integrate to the database engine itself. I’m not sure what was wrong, but I can only presume the version of the GUI I had was incompatible with the version of the MySql command line applications I had, so I gave up and decided Sql Express would do.

I’ve also looked at trying to port the Point of Sale application I work on to Linux. We want a small embedded version of it, and we planned to use CE and the compact framework. Unfortunately CE isn’t Microsoft’s best work and is in desperate need of a major update, but they don’t seem to be doing this. The compact framework isn’t a whole lot better and I can’t even find any reference to a 4.0 version, so I looked at Linux and Mono as an option. Mono has grown a lot since I last looked and it seemed like it might finally be possible to do the port… but then I realised there is no Message Queue system. Technically, Message Queue isn’t part of  .Net, it’s part of Windows (so the Mono team haven’t built it), and as far as I can tell there isn’t a Linux equivalent. At least, not one single one I can trust that ships in every distribution of Linux, and that’s another question… which Linux do I use ? Wireless driver support on Linux is also apparently a problem (although much improved in recent years). Suddenly CE doesn’t seem so bad again.

There are of course hundreds of thousands of open source products, many built on Linux and MySql. I’m not saying those products are rubbish or no good, I’m just saying that Microsoft software also offers something… often something you don’t get with non-Microsoft products (including a long history of backwards compatibility, ensuring your own applications will typically work with the next release). People often tout Linux as superior to Windows and point to some specific instance (or with no evidence at all to backup their claims). I once saw that said Linux could serve files to Windows clients on a Windows network faster than a Windows server. That sounds pretty funny and you have to start asking yourself why anyone would use Windows if it’s so poor… and the answer is because it isn’t. That article focused on one metric, performance, in one area, file sharing. There was no discussion or administration, management, configuration, security, support for different kinds of networks and so on.

Microsoft isn’t perfect, and nor is Windows or any of their other products but neither are Apple, Google, or any of their products. Nor is Linux or any of the companies that develop and distribute it, but Microsoft are the ones with the most and most vocal detractors. Mostly people just take shots at Microsoft because they’re there, and they’re big. I guess it’s tall poppy syndrome.

So anyway, if you haven’t tried Vista just because you’ve heard it’s bad or got a negative reputation, then why not give it a look and make up our own mind instead of following everyone else like a sheep. Failing that, wait for Windows 7 and give it ago… it seems to be significantly better anyway, just ignore all those nagging ninny’s who insist on rubbishing it because it’s based on Vista or because it’s not quite as fast as XP. Make your own choice. You don’t have to like it, but you should have your own opinion and not parrot someone else's.


Technorati Tags: ,,,

No comments:

Post a Comment