Friday, June 27, 2008

JAZOON 2008, Day 3

The keynote was given by Joshua Bloch, Principal Engineer at Google. In Effective Java Reloaded he presented some chapters from the 2nd edition of his book Effective Java. Joshua talked about generics, enums and concurrency.
After the talk he was signing the book, Effective Java - 2nd Edition, which was exclusively available at Jazoon'08. So now I have a pleasure happy to own the book signed by Joshua Bloch! :)

After I've got my book signed I went to listen about the new features in Eclipse 3.4. After the release of Ganymede, there are some very cool features which I probably would like to see in IntelliJIDEA too! :)

Next, Dan Allen was continuing with Seam Framework related talk It's evolution, baby! Bijection deplaces dependency injection. It is a very promising concept on bi-directional dependency management which is widely used in even the simplest Seam web applications.

Later, Heinz Kabutz has shocked crowd with his blizzard talk about threading in Java - The Secrets of Concurrency. No one couldn't even ask a question! :)
Here's one useful idiom that I managed to put down:
try {
} catch(InterruptedException e){
It is funny that "idiom" and "idiot" are quite close - Heinz said :)
The last session I attended The Closures Controversy by Joshua Bloch. To be honest, I like closures ... outside Java! Really, if one is really eager to use these fancy syntactical constructs - there's JRuby, Groovy or Scala available - use them!
Here's just some of the facts I picked up from the presentation. Closures are/have:

  • hard to read

  • produce cryptic error messages

  • don't interact well with autocompletion

  • have two kinds of returns, whereas the real meaning of the return keyword has changed

  • unclear semantics

  • not thread safe

What is really wrong with the inner classes compared to closures? Only that you do not have to make a new class and don't have to create it with the new keyword? I think that inner classes are still better from what we could see with Java closures. Closures are for dynamic languages which can be used in conjunction with Java! So I'm strongly opposed to the idea of including this feature into Java language. Java has to stay clean! Unfortunately it has already been rubbished with the spoiled implementation of generic types :(


berto xxx said...

I like this blog. for real!

berto xxx

Anton Arhipov said...

@berto_xxx: just stay tuned! :)

Disqus for Code Impossible