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
- NetBeans IDE (Free)
- Eclipse (Free) / IBM Rational Application Developer
- Sun Java Studio Creator]
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)
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.