Saturday, October 17, 2009

Open Source vs Microsoft

If you are doing programming for a living, chances are: you are using Java or using .NET.

Java is really about open source (and free) things. You can download the SDK, download IDE (Eclipse most likely), and you download everything else, including database (such as MySQL, HSQL), even your servers (Tomcat, JBOSS, etc). You didn't pay anyone.

But wait, there's more. You can download all sorts of frameworks, and all sorts of libraries from Apache. That impressive list of stuff keeps changing. I am sure everyone has hard time to keep up.

Waita minute folks, if it is open source, do you MUST know it? do you MUST use it?
Ok, ANT helps you make builds (pretty much with a batch file written in XML), something else came up: Maven, do you must use it? See, you will forever be SLAVE to open source.

One time I was denied a job interview, reason being "this guy do not have a lot of experience with open source things". Now that is an outrageous reason. Open source things can be downloaded and studied, but I am fortunately unlike you who is a slave to that. What one should look for is programming skills, not obsession.

If it is popular, does it make sense? Are you really sure using some wacky open source query language and crank out objects per table && XML description tables is actually better than the tried-and-true SQL? Oh well, go ahead get obsessed, your clueless company is willing to pay you $ to play with it.

My 2 cents about open source: experiment with those things, see if it fits your need. If so then use it, the goal is to make things help you. i.e. make it your slave. Not being a slave to it. Java is great for those who want freedom from the giant Microsoft.

Microsoft of course is the arch rival of everyone else making less $. Its one .NET platform, many languages is really redundant. VB has to be upgraded very significantly to work with .NET. Its difference with C# is really syntactical superficial. I am sure someone can write a code translator and convert between C# and VB.NET verbatim easily. The Visual Studio IDE makes it so easy to connect to DB and one can crank out a web application so fast. But I don't like the way it does AJAX. AJAX is really easy. Write an asynchronous call and wait for it to come back and then you do something with it. That's it!. Microsoft wraps it with so many layers. Visual Studio is so powerful, but it does come with hefty price tag but you can download trial version.

Java and Microsoft play catch ups. Java got portlets? Microsoft got Web Parts. Java got MVC frameworks? Microsoft now plays with its own MVC.

Which is better? You decide. But a programmer should not be bounded to a particular tool.

I have a dream, that one day programmers are not judged by mere experience with a particular (perhaps obscure) tool, but by programming skills and ethics. I have a dream, that interviewers don't ask obscure questions, but rather judge someone on their ability to learn.

1 comment:

Alex Mak said...

Exactly! I couldn't said it better.

Visual Stdio is a billion times better than Eclipse for developing C/C++ programs. Eclipse is slow and it will never work out of the box for C/C++ development.

Eclipse has no Java GUI painter like WinForms and C#.

For the record, I don't like Eclipse.