January 03, 2006
Flash Lite or J2ME?
Almost a year ago, I posted a comparison between Flash Lite and J2ME.
As you probably now, the Flash Lite 2 update for Flash Professional 8 has just been released through Macromedia Labs, and it’s time to rewrite that post.
Has there been any change?
Thankfully, yes!. While the J2ME platform has been slowly but safely following its well established path, adding a few new profiles, the release of Flash Lite 2 brings a lot joy and good news for mobile developers.
So, what’s new in Flash Lite 2?
Maybe the most important improvement in the new player is the support for ActionScript 2.0. So, we can forget about one the most important caveats of the old Flash Lite player, which was the flash 4 syntax (which also meant complex nested movieclips structures, code everywhere, and a deprecated syntax).
Now we don’t have to jump between two different syntaxes, and we don’t have to jump between two different development paradigms. We finally have an object-oriented language, with all its advantages: code reuse, small entities that are responsible of small tasks,... well, you know.
But the adoption of AS2 is not only an advantage by itself. Been able to develop a desktop application, a web application or a Flash Lite application writing exactly the same code will make much easier for all the developers out there to try the technology. And more developers working on "the shinny thing" means more applications available, and having more applications available will mean that there will be a stronger demand for more good applications. So, everybody wins.
Yeah, AS2, cool, but isn’t there anything else?
Yes, there are two more things, that, from my point of view, will make Flash Lite a serious J2ME contender: local storage and XML support. Why?
Local storage support is probably the most important feature of Flash Lite 2. GPS connections are expensive (here is Spain, are obscenely expensive, so you can imagine the cost of a 3G connection), so the users must be able to store small chunks of data in their devices. Period. This was something that was needed, and that Macromedia has implemented, so we can only be thankful for it.
But when there’s the need of downloading complex data, the old loadmovie command was a real pain. We asked for it, and now we have it. Cool.
So, one of the weaker points of Flash Lite, which was the lack of functionality, is not so important right now. Of course, there are many things you can do when developing a J2ME application, like accessing the Bluetooth or the PIM or the camera api, but in most applications there will not be the need to do so. I mean, how many mobile apps are multiuser Bluetooth-driven games?. Not so many.
So, there’s still a certain lack of functionality, but, from my point of view, it’s not such an important point as it was before.
Conclusion
J2ME is almost in the same point where it was a year ago. Flash Lite isn’t, and now, more than ever, I feel that, before starting to develop a new application, I can really stop and think about what’s the best tool for the job, if it’s Flash Lite or if it’s J2ME, because, right now I am not only constrained to J2ME.
I finally can choose.
Posted by Cesar Tardaguila Date: January 3, 2006 11:24 AM | TrackBackHi Cesar, I totally agree with you. I have not put any attention on mobile development since I've heard about AS 2.0 support. This new release of Flash Lite will gather developers around a serious choice for developing mobile eyecatching applications.
Saludos!
Posted by: Alberto en: January 3, 2006 03:28 PMYou are dead wrong about J2ME. There were MANY JSR's for features such as web services, database access, 3D graphics (amazing) and many other things. But most importantly, DEVICES!!! There are already devices implementing all of these features. Better yet, service providers are offering support for J2ME in the form of defining the full stack, following on DoCoMo's DoJa success Vodafone, Sprint and many others are offering extended support and services all based around J2ME but it gets better!!!
Netbeans and some other tools are ofering visual building support that might not be as intuitive as Flash but it has the power of Java underneath...
Flash on phones isn't like flash on a computer where users can just install it (Symbian phones are a very small fraction of the market). Java ME has been going strong for years on devices with powerful and really fast VM's based on Monty (JIT compiled) ofering features that Flash (or Brew) just can't compete with.
So lets summerize:
1. Devices - J2ME by a huge margine.
2. Operators - J2ME only.
3. Power - Close call between J2ME and Brew.
4. Ease of development - For most things flash, some things J2ME (portability to server side is real and I'm doing it).
5. Developers - hands down J2ME the knowledge and the tools are out there.
6. Deployment - J2ME now has great support for AMS integration via new standards from Vodfone, Sprint and DoCoMo.
7. Bands - J2ME and Flash work both on GSM and CDMA. Brew is limited to the few areas that use CDMA.
So bottom line, J2ME is number one by such a huge margine its embarassing.
Posted by: Shai en: January 3, 2006 08:56 PMHi Shai.
I don't think I'm wrong about J2ME. I'm perfectly aware (as I am also a J2ME developer) of the jsr's and the capabilities of the platform.
But, now, the difference with Flash Lite is not as big as it was until now. There are still a lot of things that can only be done with J2ME, but there are a lot of other apps that can be developed both in J2ME or in Flash Lite. That was my point.
J2ME is number one right now, that's true. But Flash Lite is closer to it than before.
Posted by: Cesar Tardaguila en: January 4, 2006 12:27 AMGreat thoughts, including those by Shai. I agree that J2ME has the marketshare right now, but I would encourage all J2ME develoeprs to take a look at Flash Lite. I think the most pleasant feature is going to be the authoring environment emulator and workflow. I think Flash is a much better development tool than any J2ME tool out there. I am also a J2ME developer and the way I can rapidly develop a Flash Lite 2.0 application now beats J2ME hands down.
I'm not claiming Flash Lite is the marketshare leader now or that they are going to destroy J2ME. J2ME still has some benefits (like Bluetooth support) but Flash Lite is a major step forward in mobile authoring. I really encourage other developers to give it a try and see if the workflow works for them.