Saturday, October 24, 2009

Don't use Java for New Projects - NFJS Day 2

Day 2 of the No Fluff Just Stuff (NFJS) conference here in Atlanta is over - It's been a good day. It has been another day of excellent speakers and topics. One thread you can see clearly throughout the presentations is:

Java's days are numbered as a language for new development - Viva la JVM!!

I got the sense that you should at least start thinking about an exit strategy. Stuart Halloway was even more outspoken: "Don't use Java for new greenfield development." (Saying that any of the talked about alternatives are better - Scala, Clojure, Ruby and Groovy).

After going to a few sessions that dealt with concurrency, I am certainly not inclined (border-lined scared) to do that kind of stuff in Java. The two languages most talked about at the conference were Scala and Clojure.

The nice thing is, that both language run on the JVM, so you can use the new language features, but are also able to use the vast power of Java libraries, if needed. Once drawback I saw is the fact that both Scala and Clojure can be fairly cryptic, which was an issue that was raised repeatatly by the audience and as well during conversations with fellow developers in between session breaks. Scala at least gives you the ability to write Java like code and then later on as you gain proficiency, you can make your code more concise . From a "power perspective", Scala looks awesome, though.

The sessions I atended to today were:
  1. Tackling Concurrency on the JVM (Venkat Venkat Subramaniam)
  2. Advanced Topics in JMS (Mark Richards)
  3. Clojure, Groovy, JRuby, and Scala (Stuart Halloway)
  4. What's New in Spring 3 (Ken Sipe)
Onto the last day now...


eric said...

That was a pretty provacative assertion. When you see the capabilities in some of the new languages, it does feel true, but I'm having a hard time figuring where to focus my development going forward. On a practical level, I don't see much call on the job market for people versed in Scala, Clojure or even Groovy. Maybe this will change over time. (Or maybe I'm looking in the wrong places!)

Gunnar Hillert said...

Hi Eric,

Yeah, I felt punchy last night at 1am and was able to only think of "Col. Tigh's" (aka Stuart Halloway) statement at the conference ;-) While I personally think that abandoning Java NOW may be a bit premature, I nevertheless feel that I may finally need to push myself harder to look for alternatives. At least for me, Scala looks like the most interesting, even though the conference's speakers seemed to have a preference for Clojure.

At least no matter what we all choose - we still do it on the JVM.

bros said...

call me crazy - but I think for a language to be a killer of java it needs to come with a set of library that is above today's java libs and solves a higher problem than what java does (java solved a higher problem than what c/c++ did by making a lot of things easier than they were in c/c++ - yes, you can write for example a socket connection in c/c++ but it's way more work than in java and yes, you can write a large web application in java but it would be way better to come with a full working and easy to modify web stack where you can build a blog/facebook site in way less time...) - I don't see any of the current java killer languages do that.

Peter Lawrey said...

I read the trends differently. ;)

Jobs paying over £75K/y on jobserve.
C: 689, Java: 656, SQL: 645, C++: 487, C#: 432

compared with

JavaScript: 175, PHP: 108, VB: 84, Ruby: 74.

Languages as popular as Fortran.

Groovy: 10, *Fortran*: 8, Clojure: 7, Scala: 1.

Ruby might be worth learning, but you would have to be very brave to choose a language as popular as Fortran for a new project.

Kevin Webber said...

I work at a bank, and I'd wager that more development will be done in COBOL than Scala for the foreseeable future. :p On technical merits alone Scala may be totally superior to Java, but most companies balance technical merits with things like risk, staffing, indemnity, etc. I'd totally build a blog about my bulldog using Scala, but it's going to be awhile before Scala is behind the scenes processing your latest stock trade. ;)