Twitter github

Symbian, Nokia and Java

Ok, as an Eclipse guy, I have to admit something, I sort of have a man crush on the Symbian Foundation.

symbian-foundation-logo2

From my experiences in the Eclipse and Gentoo communities, I see a lot of things Symbian is doing right to build an open source community. They are definitely putting a significant amount of resources behind the effort. However, that’s not the main point of this blog post and really a subject of another blog entry on building communities. My main point is that Nokia recently announced (thanks Gorkem) that they will be contributing their Java runtime to the Symbian Foundation…

At the BOF I also discussed of our contribution of our runtime code to Symbian Foundation. Basically the idea is that for Symbian^3 we plan to get all of our libraries code (except Web Services as it’s not Nokia owned code). Ken Walker from IBM talked of what they will provide on VM and core libraries level. They will provide J9 VM+CLDC/CDC/FP libraries in the binary release under an RND license. This means that developers will have a fully functional runtime from Symbian Foundation for java me applications as it appears in current S60 devices. Nokia plans to utilize EPL license for our contribution. Since many of the core libraries are already available in Apache Harmony there’s pretty good open source mobile java library set then available with business friendly OS licenses.

This is great news for mobile Java developers; I like when I see public roadmaps available.

From my point of view, it’s great to see some Java focus. Back in the day when mobile wasn’t hot, I did some mobile Java work with the embedded Rich Client Platform (eRCP), I even helped write a book on the topic.

eRCP Redbook

During that time, there were a lot of APIs lacking on the mobile devices which eRCP tried to solve along with giving mobile developers a reasonable modular user interface technology via OSGi. However, there wasn’t much interest at the time. Furthermore, there were challenges involving writing applications for mobile devices… it was just plain hard. The customization of the user interface was difficult… it was hard to theme applications… you couldn’t really use something like CSS at the time. My favorite problem was in regards to writing a reusable user interface across phones. For example, let’s pretend we were writing an expense tracking application for the Nokia 9500:

Nokia 9500

The first thing to notice is there’s a nice wide screen when the clam-shell is open. There’s a lot of things you can fit into your user interface when the phone is in that mode. Ok, now let’s pretend that the user closes the clam-shell so you have a smaller screen available. What does your application UI do? Do you present another view of your application, the same screen? Will everything fit? Who knows? Take this thinking a step further and imagine writing a reasonable reusable interface across phones like Nokia’s older s60 line… and so on…

s60 nokia phones

Those were the days!

On a side note, this is one area I think Apple is brilliant in. Have you noticed that their mobile phones have had the same LCD size for a few generations? Have you ever thought why? In my opinion, it makes the life of a developer easier when it’s something you don’t even worry about. I predict that Apple will continue this pattern for awhile.

In the end, it’s exciting to see so much open source action in the mobile space, especially when my favorite license is involved… the Eclipse Public License.