FlashLite or J2ME?
This morning, my boss has asked me "Regarding downloadable games, which platform do you think will be dominant, FlashLite or J2ME?".
Well, good question. Of course I can only make a guess, with the information I’ve got right now, which is:
1.- The big number of developers. The J2ME community is big, or at least it’s bigger that the FlashLite community. How good is that?. See the next point.
2.- The technology is a few years old. A lot of developers, working on something for five years produce a huge amount of experience and knowledge. And, as Macromedia says, "experience matters". There are a lot of sites, tutorials, articles, dedicated to J2ME.
3.- The technology is a few years old. Again?. Sure. That means it’s more matured, more polished, more solid than any emerging technology.
4.- The few limitations of the platform. J2ME is very limited compared to J2EE, but even with those limitations, the functionalities that can be implemented are awesome. Data persistence, sprites, PIM api, …..
5.- The programming language. It’s Java, the same Java code that you write to develop an enterprise application, for instance, but with some limitations in the libraries you can use. That makes really easy to move from J2EE to J2ME.
6.- Integration with the telephone’s UI. Well, you know, Java applications tend to be really ugly ( to say the least ). However, a J2ME application will look exactly like the rest of the applications that are running on the phone.
1.- There are not too many developers yet. See the next point.
2.- The technology is new. I mean, there are a few devices that support the FlashLite player. So, there are still a few experienced developers ( of course, I don’t include myself into those ), and there’s not a big knowledge base yet. I mean, everything has to be done. But that is also fascinating!. I don’t remember such a feeling of challenge since the first pocketpc project I worked on, and that was a few years ago. Everything is new, every coding session leads you to make some discovering. And, well, we are flash developers, discovering and pushing the edges is what we best can do!.
3.- The limitations of the platform. First, the code syntax. You know, it’s flash 4. Enough said. Code everywhere, timeline dependency, and some other obscure points. I mean, the transition from flash ( meaning by flash AS2 ) to FlashLite is not easy.
And then, the lack of functionality, compared to J2ME. There’s no way to save any data in the device’s memory, and there’s no access to some functionalities of the phone, like Bluetooth or PIM that can be accomplished with J2ME code.
4.- And what about the UI?. You have full control over your application’s UI. You design it, and you implement it. Is that an advantage or a disadvantage?. Well, I think it’s both. It’s great to have full control over your UI, but it’s also a bit dangerous. There are a lot of devices, with a lot of different configurations and screen sizes. Maybe, letting the phone’s OS care about the UI is not a bad idea after all.
But, what about the future?
Well, it’s obvious that Macromedia is making a great effort to improve and promote FlashLite. It seems that the number of Symbian devices supporting the player is growing, and that in about a year, the number of flash enabled phones will be similar to the number of J2ME enabled phones. Mostly, because the same device will support both platforms.
It seems that Microsoft is also thinking seriously about convergence. In fact, it seems that the coming new version of the Microsoft operating system for devices will be unique for both Pocket PCs and smartphones. Even more, it seems that, in the nearly future, both devices will converge into one. There will be no more smartphones and pocketpcs, but pocketpcphones ( if that makes any sense ).
Well, I just can guess, but the flash player for pocketpc allows you to develop using as2 ( you just have to publish for flash player 6 ). So I guess ( in fact I hope ) that in a nearly future, we’ll be able to develop our pocketpcphone’s applications using as2.
And it also seems that there are going to be a lot of mobile devices running windows in a nearly future. And some of them support J2ME.
There will be more Symbian devices supporting J2ME and FlashLite, and more windows powered devices supporting J2ME and FlashLite. How could you pick up just one of the platforms?.
So what did I answered?. That I want to develop for both platforms.