I have recently been asked by a student in America to help with a college assignment where he will be comparing and contrasting the views of an open source developer with those of a developer at Microsoft. Here’s what I wrote in response to his questions…

  1. What day to day work are you actively involved in with Open source software and coding? Do you ever find yourself being forced to work with Microsoft or other similar software during this time? Why is this?

In my day job I work for a systems integrator - in the past we have worked on a variety of systems, but most medium and smaller systems have been Microsoft platforms - both servers and clients.

The bigger “enterprise” clients tend not to run Microsoft operating systems on their servers due to a variety of reasons - historical and legacy investment and knowledge, and the inherent stability of “enterprise” server platforms like Unix and AS400.

On the desktop we see almost total dominance by Microsoft Windows, with the vast majority of clients running either Windows 2000 or Windows XP - this is expected in the corporate/commercial world because on the desktop Windows is mature and there is a high level of user experience. Interestingly, (probably due to licensing costs) very few clients running Windows servers have progressed beyond Windows 2000.

In recent years there has been a definite shift towards Linux as a trusted and “preferred” server platform. As soon as you start talking to clients about stability, security, and standards compliance, Linux starts to score heavily against closed-source solutions like Microsoft Windows.

The common Linux distributions are still not “ready” for the coroporate desktop in my opinion, but the day is definitely coming. Perhaps when interfaces have similar “standards” to data protocols we will see the market open up.

  1. Is your preference towards Open Source style coding more ethically or technically based? What got you started with Open Source to begin with?

From the point of view of a software developer, ethically and technically, “open source” makes much more sense than closed source for a number of reasons, and the commercial world is slowly waking up to this following the emergence of projects such as Linux, Apache, MySQL, PHP, Tomcat, Samba and a multitude of others.

In a nutshell, open source code has the potential to be as good as it can be. There is no timescale, deadline or budgetary constrainy upon it. Authors and contributors to open source projects write their code with the knowledge that an international community will be looking at their code, and be peer reviewed, tested and possibly re-used by a hugely diverse group of developers on a yet more diverse number of platforms.

  1. What are some specific advantages that you feel Open Source offers that closed-source companies lack?

Apart from the idealogical point raised above, there are a number of advantages to the open source development paradigm;

Code is shared between projects. If a project has a good way of doing a particular task, there is nothing to stop you from borrowing the method employed for another project. This relies on the open source community’s willingness to pool knowledge between companies. This can only happen because open source encourages companies to sell their services rather than the software product; therefore there are no real issues to do with sharing intellectual property rights. It comes down to the classic theory that has been bourne out in the world of economics - “if everybody plays to help everybody, everybody wins”. In terms of open source development, if you write open source applications, you contribute to the pool of applications that you may also take from. Those applications can be used in solutions that you wrap services around. The commercial world are almost always looking at the service - not the product.

The engineering ethos behind the great majority of open source projects is that software applications should be discrete, efficient and targetted at their specific use. Applications should also be able to communicate either with the user, or with each other. By following this line of design, you have many small applications that may work together to perform complex functions. Small applications are easier to write, easier to test, easier to optimise, easier to port between platforms, and easier to maintain. This flies in the face of the monolithic culture that exists in the world of Microsoft Windows, where applications are often huge, unstable and highly dependent on specific versions of underlying platform architecture (we commonly hear the terms “bloat” and “bloatware”).

  1. Is there anything that would make you change your preference? What can companies such as Microsoft do to place themselves in better standing with Open Source coders?

Unfortunately, Microsoft find themselves travelling into a dead end of their own making. It is very difficult to see how (in the long run) they can “take on” the open source projects. Their corporate competitors such as IBM and Sun are almost certainly winning the “long game”; here’s why…

Microsoft sell products. They sell boxes and pieces of paper (licenses). Every so often they need to re-sell you the box or piece of paper to make money. The people who have bought these “boxes” are slowly waking up to this fact (partly explained by the vast majority of Windows servers running Windows 2000…. five years after it’s release, and despite colossal advertising campaigns).

Alongside Microsoft becoming world leaders in their box and paper shifting business, a strange thing happened. The client server model returned. Companies realised that they were wasting huge amounts of money maintaining fantastically powerful desktop computers with poor security, poor stability, and far more power than was actually required. An old ethos also returned - industry wide standards compliance, this time in the form of protocols and markup languages such as TCP/IP, HTML and XML.

Suddenly we have the possibility of powerful servers feeding standards compliant clients - and if the servers and clients are standards compliant, they don’t need to be running software written by a specific company.

That’s really bad news if you’re selling a closed source operating system, closed source applications and trying to keep your file formats closed source. The industry wants things to be open, and standards based. It protects the industry’s investment and ensures efficient integration between disparate systems.

It’s really bad news for Microsoft. Unfortunately their big competitors sell their services first, and their products a distant second….

Categories:

Updated: