January 10, 2005
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:
J2ME:
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.
FlashLite:
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.
Any thoughts?
Posted by Cesar Tardaguila Date: January 10, 2005 03:39 PM | TrackBackAt this point J2ME is WAY ahead - especially in mind-share. Sun has done something with J2ME that it hasn't yet been able to do with J2SE and that's create consumer brand awareness. To many people games on mobile devices are 'Java Games'. In fact, this has even made it's way into the online space as many gaming sites are advertising web-based Java Games that have been created using Flash. To the consumer, the Java brand is quickly becoming synonymous with 'games' - and this is especially true in the mobile space.
Macromedia really needs to get the FlashLite players out to a vast majority of phones this year, and then motivate developers to start publishing for it. This could be the hardest part as the vast majority of Flash developers have no interest in leaving AS2. As you pointed out, Microsoft's next version of Mobile Windows could change things significantly IF they can get enough manufacturers to license (and release) Windows Mobile phones.
Also, Macromedia needs to figure out if Flash is an animation tool, a multimedia tool, a web/mobile gaming tool or a rich internet application construction kit. Saying it's all only serves to confuse the brand for the consumer? Is Java is games to the average consumer - what is Flash?
2005 is shaping up to be a very interesting year as it appears the mobile industry is close to another tipping point - and where it's going to go is anybody's guess.
Posted by: Bryan Rieger en: January 10, 2005 05:54 PMexcellent post cesar... my line of thought exactly... unlike you, i had never really been interested in j2me, so that i'm not considering it... i already hate doing actionscript 2 code enough (no good IDEs with proper refactoring support and such... u know), so i don't even have to explain myself with flash 4 code... but that's what it takes now, so I have to bite the bullet.
feels good to see a "hello world" app on your phone... real cute... but it sucks when you know what the technology is capable of, and just can't get it done because the process sucks
so that, that is to say macromedia isn't doing this the right way... if they need a good developer base on this, they have to at least support acriptionscript 1 level syntax (with limitations like you have in j2me) ... get your developers to start earning their money and stop pushing the load downstream... implement it such that we can write (at least) actionscript 1 type code that compiles back to the same bytecode you get with the flash 4 level code (if that's all the functionality you can support)
(i'm working on something similar but) anybody have any macros and such to convert as1 code to flash 4? because typing all those slashes and colons just get boring after a minute
Posted by: Emmanuel Okyere en: January 10, 2005 05:54 PMWell, I think we all agree on something that I feel is very important. The syntax.
I've never thought before about an as1-like syntax, maybe because it's been more than a year since I last wrote as1 code, but it will be much better than the flash 4 "slashes and colons".
I also agree with Bryan. "J2ME", or "java" means, for many users, "games". If we only could do something similar with flash....
Posted by: Cesar Tardaguila en: January 10, 2005 06:04 PM[The boss said:] "Regarding downloadable games, which platform do you think will be dominant, FlashLite or J2ME?"
This question is hard for me to understand as-is... both architectures are designed for small, lower-power computing devices, so I'm guessing (but am not sure) that his "downloadable games" implies "not in the desktop/laptop computer market".
I might also guess that the phrase "downloadable games" includes "games we can make money on if people download them", and I'm not sure whether a shareware model is visualized here, or a transaction-before-download business model, a services business model, an affiliation model ("like our game? buy our T-shirts!"), or something else.
Getting away from what the question might have meant, and moving to a straight J2ME-to-FlashLIte comparison, the big difference is the level at which they work. J2ME is lower-level than the Flash Lite libraries, so it's easier to move it to newer devices, but all evidence seen so far confirms that development costs will be higher with Java than with Flash. If the J2ME component in a phone needs to rely on additional local external components (an SVG-Tiny renderer, an audio codec, etc) then the development problems become more complex (cf DHTML, VRML). I could go on to some of the other points, but it risks going further off-topic to the core here.
What situation are you in that you're being asked such a question? What business situation is the boss trying to resolve today...?
Regards,
John Dowdell
Macromedia Support
Hi Cesar,
Want to first say thanks for the DICE sample the other day, it got me into learning J2ME. Couple of books I'm reading that are truly excellent and I reccomend:
- Programming Java Devices for the Wireless Platform (Addison Wesley)
- J2ME in a Nutshell (O'Reilly)
Anyway, back to my point.
I'm ONLY learning J2ME to harness it's lower level power. It is nowhere near as quick to develop games in Java as it is in Flash Lite (even with the extra game libraries offered in MIDP2 and CLDC1.1 devices).
But!:
There's also things like JSR 184, Flash Lite on mobiles will not be offering s/w or h/w accelerated 3D anytime soon, at all. Perhaps the only hope is that 3D will not be as suited to small screens as it is to TV/Monitor Display.
I'm looking into Midlet/FlashLite communications to provide support for Bluetooth, GPS, and local storage in Flash Lite, have you tried this yet? Also have you considered possible deployment scenarios that might contain both a midlet and a swf? MM leave me a little unclear as to whether we should be creating custom SIS files to install the FP and SWF like T-Mobile did here in the UK, or rely on the mobile to have the FP pre-installed...
On that note, what happens to Flash Lite when all mobiles support FP6+ (like the Nokia 7710 already does), will it become reduntant?
Thanks for your very interesting post!! All the best,
Rich
Hi John,
We were talking about devices, not desktop computers, and I'm not really sure about my boss's intentions. But I suppose he was thinking something like "do you think that developing FlashLite games can be a bussiness opportunity for us"?. Because I'm sure he believes that J2ME games are a good bussiness opportunity. And I suppose he is thinking about a pay by download model.
Apart from that, my experience is ( and I forgot to mention it ) that the development times are much sorter in FlashLite, but only if the application is not very complex.
Posted by: Cesar Tardaguila en: January 10, 2005 11:11 PMHi, Richard,
Thanks for your comment, and for the ideas you've thrown.
I must confess I've never thought before about a mixed flash-J2ME application, but I find the idea really interesting.
And also, thanks for commenting about the 3D stuff ( another point I forgot to mention ).
Posted by: Cesar Tardaguila en: January 10, 2005 11:14 PMAny thoughts into the posted inquiry of the relevance of Flash Lite once smartphones such as Nokia 7710 support FP6? Also, will the support of FP6 in mobile obviate the requisite for devices to be pre-installed w/ Flash Lite. Over what time frame would you expect a material % of handsets to have the capacity to download FP6?
Posted by: J Sperling en: January 11, 2005 12:18 AMGot it, thanks... would I be close in understanding this as "Given that I already believe I can make money selling J2ME games to mobile phones, might I make more money selling FlashLite games to mobile phones?"
If so, then that's hard for me to usefully answer, because I don't track business deals as strongly as I track underlying technology. You've got a strong point there with the "I've seen lower production costs" issue. One of the big things with phone games, though, seems to be how you'll get the money in the first place... if the service carrier offers a transaction model, if you can protect against warez'd, things like this are still indeterminate for me.
Summary: I dunno, I'm just a geek, sorry. 8)
jd/mm
Posted by: John Dowdell en: January 11, 2005 12:33 AMI work for the design book publisher friends of ED, who are an Apress company. Amongst other things, they do Java titles (http://java.apress.com ) and we do Flash titles, between us the current ratio of J2ME to FlashLite books is 3:0 (well almost 3, with Beginning J2ME a couple of months away - http://www.apress.com/book/bookDisplay.html?bID=426 ).
friends of ED watch the uptake and development of FlashLite with interest: Could we do a book on it? Is there demand for a book on it? Would you want to write a book on it?...etc...etc. We'd love to know what you think: editorialATfriendsofedDOTcom
Well, Pete, I'm sure the community will love a book about Flashlite, specially if it comes from Friends of ED...
Posted by: Cesar Tardaguila en: January 11, 2005 09:52 AMFlashLite still have enough potential to beat j2me. thats only the UI.
in java developer have to write a 100 page book for complicated stylish UI.
and in FlashLite, its just simple as 123.
but there are limitations from MM side.
FlashLite in not avaiable to ANYONE. only few oems and service providers distributing flashlite.
if macromedia allow everyone to download flashlite for thier phones, it'll get more share and rapidly adopted by more developers.
While J2ME is leagues ahead of FlashLite in terms of functionality and programmability, developers should be aware that it isn't as powerful as coding in C++ in the native (usually Symbian) OS. For example, most (all?) handsets omit to implement the Bluetooth and OBEX (object exchange which allows exchange of PIM) in their J2ME implementations. So while the J2ME spec includes Bluetooth and object exchange, if you want to do any Bluetooth or OBEX programming in J2ME you will have to purchase a 3rd party stack, which will only run on J2SE desktop systems, not mobile devices. If you want to have that functionality on a handset you'll have to use C++/Symbian.
Another point to make about J2ME in comparing it to J2EE, is that because the memory space and performance is very limited on handhelds, developers have to ditch their OOD/OOP principles and get hacking. Which isn't such a bad thing..
Posted by: Graham Phillips en: January 11, 2005 01:24 PM"if macromedia allow everyone to download flashlite for thier phones, it'll get more share and rapidly adopted by more developers."
For what it's worth, while higher-end phones can add new abilities, the majority of device sales are for "feature phones", where the abilities are determined when the phone is manufactured.
That's why getting compensation from consumers (indirectly via manufacturers) is finally possible... not all architectural costs need to be paid by content developers, as we've seen with standalone engines or in-browser use.
jd/mm
Posted by: John Dowdell en: January 11, 2005 08:38 PMHi, just to say hello from france and thx for ur blog.
A little annoying thing, see
http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.design-nation.net%2Fen%2Findex.xml
there's a problem with the symbol
ascii 146 which not belong iso 8859-1 encoding but windows-1252 .
This cause feed reader to crash.
Bye bye, Ben.
Posted by: Ben en: January 12, 2005 08:58 PMHi, Ben.
I'll check it, but while I fix it you could give the atom or the rdf feed a try.
Thanks for telling me about this mistake
Posted by: Cesar Tardaguila en: January 12, 2005 10:35 PM"if macromedia allow everyone to download flashlite for thier phones, it'll get more share and rapidly adopted by more developers."
Even if they did, the phones would still have to be able to support the player--it's not something that is necessarily easy for MM to get on the phones at the manufacturer level (taken from a posting elsewhere, can't recall where), but there are things happening in the space that may allow for the updating of phones already in the market to support the player...
It's just going to take some time. At least to gain significant exposure in the marketplace, imho.
I wouldn't consider the lack of the player to be something that MM is responsible for; there's a lot of development that needs to take place in order to get the devices to be able to support the player, as well.
Posted by: Russ en: January 20, 2005 07:04 PMYou've all got to remember that Flash basically killed the existence of Java Applets.
Given the trend, it's only a matter of time that Flashlite will eventually take over J2ME.
Posted by: Luke Hsieh en: February 2, 2005 02:04 AMNice article. I'm building rich internet applications with the OpenLaszlo system. As cell phone manufacturers are starting to sell phones with integrated flash player in Europe I thought of using OpenLaszlo to produce Flash movies for cell phones. The lack of support for Flash5 standard makes it impossible to use OpenLaszlo to generate Flash for cell phones.
But it's definitely worth to keep an eye on the development of Flash for mobile devices.
Posted by: Raju Bitter en: February 3, 2005 12:20 AMRemember that mobile product lifetimes are measured in months, not years as the desktop is. As manufacturers release new models in step with fashion it's just a matter of time before we reach the tipping point if Macromedia can make the required deals (Nokia and Sony Ericsson specifically). Samsung was a nice first step.
As for authoring Flash Lite using Laszlo - sounds like a great idea. Doubt there would be any legal issues from Macromedia regarding it (the SWF format is open after all), just need to find some people to actually work on the project.
Posted by: Bryan Rieger en: February 3, 2005 05:47 PM