Back from JavaOne 2007

Last night I returned home from the JavaOne 2007 conference in San Francisco. This was my first year attending and I had a great time! There were between 10,000 - 15,000 attendees -- almost all of them are Java programmers or engineers. I had the opportunity to network with all kinds of people including a developer from a major shipping company, airline, transportation, biotech, online auctions, and the engineers who created many of the systems and API's that I use or have read about. I happened to be walking out of a room behind James Gosling (creator of Java), sat beside Craig McCallum (creator of Struts and co-spec lead on JSF), had lunch with Sun's Chief Learning Architect, met Sun's Chief Research Officer, etc... This is the place to be for chance meetings and to chat with fellow programmers.

Other than my 25 minute down hill walk from my hotel to JavaOne (and the longer uphill walk back) I did not get to see San Fransisco. Every day I woke up around 6:00 AM so that I could get there for breakfast at 7, and attend the first general session at 8. The general sessions were a real production! TV cameras, a DJ, many many massive screens, etc... This is where major announcements were made, and you can watch them online at the webcast replays page on JavaOne's website. After the general session there were many one hour technical sessions that go until 11:00 PM (270 to choose from spread over 4 days). I have a notebook full of material that I will have to orgaize and absorb.

Here are some of the highlights of the technical sessions:

  • A new technology called JavaFX was announced. JavaFX enables developers to create very rich and animated user interfaces for mobile devices, set top boxes, desktop and web. The mobile demo looked very much like Applie iPhone. For the desktop demos, they rebuilt some very nice looking flash websites using JavaFX. You could not tell the difference, they looked and behaved exactly the same as the flash version. JavaFX takes full advantage of Java's rich 2D API, lets you call into your Java classes, can use existing Swing components, can be displayed as a Swing component, can bind to data for automatic screen updates, and is "dynamic". When they say dynamic, I think they are talking about how you can change text on screen from within your program. In the rich internet application (RIA) market, I believe JavaFX is designed to directly compete with Adobe Flex/Appolo and Microsoft SilverLight. JavaFX will be built into Java 7 so anyone who has it installed will automatically have access to JavaFX (desktop and web browser). Sun is aware of today's issues with the JRE startup time, large download size, and security annoyances with present day applets. They will be addressing all of these issues. JavaFX is in a pre alpha stage right now.
  • NASA Worldwind was a very impressive demo. NASA has had a Google Earth type of application before Google. Originally it was written in C++ or .NET and only ran on Windows. They have completely rewritten it in Java and showed it off at a general session. They started by showing the entire planet built from real satalite imagery. They zoomed in right down to our conference center, then tilted to show all the hills and mountains in San Francisco. The satalite imagery wrapped around the curves perfectly and in my opinion, looked better than Google Earth. NASA Worldwind is available as a Swing component that you can drop it into your application, for free. This demo really shows off 3D programming in Java. There were other demos written in Java3D and JOGL showing wind tunnel simulations on the space shuttle, and a mashup of worldwind with a flight simulator for military training.
  • Project Iris is a demonstration of how modern day applets can interact with JavaScript. They made an online photo album that interfaces with Flickr. You can drag/drop pictures from your desktop onto an iris which sucks in the file (animated), uploads it to flickr and displays it on screen. There were all kinds of cool effects browsing te pictures including full screen, something flash can't do. I wonder if flash has this drag/drop support?
  • Scelenium is a very cool integration testing tool for web applications. It is a firefox plugin that records your actions as you interact with your web app. Once you are finished you can play back your actions, create JUnit test scripts and provide assertions, etc... everyone applauded when they saw how powerful this tool is. You can even have your QA staff running it all the time so when they find a bug you can replay their actions to see how they arrived to it.
  • FEST is a Swing testing tool from Google. You can use it to easily create unit tests that interact with your GUI in more advanced ways than earlier Swing testing fixtures. I think you can even have it record your interactions with a Swing app then generate test scripts. It can even take a screenshot when a test fails. To be successful in automated Swing unit testing you need to have separation of the view from the model.
  • Motorola announced that there is an alliance between many mobile device manufacturers to standardize on an operating system and development tools. The industry is standardizing on linux and Java.
  • There is an OpenID API for Java. OpenID is a new type of identiy management system that is becoming widely accepted by industry. You choose your OpenID provider such as AOL, an ISP, Yahoo, your own server, etc... and create an identity. An identity has things such as your first and last name, websites, email addresses, address, etc... When you go to a website that supports OpenID you use your OpenID URL to log in. For example, http://openid.aol.com/yourAccount. The system you are logging into contacts the provider you mentioned and asks if the account is real. If yes, you are redirected to your provider's login screen for authentication. Once authenticated a token is given back to the original site and you are redirected back to the site. If you are trying to create a new account, your OpenID provider allows you to specify which information you want to allow the site to have. It looks neat. You need only one account for all sites on the net that support OpenID, it is not limited to applications from just one provider, and there is no central OpenID provider. Sun announced that their OpenSSO (from Access Manager sources) will support OpenID.
  • Curriki is a kindergarden to grade 12 education resources site. Their goal is to improve education around the world by empowering teachers, students and parents with user-created, open source curricula, and it's all free.
  • Project Wonderland is a virtual office for companies that have many employees who work from home. You work on your computer in the normal 2D way, then can step back into your 3D office. You can walk around the building and have chance encounters in the hallway, around the water cooler, etc.. You can have voice conversations with coworkers. You can grab your screen and walk it over to a coworker so that they can see and interact with it too. You can walk to the meeting room and see who's at the meeting. There real meeting room has a laptop on a rotating platform with a video camera, directional speakers, microphone etc... to represent the virtual people. The virtual people can click around to move the camera and look at who's talking. The people in the real meeting room see a representation of the virtual people at the meeting, or video feed from webcams. The motorized platform used in the real world meeting will one day be replaced by a much smaller specialized device built on Solaris and Java. I think this is a very neat concept, though the virtual workers will all need a computer with a 3D card and OpenGL. Also I'm wondering who will create the 3D models of your building and offices, etc...?
  • TDV is a company that has a patented 3D vision headset. It is different from other technologies. TDV doesn't just display video through a headset, it actually modifies Java3D with some algorithms for true 3D. It has two screens inside with two separate images, and your eyes focus in as if there was just one image. This reduces eye strain and gives a more realistic, crisp, clear 3D effect. I tried a demo of Project Wonderland using the 3D headset. It was very impressive, very 3D! The person showing me the demo was the guy who invented it and modified Java3D. He told me that the headset will one day be available for around $500! Other headsets I've seen cost around $3000, and don't do real 3D! The current version does 800x600 and flickers a bit. He is working on a newer version that does true 16:9 HDTV, flicker free.

I noticed a few things while talking with people, and from the polls the session speakers would do in the room. Some of this we know already:

  • Almost everyone uses Eclipse for their IDE
  • Almost everyone uses BEA Weblogic, or IBM WebSphere for their application server. There seem to be more BEA users than WebSphere.
  • Almost everyone uses Spring and Hibernate, and not EJB 3/JPA.
  • There were many many laptops present both in the crowds and the presenters. The majority were Apple OSX

I think I'm going to give in just a bit. After talking with a BEA representative, I found out that developers can download the full version of WebLogic free for development purposes. There is a 5 user restriction. I'm going to make sure I know it as well as I know Sun Application Server so that our customers can have a choice between the two. I also learned that BEA Workshop is now free for developers (used to be $900). Since it adds to Eclipse what NetBeans has already, I'm going to give it a try. I want to make sure that I have solid Eclipse skills, even if I'm going to continue to work in NetBeans. And lastly, I'm going to do some work in Hibernate/Spring. I'm not sure which project I'll use them in yet. I can continue with EJB where I want to, and use Spring as an IOC container only. At JavaOne I asked Juergen Hoeller (the creator of Spring) why Spring continues to be used universally, even after EJB 3 has solved many of EJB 2's problems. I think he was very surprised that I asked this question and generally his answer was that EJB's implementation of IOC is total crap, it does a lot of things badly, and that Spring is much better. I guess I should have expected a response like that from the guy who created Spring. He also said that there are social reasons. He said if I use Spring I can make a lot more friends. Wow, how true. I honestly find it awkward talking to people saying that I use NetBeans, Sun App Server, EJB 3 and JPA instead of Eclipse, BEA WebLogic, Spring and Hibernate. Conversations often die quickly once people find out you don't use the usual tools. I'm really looking forward to the day when I can have a conversation with other Java developers without feeling awkward that I don't following the norm. I'd rather most conversations be centered around the cool software we're working on rather than the tools we use. For the most part that's how it was at JavaOne, but somehow every conversation leads into tools.

Comments:

Post a Comment:
Comments are closed for this entry.