Saturday, July 29, 2006
Programming 101: One Choice is a Good Choice (IDE and Framework of .NET, Java, PHP and Ruby on Rails)
Sometimes, don’t you get tired out of choosing and making decision? Wouldn’t it be nice if someone helps you made the decision and provides you with a nice selection of goodies, if not the best, it would still be among the best? Though what I had just said would apply to most of our life, but what I mean is programming framework and IDE.
In software development, we have to choose our language, may it be C/C++, VB, C#, Java or even some less mainstream language, such as PERL, Phyton, Ruby, PHP, LISP and probably a few hundreds more. Choosing a good programming language to learn is already quite a headache, and each is supposed to be good at solving their own domain of problems, and some are more popular for specific industries. So, you have to pick up a few languages for yourself, some chosen based on what they taught you in college, some based on popularity and demand, and some based on you personal preference.
Let’s not dwell too much into the Languages itself (perhaps in another post for that), our focus here is development framework and IDE. Framework is like an architecture, foundation and design which we develop our program, which might consist of MVC (Model-View-Controller), ORM (Object-Relational-Mapper), Internationalization Support, a good arsenal of code libraries and etc. I am not here to compare frameworks, but to point out the choices of framework for each language, and what are the current state caused by the choices. BTW, it is based on my experience and most probably I will not be able to covers all the options we have out there.
I am trying to follow the mantra that one choice is actually a good choice, meaning it would be better to have a single framework and IDE leader, rather than to have a whole bunch of them making choices difficult. One must stand out, and be far ahead than the rest of the pack (not just by one or two steps). Though the single leader might not be the best approach, but at least it makes selection easier, increase adoption rate and get going into production rather than spend a life time figuring which to use.