Showing posts with label JavaOne2007. Show all posts
Showing posts with label JavaOne2007. Show all posts

Saturday, May 12, 2007

JavaOne Day 4 - Toy Show, Comparing (G)Rails and JavaEE, DTrace in Java

JavaOne 2007 is over, it's time to put the conference badge away and start working on the ideas that I was inspired with. It's a damn long list. I should ask my manager for a week off now (if not more) to have enough time to scratch the surface of things on my TODO list. Rama? :)



Friday was the Toy Show day. If you didn't attend, check out the video online, it was quite a show with a lot of interesting and inspiring demos.

From the sessions:

I went to a session called "Comparing the Developer Experience of Java EE 5.0, Ruby on Rails, and Grails: Lessons Learned from Developing One Application". Having a year of experience developing Rails applications and a couple of years on and off with JaveEE, I was mainly interested in seeing how Grails compares to these two.

The session was somewhat disappointing, mainly because the guys running the session were coming from the JavaEE world and all they were trying to prove was that JavaEE is still the best choice nowadays. Don't take me wrong, JaveEE is certainly a cool technology and has its place in the industry, but there are often better ways to solve some problems or parts of complex problems.

The worst of all was their benchmarking strategy. Comparing Rails running on WEBrick to Grails and JaveEE applications running on Glassfish and Sun Java System Application Server is nonsense. That's like comparing PHP application with Derby backend to JavaEE app with an Oracle or Postgres cluster as the backend. I think that there is a pretty good reason why Sun doesn't bundle Java with Postgres as Java DB but uses Derby instead. WEBrick has it's place in the Rails world, but it's certainly not a production server that scales well.

Also if you create a CRUD application in Rails using the scaffold method instead of the scaffold generator, as they did, you might as well recompile your JSP pages for each request in the JavaEE application to be fair. So the benchmark was flawed for many reason.

I wish they benchmarked the Rails app deployed on a recommended production setup or even more interesting would be to see how the Rails application deployed as a WAR on Glassfish performs. This is one of the things that is on my long TODO list to do after JavaOne.

I also went to a Java DTracing session ("Cranking Up Java Application Performance with DTrace"). Adam Leventhal, one of the creators of DTrace, obviously knew what he was talking about and Jarod Jenson, a consultant specializing on DTrace was truly amazing - throughout the session he was typing like a crazy monkey and DTracing applications in real time! If they make a video of this session available online, this is definitely something you want to see :).

It wasn't big news that it was possible to DTrace Java applications. The limited support was there in JDK 5.0, but with JDK 6.0 things have improved by heaps. There is a lot of new probes in the JVM and these probes can be enabled without even restarting the application! JDK 7.0 will bring support for creating user defined probes in Java applications. This will be a major step forward.

Overall JavaOne was really good, I had a lot of fun and enjoyed it a lot. Too bad that it lasts only four days. I'm already looking forward to next year's conference and I'm definitely going to do everything in my power to come again!

Thursday, May 10, 2007

JavaOne Day 3 - Consumer JRE, Ajax Security, Ruby in Netbeans

Todays highlights:

Roumen posted a blog entry about Sun's commitment to create "Consumer JRE". This is exactly what JavaFX needs in order to blow Flash away.

In the morning I attended Ajax Security session. The session didn't bring up anything new (un)fortunately, but it was a good recap of security pitfalls and best practices for Ajax development. The main message of the session was that Ajax makes securing web applications more complicated because of exposing more API and revealing many implementation details to the cruel world. The most important counter measures are:
  1. don't trust the client
  2. validate input
  3. encode output
  4. don't send sensitive (passwords) data in raw form over http
  5. remove comments from html and java script
Tor Norbye's session on Ruby tooling was pretty interesting. I had no idea that NetBeans was using Lucene search engine to make auto-completion and ctl(cmd)+space suggestions for dynamic languages like Ruby in NetBeans possible. Pretty smart :)

Btw, I've been using Netbeans 6 M9 as my main development environment for almost two weeks now, while working on numerious Java and Rails projects. The stability of this build is fantastic. I don't recall seeing any major or even minor issues.

Incredible Java2SignLanguage Interpreter

I never gave a thought as to what would it be like to be at JavaOne and couldn't hear anything. So it really amazed me to see that some (maybe all?) of the sessions at JavaOne are being interpreted into sign language.

Live translation into sign language is nothing rare. But when you realize how complex and highly technical most of the sessions are, it is hard to believe that it's actually possible.

I shot this video during Joshua Bloch's Effective Java session. Joshua is a great speaker, but he also tends to talk about pretty geeky stuff that a non-technical person would find hard or impossible to follow.

I applaud all these interpreters for the great work they do!


The video quality is not the best, but you get the idea :) I might shoot a better one tomorrow if I feel like it.

Wednesday, May 09, 2007

JavaOne Day 2 - JavaFX Details + Enterprise Rails

Another great JavaOne day is over. Today I did a better job of avoiding boring sessions like yesterdays Web2.0 profiling lab :)

Briefly some important info:
  1. Joshua Bloch did a great job at his Effective Java session. The presented Builder pattern (among others) is something I'll definitely use next time when the need surfaces.
  2. Colgate runs an internal RubyOnRails application talking to the SAP backend via SAP4Rails. It's more than likely that more Rails+SAP applications will surface in the near future, because SAP guys love how easy it is to build a pretty GUI with Rails. And I realized that I should be happy that I didn't become a SAP code monkey :)
  3. JavaFX or JFX (formerly Form Follow Function (F3)) details:
    1. in my understanding it is a wrapper around AWT, Swing and Java2D libraries, that uses it's own language to expose easily usable, yet incredibly powerful, API for building rich GUIs
    2. the language, JavaFX Script, is statically typed and as of now is interpreted, but the work is in progress to get rid of this 2nd level of interpretation in the JVM, which will speed up JavaFX 10-20x
    3. can be deployed as a J2SE app, Java Web Start app or an applet
    4. as an applet it weighs somewhere around 700k after PK2000 compression
    5. enables the building of truly amazing GUIs with a very little effort
    6. it is easily possible to transform SVG into JFX Script - that makes it possible to create a GUI based on output from tools like Adobe Illustrator
    7. since JFX is using AWT/Swing internally, it is possible to embed existing GUI components and display them via JFX. The same is true for trying it the other way around - embedding JFX elements into exising Swing applications.
    8. it's still a work in progress and I have a feeling that very interesting things related to JavaFX will be announced in the upcoming weeks/months

Tuesday, May 08, 2007

JavaOne Day 1 - JRubyOnRails and JavaFX



I'm back home after the first day of my first JavaOne and I feel incredibly good. Seeing these thousands of geeks (just like me :)) trying to suck in as much info as they can, while talking about all these cool things that "normal" beings would not even remotely understand. Feels like a geek heaven :))

Overall the day was pretty interesting:
  1. I was happy to meet my team mate Matthew in person.
  2. The DJ that warmed up the crowd before the keynote, reminded me how much I like electronic music from which I got side tracked from for unknown reason. I should blame my friend Monicka influencing me with all that good jazz that she was loading me up with lately.
  3. The keynote was pretty good. IMO I think that Apple does a better job at orchestrating keynotes so that they feel little more exciting though (at least from what I saw online). I'm not saying that it was boring or anything like that, just stating that there is still some space for improvements. ;-)
  4. OpenJDK is out - good job!
  5. JavaFX - think Flash/Flex/Silverlight/AJAX "killer" :) - new technology announced today during the keynote, looks promising. From what I saw I think that this technology has a great potential. Based on experience I got while helping out on the zoom23.com project, I see that AJAX/DHTML has its limits. When creating RIA it is very easy to reach those limits and start to struggle performance-wise. I know that Flash is out there, but I think there are valid reasons why not to use Flash. If JavaFX delivers on its promise, I'd be up to checking out how JavaFX can be leveraged at www.zoom23.com. Rama, are you planting ideas about how/where to use JavaFX at .sun.com? :)
  6. The other major thing that change the way I look at the world today was the JRuby on Rails session. I've been keeping an eye on JRuby for some time now, but I had a feeling that it was not ready yet, or at least not ready for the enterprise. How wrong I was! During the session Charlie and Thomas (a.k.a. JRuby guys) demoed deploying a simple JRoR app as a war to Glassfish app server. Amazing! I have to play with this and see how I can sneak the JRoR into .sun.com (I have a secret plan already! 8-) ). Also the backend of zoom23.com could greatly benefit from tighter integration of the RoR admin app and Java based importers. Hey zoom23 guys, how would you like running zManager and the importers in one JVM? I think that it would be pretty interesting!
  7. I wish Java had closures already! Come on people, hurry up with these, otherwise it'll be too late.
  8. The other session and hands on labs that I attended were beyond disappointment. I was bored to tears!
Off to bed, to recharge and continue tomorrow.