I am new to Java. Its only been six months but I do understand Java.
While reading about it sometimes, I come across these terms - Groovy, Grails, Hibernate, JBoss, Jade and many more.
I know I can read all about them individually. But can somebody give me a treetop view of what is happening here? What is all this? We have Java and these are based on Java? Why so many things? Why do we need them?
To answer why we have them: programming languages are not enough. If you were to tell me at an interview "I know Java" but didn't know about things like Hibernate, Spring, log4j, JAXB, etc. I would say you don't know Java. That's because no one builds applications with just the core language any more. They reuse frameworks and components so they can spend less time developing infrastructure and more time solving business problems. So, Hibernate, JBoss, and Jade are reusable frameworks or platforms for the Java language. Similarly Grails is a framework for the Groovy language, both of which support integration with Java.
It's a cool time to be a developer, but there is also so much to learn :-)
The Java Posse actually talked about this briefly in one of their recent newscasts. In many programming circles, there is generally one major library or framework for a particular purpose (Python tends to be like this). But in Java, there is often more than one, as you mention. They speculated that this is because the Java programming community is so big that there simply is room enough for more than one major solution to the same problem.
Having said that, the projects you mention are all actually designed with different purposes in mind.
If you have the inclination to listen to podcasts, I recommend The Java Posse for their entertaining look at new technologies around and related to Java.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With