Wednesday, May 23, 2007

JavaOne Day 3

I didn't find the Motorola General Session particularly inspiring because I've heard most of it before and am a little jaded waiting for Mobility to take off. Padmasree Warrior is not a bad speaker at all so it had nothing to do with her delivery, and I totally agreed with her Platform Disturbia pitch. I had been working on Mobility-related projects as an IT Architect in Sun since the late 90's, and my primary focus in the last 6 months has been on mobility-related products and services. So why wasn't I moved to action (or at least to making new resolutions)? Although I'm already thoroughly familiar with all the issues she mentioned, I don't think the toughest issues in mobile development: (1) device diversity (which she mentioned) and (2) standards nonconformance (which she hinted at indirectly) have been adequately resolved. I believe these are out of the hands of ISVs, and they therefore can't be blamed for taking a wait-and-see approach.

When I was a Sun employee, I always thought there was great disparity between the tough enforcement of the Java EE TCK for appservers and what I perceived to be turning a blind eye to conformance of Java ME implementations to specs. Here's my conspiracy theory: The appserver market has long been hotly contested, and the enterprise software market must not be fragmented unless we don't mind Redmond owning a much bigger chunk, therefore we got our act together long ago and Java EE portability is a reality (if one sticks to standard APIs). On the mobile front, many handset manufacturers were deploying VMs on their phones that were either homegrown or engineered from cores supplied by Sun, IBM or other platform software providers. Besides the greater diversity of processors, OSes and peripherals complicating the landscape, I believe Sun and all the other major industry players didn't want to stifle the market by being strict on standards conformance. OK guys, I think we are coupla years past the tipping point already. ISVs want to produce more consumer and enterprise apps, and others have killer service ideas ready to go. What we really need now is the same rigor applied to Java ME implementations so that people can only claim to support Java on their phones if they pass TCKs.

I don't want to sound all negative so, now that my primary message has been delivered, let me share what I think has been getting better year after year. Let me start with an observation: 5 to 7 years ago, mobile Java games had a different version for every different phone model but in the last few years, mobile Java games have versions with relatively long lists of phone models that are supported. With JTWI introduced 2 years ago, and similar standards clustering initiatives already underway, I think stricter standards enforcement will help the mobile Java ecosystem tremendously. NetBeans Mobility capability gets 2 thumbs up from me. IMHO, it is the best IDE for Java ME development out there by some distance. OOTB, it helps ISVs to manage platform diversity by organizing all different releases. But I sincerely hope they don't rest on their laurels. I believe it is possible for the NetBeans team to bring some of the smarts behind the Matisse GUI builder to Java ME. In particular, I would like to see SFF (small form factor) UI resizing with specified limits. For example, I would like to be able to configure the Java ME GUI builder to handle resolutions ranges (eg. from 176x208 to 352x416) after which it would warn me when I try to squeeze too many widgets into a screen. For everything in the specified range, it should dynamically work just right and look just right. The capability to manage multiple releases should only be applied to major device differences, eg. like whether there is a Bluetooth antenna or not.

Padmasree had a nice slide showing 4 people being born every second and 32 mobile phones being sold every second. Assuming her data is accurate, and half the phones sold are to folks upgrading their handsets, and ignoring how many people could be dying every second ;-), that's still about 12 people more joining the SFF (and thus truly mobile) Internet every second. Assuming half of those buying PCs (~250M per year) are also upgrading, that would mean about 4 people joining the Internet on laptop to desktop form factor devices. So the growth of SFF Internet devices is outpacing its larger brethren by 3X. Now that's motivation enough for me to keep investing time learning how to build better SFF apps.

I attended a session on being productive with Swing by Ben Galbraith and learnt a few new tricks (like using CSS for Swing!). After that, I sat in on a talk on "Who's doing What in JMX?" by Eamonn McManus, the technical lead of the JMX team at Sun, and his teammate, Jean-Fran├žois Denise. On the subject of JMX, if you run any decent volume of transactions that is pushing the limits of your software and/or hardware and don't use JMX yet ... what the heck are you thinking?! I've used it in some experiments and one production system and it is truly one of the underutilized gems in Java. And now, there are some REALLY nice things coming for JMX 2.0 which will be bundled in Java SE 7. To name some goodies:
  1. Hierarchical namespaces
  2. Cascading
  3. Event services
  4. Support for locales
  5. Annontations to define MBeans
  6. Custom type mapping for MXBeans
  7. Web Service connectors for management
After the JMX talk, I attended the Blu-Ray/Cable press lunch session and sat up front next to execs from Sony Entertainment, Turner Cable, CableLabs etc. After letting the 'other journalist' warm them up a little, I posed the question of what they are going to do against their FOS-equivalent competitors like Joost which are banking on HTPCs (Home Theatre PCs) giving set-top boxes a real run for their money. My midrange (5 to 10 years) prediction is that the cable companies will shrink to being connectivity and basic station (news and sports) providers while content owners will use the Internet more and more for delivery. I believe QoS is a red herring as there are not that many scenarios when we really care whether we are getting the content real-time, or 5 minutes later. I didn't tape myself but in essence I shared my opinion with the panel that the ubiquitous PC (soon to be HTPC) on average outmuscles set-top boxes by 5 to 10X in horsepower so why would I, as a Java developer, want to do OCAP? They were somewhat stumped and didn't provide any convincing arguments why we should invest in learning to program their set-top boxes. We can all fully understand why they want all their set-top boxes to be developed in Java but the real challenge for them is attracting ISVs to their 'platform'. Xbox and PS3 further confuse the landscape but I'll resist discussing them for now.

I spent the afternoon attending sessions on "JSR 248 Mobile Services Architecture", "Optimizing MIDlets" and "Blu-Ray for Hollywood" but I was a bit burnt out so when I bumped into my old friend Calvin Cheng (mates in Berkeley & Sun) of Yahoo with another Singaporean, Chien Yang of the Sun Java3D group, I skipped my "Developing reliable products" session and went for coffee instead. Good thing we can get all JavaOne presos and audio tracks on the web.

The "After Dark Party" this year was as good as any other in JavaOne history. That's saying a lot since attendees really got into the "Game Room" nights when we literally took over the hotel formerly known as Argent many years ago, and lapped up the ROTFLMAO performances by headliners such as Dennis Miller and Wayne Bailey in recent years. I was having too much fun to whip out my camera (especially tough with beer in one hand and finger food in the other). Friends who know how trigger-happy I am would be surprised I didn't snap any shots of the party. Truth be told, I was too lazy to bring my DSLR and giant flash this year and I didn't think our Canon IXUS 850IS (that's SD800 in the U.S.) would do the low-lighting conditions justice. There are pictures here and here if you really want to know how the party went.

Sneaking a beer into the very handy water bottle-sized side pocket of this year's excellent JavaOne backpack, I went to the DTrace hands-on-lab that I had signed up for. Yes, yes, I have used DTrace before so why the heck was I attending this lab (LAB-9520) during the After Dark Party? The session description mentioned Web 2.0 apps so I was genuinely curious to see how DTrace can help in tuning those sort of apps. Kudos to Angelo Rajadurai and Raghavan Srinivas authoring it in such a way that intermediate users of the D language can jump straight to more advanced exercises. After I got my fill of lab exercises (and ran out of beer), I vacated my seat for people who were still coming in after 9:30pm!

Again, those of you who missed the labs or didn't attend JavaOne need not fret, the labs are all available online!

Anyway, my night didn't end here. I caught the tail end of the party, saw that there were only short lines for the 3 jumbo soft toy crane machines, so I got in line ;-) and picked up a penguin for my toddler in lieu of paying for the Happy Feet DVD before the price drops. It's really quite a sight to behold ... software engineers lining up to operate a joystick-controlled crane to win soft toys. After that, I caught the 10:45pm showing of 300 at the Metreon theatre, simply awesome!

1 comment:

Anonymous said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Smartphone, I hope you enjoy. The address is A hug.