Why Microsoft is winning
Developers
Microsoft is by far the most developer friendly software company in the industry. Like no other company, it is so easy to start developing software for their platforms because they provide you with everything you can possibly need, from tools to extensive documentation, and mostly free of charge. And even if everything that is free is not enough for you, you can take part in the partner program I mentioned earlier, and apply for the ISV empower program which helps small ISV’s to get started with developing software for Microsoft platforms. For less than $600 you get everything you can possibly need to start developing your software and many other benefits.
Microsoft being so inviting to developers and caring about developers is why today we have a lot of software for the Windows platform. And this ofcourse contributes a lot to the popularity of Windows. And you can see that Microsoft is constantly looking at how they can invite even more people to develop for Windows and make it easier for them to obtain the tools that they need. Visual Studio costs a lot of money if you want to develop professional software, and students for example would not be able to afford that to start learning to work with the tools they will later have to use. I remember years ago when I was around 18 years old, and I wanted to start developing Windows applications. The problem I had back then was that as a student I could not afford even the standard edition of Visual C++ 4.0. Fortunately I had some really nice cousins who supported me and bought me a copy of Microsoft Visual C++ 4.0 so I could start learning to develop Windows applications. Today all the 18 year old beginners are luckier than I was, because Microsoft is going to release free express editions of all the development tools in Visual Studio 2005. Even an entire database engine is provided free of charge, which can be distributed to your clients together with your application! Later when I got access to the Internet, I was amazed at how much resources were on Microsoft’s Developer Network website just waiting there for you to use them. Microsoft now has entire online communities of professionals helping eachother and everyone else who is interested in developing for any of Microsoft’s platforms. With all of these things, today Microsoft is planting the seeds that will deliver the next wave of developers in a few years to take advantage of their platforms.
It is no secret that Microsoft’s development tools are the best available today. A lot of thinking goes into the design of the IDE’s to make life easier for developers. Microsoft also listens to developers and encourages them to give feedback through public betas to make sure they develop a product mostly everyone will like to use.
Occasionally Microsoft does manage to screw up, as they did with .NET. In the past Microsoft has been very clear and consistent about their technology and what developers should target. Ever since the introduction of .NET it has been going downhill in my opinion. At first nobody even knew what the hell .NET was, and why you should program for it. New tools came, VB.NET, C# and the CLR but it wasn’t very clear why we should go and develop for the CLR. The managed API wasn’t even mature enough, and even now it’s not very mature. A lot of things are still missing, and only now has Microsoft begun to bring important things to managed code. Previously you had to go through a lot of pain (pinvoke) to be able to use certain things which were not yet available in managed code. Yes, I think the ‘p’ in pinvoke stands for pain. So as a developer, back then I wondered why the hell I had to move to managed code when I could do things a lot faster in native code, without the limitations.