Saturday, July 29, 2006

Programming 101: One Choice is a Good Choice - Java


Java is a language, not quite a framework. Java is pretty much community-based, meaning they don’t come with an IDE or Framework out of the box, and depends on the community and market to develop them, and prominent is based on natural selection. In terms of IDE, there a probably a handful of them, mainly
Among the above probably the most popular is Eclipse, because it is free, pretty good and with a wide array of plug-ins. Though eclipse might be the mostly popular, its prominent is followed closely by NetBeans (free), JCreator (fast and lightweight) and other Vendor-supported tool such as IBM and SUN for Enterprise Application Developer. Now we have more options and more headaches as well. Small and independent developer would like Eclipse, and some might opt for NetBeans and JCreator instead. Those giant software or consulting house might like IBM and Sun Java IDE, because of their supposing Enterprise-level support and tight integration with their product stack. Not to mention probably another hundred or so big and small Java IDE is out there.

Perhaps natural selection will finally reach its stable stage at the end, with perhaps one supreme prominent player, followed by 2 or 3 sub-players focusing of niche market. But at the moment, it seems to be a headache for programmer to decide on their IDE. Though most would go with Eclipse, but the next company you work in might likes NetBeans or Sun Java Studio Creator. Though Eclipse is good, but it depends heavily on its plug-ins to be great. Thus you need to make decisions again on which plug-in to use, where to find them, what is available out there and which one is actually good.

Java Framework, it is like a framework war out there, gods knows how many are born and died everyday. Luckily, the few prominent one seems to be
  • Spring (powerful, configuration management, but include many other goodies as well)
  • Struts (MVC)
  • Hibernate (ORM)
Nevertheless, there are still many popular options out there, such as: Cocoon, WebWork, Tapestry, Turbine and etc.

These frameworks are good and powerful, but sometime we are just overwhelmed with options, which means more research and trial is needed to select out own stack of development framework. It is extremely painful and time consuming especially for newbie and it confuses us at times. Though there are projects such as Appfuse which put together a framework stack for us by selecting some of the industries best, but there is still a lot to pick, configure and learn. I am not a perfectionist, I just need someone to tell me what is best, and I will learned and use it with a lot of support of resources. Having someone tell me, “A is good, but B is pretty nifty as well, perhaps you should look at C as well” is just not helping me. Yes, I am lazy, give me a good development stack, with a good IDE and lost of support and resources to start with. Arghhh! No more options and research please.

Java's community a very strong, thus able to churn out all kinds of frameworks targeting different purpose. But there are a lot of components to pick up and assemble. Not only we have to pick a framework, we are actually picking a framework stack (a framework whichs consists of a lis of frameworks). There is a lot of evaluation and decisions to me made here, and options are plentiful. Somehow, I am not very fond of such vast amount of options and components.


No comments: