Archive for the Mobile Category

… or is that the wrong question?

It has been bothering me for a while that I can’t understand why Sun spends money on Java.  Don’t get me wrong, I love the fact that they do.  But surely there is a wider financial goal rather than pure technology benevolence?

Thankfully the Java Posse posed the same question to Bob Brewin (CTO of Sun Software) in podcast #123.  The question was framed as to how the strategy compares to the South Park underpants gnome episode where the the plan was “1. Steal underwear, 2. ???, 3. Profit”.

Unfortunately the answer was fairly vague and basically came down to “volume equals profit”.  The theory seems to be that Java is part of a plan to create opportunities for hardware, services, training and consulting.  Seems to be a fairly roundabout way of making a market for yourself.  The ‘old’ way would be to focus on the products you are selling.  Make them better, cheaper, faster. Be better than your competition and let your potential customers know it.

If you take the strategy as read, Sun is supporting a language that works on any environment (many that Sun don’t have hardware for) for a range of customers (many that won’t ever need Sun services).  In essence, they are creating many market places, but only a small proportion of them are in a space where they actually compete.  To use a rock analogy, isn’t that like running and paying for an open air festival with free admittance just so you can be one of the acts?

In particular, where is the money for JavaFX Mobile?  Sun doesn’t make phone handsets (yet?).  Are they going to ask for licence fees?  Apparently not since it is open source.

So I mostly get why Sun pushes Java Enterprise.  It helps them push the hardware and services for high end applications in the corporate arena.  Along the way they also help every other hardware and software consulting business as well.

But why the focus on the desktop of late?  What’s in it for them if mobile handsets start running JavaFX mobile?  I still feel like I am missing something…

Shine Technologies Senior Developer Kon Katsaros has written an article entitled ‘Java ME Mobile Phone Applications - The Good, the Bad and the Ugly’. Inspired by the popular spaghetti western, he covers ‘the many highs - and a few of the lows - of developing applications for mobile phones’ using Java ME in the real-world.

You’ll find the article here.

Instant Mobile

I dragged myself away from Mini Kiss and Robot Fighting at the ‘After Dark’ bash on Thursday evening (seriously, this was geek entertainment to the max) to head to a session title JRubMe. OK, it was a typo and it was actually JRubyME. It was already looking less interesting.

In the end, I think I learnt more about the folly of human endeavour than about JRuby on Java ME devices. A guy from Symbian - my favourite mobile OS - was talking about how he managed to convince his boss to try to get Ruby onto Symbian. He had two approaches, one was porting the C implementation of Ruby, the other was running JRuby under the mobile JVM.

It took him 3 weeks to ‘port’ the C version but never really got it to work. He then managed to ‘port’ JRuby in a few days and got a basic script to paint a red box and play a really annoying sound. I say ‘port’ because it didn’t actually support everything and hence was not useful in any real sense.

He went on to explain the intricacies of CDC, CLDC, Ruby 0.8.2, Ruby 0.9.8 and whole bunch of other stuff which boiled down - as far as I can tell - to ‘we can either port an old version of Ruby and have it severely limited’ or ‘we can port a newer version of Ruby and it will work on devices in 2 or 3 years time, and it will be severely limited’.

Why even bother, I hear you ask (I know I was asking it)? Well apparently ‘more is better’ when it comes to development options on mobile devices. Also, there was one throw away comment about Ruby allowing you to ‘code on the device’ and hence making it easier to try out code rather than the cumbersome code, build, deploy to device model. Although I can see how this might be worthwhile, I am not sure this is the way to solve it. How about better standards and emulators?

In any case, there isn’t any code, there isn’t a project, and there isn’t even a community asking for it to be built. Don’t hold your breath for Ruby on the Mobile anytime soon.

The QueuesI went to a ‘birds of a feather’ session at JavaOne this evening about the way forward for J2ME. There were people from Ericsson, France Orange, Nokia and Sun. All had been involved in the latest JSRs. The comments from them were interesting, although my lack of J2ME knowledge meant I was struggling to keep up (thanks Stephen for trying to help me via IM).

What was really interesting, however, was that during the Q&A there were several quite angry questions from developers on why there was little progress on reducing the fragmentation in the specification. The problem of coding for many different devices that support different capabilities was a big concern. What was an even bigger concern was the seeming lack of control in certification of devices as matching the specification. What do you do when a device already in the market doesn’t implement the specification properly? The answers from the panel were less than helpful. In fact, their answer was “code up an application that proves the problem and send it in”. Hmmm.

This brings up the interesting point: if mobile is such a big part of the strategy going forward for Java (see my earlier post on JavaFX Mobile), why are we solving the existing problems we already have?

JavaOne 2007 KeynoteToday was the official start of JavaOne 2007, and of course there was a keynote. The VP of Software for Sun, Rich Green sauntered on to the stage with music pumping out from a DJ and with massive video screens showing lots of shiny, happy Java people. Dressed in black jeans, a tight black t-shirt and receding grey hair I think he might have ‘Steve Jobs Envy’. If he had only worn the skivvy (or turtleneck as they call it over here), he might just have pulled it off…

On to the real stuff - what was announced?

Well, he made a fairly big deal about Java becoming fully Open Source. As of today, the JDK itself is open source, the final step in moving Java to a GPLv2 licence. He made the point that the choice of the GPL licence meant that Java can now be bundled in GPL distributions like linux with no issues, and that the next version of Ubuntu will now come with Java as part of the core distribution.

A couple of other ’smaller’ announcements were that Java Real-Time is now here and that there will be a focus on making the JVM ‘faster, faster, faster’.  The former means you can be more confident that your program will respond in a guaranteed time and not be interrupted by garbage collection. The latter means both smaller downloads and faster execution time, so that is welcome news.

Next came the breathless announcement of a new scripting language - JavaFX Script. This is part of their push towards better end consumer functionality. In short, it is aimed at creating rich user experiences in a browser more easily. Think Flex from Adobe. The hope of Sun is that this will expand Java coding out from developers into the graphic designer arena and try to keep solutions pure Java. Apparently there are tools coming, but in the absence of them it is way too hard to see if this is a credible threat.

Following on, an even more excited Green announced JavaFX Mobile. I have to get my head around this, but basically it seems like a JavaOS for mobile devices. They are going to be making it available to phone companies in an OEM sense for them to create a new set of phones with richer client functionality (see JavaFX Script above). They tried to pump it up as an iPhone killer without ever mentioning ‘that phone’, but the real test is going to be whether any of the major manufacturers actually start shipping phones with it. The demo they showed looked a whole lot like the iPhone demo (think colourful buttons, swooping icons, etc), so that is fairly cool. And of course it continues to allow midlets to run on phones, but with a little better integration into the phone that what you see currently.

Interestingly, there wasn’t any announcement that impacted on the majority of people in the room - in the main hard core developers. Unless you work for Ericsson or Nokia, you are unlikely to need to do anything with JavaFX Mobile. Few people are likely to need Real Time. Some might be interested in JavaFX Script, but it isn’t really new, just an alternative to other solutions already in the market.

So, talking a big game about taking Java to ‘the rest of humanity’ via mobile devices (please let’s ignore that the 3rd world is unlikely to be adopting smart mobile devices in large numbers in the short term…) but where does that leave the rest of us? What about web development? What about Swing? I agree that trying to make the Java platform the ubiquitous platform for all development is a good goal, but I for one wasn’t left breathless.

A site of interest if you’re doing some Bluetooth J2ME coding: http://www.javabluetooth.com/

The new Shine portal http://mobile.shinetech.com continues apace behind the scenes with a proper release coming very soon as we finalise our mobile development direction. And with the second of our internal J2ME certification courses completed last week we should have more SCMAD certified developers in the near future….