19 May 2010

Linux Software Development.

I came across this article by Steven J. Vaughan-Nichols regarding the the fact that Linux needs to do more for programmers and ISV's. He argues that Microsoft tends to do more for ISV's with better tools and resources.

Although I can see exactly where Steven is coming from I do not exactly agree. Now do not get me wrong I am not trying to start an argument but rather pass comment from what I feel is a fair position.

By day I work with the .Net framework and Visual Studio (2008). I can see the point that Steven makes regarding the tools and resources that Microsoft provide but I would argue that they have it quite easy. Microsoft are only targeting their own platform. They produce the OS, an SDK for that OS and a development platform that sits on top of that OS. Their tools while comprehensive are full of utilities to make life easy for developers and for novice coders.

Now take the Linux platform. At present there are over 300 Linux distro's on distrowatch. They may all share the Linux Kernel and there will be a lot of variations of other distro's but there will be a mass of differences between lots of them. Then you take the various languages and tool kits that are available compared to Microsoft's handful. Lastly you consider the difference in development methodology. Microsoft provide a limited set of tools to drive the adoption of their core business (the OS) and to tie people into their platform. Linux and OSS developers do it because they want to a lot of the time. The OSS community has spawned a business market and not, as in Microsoft's case, created a community from a business.

Non paid OSS developers will always choose the tools, languages and utilities they want to develop their software and they should have that right. However, ISV's should not feel that they are not catered for. Qt is a great tool kit that provides a level of abstraction that allows developers to create software that is truly platform independent and not only that provides a great IDE and a very detailed documentation package. Mono, love it or not, also provides a large framework that not only provides easy to use tools and documentation but provides an easy move into Linux development for companies that have previously been involved in Microsoft based development.

I don't think that while Linux is as fragmented as it is one company could stand up and provide for developers as Microsoft does. Instead of the LDN providing more comprehensive documentation and guides it should be the companies that provide the languages and frameworks that sit on top of Linux that should do more to push their capabilities and knowledge.

No comments: