Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror

Comment Generic Non-Crap List (Score 5, Insightful) 558

Considering that Java has been (probably) the most used language for a while, you get a lot of crap. So, here's my "crap filter" list of what you should learn to really hop into the JVM ecosystem.

Books:

  1. Effective Java, 2nd edition, by Josh Bloch

This covers most of the twists and turns of the basics that an experienced programmer would need. I wouldn't worry about getting a simpler book.

  2. Java Concurrency in Practice

Understanding the JVM model of concurrency is important, and this is the only guide that had a pretty in-depth look into the subject. The Sun documentation absolutely sucks at covering concurrency.

APIs

  1. Guice http://code.google.com/p/google-guice/

Dependency injection is the most recent thing that makes Java a very powerful language for building large appications. And Guice is by far the best implementation of DI. (Yeah, you could learn Spring, but I just don't care for it.)

  2. Hibernate http://hibernate.org/

I hate Hibernate. But it basically set the standard for EJB3. If you know Hibernate, it's not a very hard road to learn all the other "enterprise" crap.

On the other hand, any substantial server-based solution probably uses a ORM solution like Hibernate.

  3. Apache's Commons http://commons.apache.org/ and Jakarta http://jakarta.apache.org/

There is a ton of projects under the Jakarta umbrella these days. The first one to try out is the commons-lang libraries, which provide very easy to use toString. equals, and hashCode implementations that are 'good enough' 99% of the time. Why do you need those? Read Effective Java. :)

Interesting stuff:

  1. Hadoop http://hadoop.apache.org/

Hadoop is an open-source implementation of Google's MapReduce idea.

  2. Scala http://scala-lang.org/

Scala is my favorite "non-Java" JVM language by far. For me, the scala interpreter is how I learn APIs. In fact, most of my new code is in Scala, not Java.

  3. Groovy, JRuby

Just some more used non-Java JVM languages. I've used JRuby a bit, but have moved on to Scala. It's still a significant project, however.

  4. Web application frameworks: Wicket http://wicket.apache.org/ + Databinder http://databinder.net/

Wicket is the simplest page-based Web framework I've ever used. I just find it easier to navigate than Rails. If you really want an ORM-based solution, go for the Databinder extensions. Databinder will get you coding in a couple of minutes.

  5. Restlet http://restlet.org/

We have several different clusters, and a bunch of machines that need to transfer data around. I learned how to set up a restlet server that was integrated with Guice in a couple of hours, and now, have a very easy means to script together many different servers.

Slashdot Top Deals

The secret of success is sincerity. Once you can fake that, you've got it made. -- Jean Giraudoux

Working...