Five Years On, Has J2ME's Time Finally Arrived?
jg21 writes "Although he admits to having been frustrated by the slow adoption of the J2ME platform, software developer Eric Giguere believes that we're 'turning the corner.' He remembers Sun demonstrating Java running on Palm OS 'way back in 1999 when so many hoped the wireless Java revolution was just around the corner. Five years on, with notable successes such as the J2ME-enabled BlackBerry wireless handheld, that has already made a billionaire of RIM founder Mike Lazaridis, Giguere claims that, with most of the new handsets being produced supporting either JTWI or else its key component - version 2 of the Mobile Information Device Profile (MIDP) - developers finally now have a more consistent and capable platform to use for application development. Anyone wandering round this week's CES may be inclined to agree."
Not to be a troll, but what is it with all these intriguing Java products, free for downloading, that don't go too far?
- Jini
- Java 2D
- Java 3D
- Java Mail
- etc.
Is it that they are insufficient, too expensive, not completely open, or what?"Provided by the management for your protection."
A slashdot story on the front page this long with no replies? Maybe the real question is, Does any one care if J2EE is ready for primetime.
I still don't really see the point of J2ME. Every Java app that I have seen run on a phone or PDA has been dog slow or at least sluggish. Isn't J2ME specifically intended for these devices? If so, then why does it suck so much? If not, isn't J2ME a solution in search of a problem?
Please correct me if I got my facts wrong.
HELLO????
open any teenager magazine(at least in europe) and half the adverts are for j2me games(and ringtones.. sigh.).
and practically all phones are coming with j2me now...
world was created 5 seconds before this post as it is.
Sorry, but running code in a Sandbox (separated from the DATA) makes it pretty much worth a pinch o' bat guano.
The alternative, of course, is Active X, but that's like sharing dirty needles.
There needs to be a happy medium where it is easy (i.e., happens automatically) to have the program get access to the OS's API, but some things are protected. Whoever can figure that one out will win a prize.
Yeah, right.
Here's the actual working link to my guest editorial.
EricDamn....of course that was supposed to be "...not any commentary on the *article*."
Can we just let Java die please?
Oh wait, Java is useful for something... just the other day one of my clients who was running some kind of contest sign-up form on their web site ended up getting script-spammed by some java application that a sweepstakes-fan site has been distributing. It seems people are using java to automate the process of filling out web contest forms and creating havoc across the net.
I tried to develop some applications for my cellphone using J2ME, unfortunately when I did try to do it I found several limitations. Primarily because it does not take advantage of features provided by the device.
Although for the most part J2ME is meant to be as portable for as many devices as possible, it would've been nice to provide facilities to manipulate common PDA features such as: address book, calendar and todo list. I was surprised I couldn't even touch those when I was doing MIDP development before.
J2ME is more about connectivity to remote systems which may be good for business applications, its also very expensive to deploy because of the costs of cell phone air time. Still its not too bad.
With J2ME and all the drawing facilities, another common application type you can build with this are games. I've seen a few java based games and they're not too too bad.
I think it would gain ground if Symbian releases a library that provides direct access to its core facilities such as changing the screen saver, the background images, and replacing the application menu. Mind you there are applications that do these already, though you have to pay for it for something so simple, although setting up the C development environment for Symbian is difficult too.
Archie - CIO-for-hire
J2ME MIDP 1.0 fragmented the embedded market, takes too many precious resources, and is an underperformer.
J2ME MIDP 2.0 was better in terms of features, but little else.
If J2ME MIDP is so wonderful, why do the cellphone manufacturers write their applications in C++ (especially for the Symbian OS)? Perhaps it's because they know those dirty little secrets?
Put down the SUN cup with MicroJava and get into rehab.
Interesting that the last numbers I saw had C/C++ being the #1 language in demand for actual job postings. Java was #2, closely followed by C# and PHP.
I also seem to recall that one application being distributed on 100+ million devices still only equals a single application, not 100+ million applications (must be that new math that I keep hearing about).
Funnier still that Java is still an interpreted language and that language bigots like yourself look down your nose at any other language that threatens your perception of reality.
BTW, I work in a number of languages (60+ last time I counted) to create enterprise apps and for what it's worth Java brings nothing to my table except additional overhead in terms of resources and licensing fees.
Have a nice dot-com dream..........
This is slashdot. "We" don't like Sun or Java here. Take a browse at -1 and see for yourself.
Stick Men
I do not care that J2ME is on its way out the door, for a one simple reason. In 5 Years do you think we are going to need a Mobile Edition of any platform, Hardware will beable to run everything we run on our desktops today.
I think it's "and I would rather be _any_where else than here today" - you deaf buffoon.
Granted, it's not the easiest API in the world and I greatly simplified all that complexity into:
Email email = new Email();
email.setRecipients(String[] recipients);
email.setSender(String sender);
email.setSubject(String subject)
email.setBody(String body)
and finally...
boolean success = email.send();
But the code implementing this is quite a bit more, required a long time debugging the mail relay issue (required authentication!), and other -- shall we say -- opportunities to learn something new.
You are a true jackass.
And you have never heard of irony. Anyway, it seemed somewhat apropriate for this place.
Stick Men
Funnier still that Java is still an interpreted language
Not for a long time. Almost all Java implementations translate to optimised machine code at run time.
Interesting that the last numbers I saw had C/C++ being the #1 language in demand for actual job postings. Java was #2, closely followed by C# and PHP
.Net is relatively popular.
Depends where you look. What I see is Java and C/C++ about equal, C#/.Net far behind (about half the demand) and PHP hardly registering. This is in the UK, where
I also seem to recall that one application being distributed on 100+ million devices still only equals a single application, not 100+ million applications (must be that new math that I keep hearing about).
Ah, so those millions of Java games that were downloaded last year were all the same program.
BTW, I work in a number of languages (60+ last time I counted) to create enterprise apps and for what it's worth Java brings nothing to my table except additional overhead in terms of resources and licensing fees.
Licensing fees? What licensing fees? Use any free VM and an open source J2EE server like JBoss and there are no fees at all.
Coincidentally, I'm working on a J2ME project within my internship right now.
I've been running into this really frustrating problem of code running flawlessly on emulators, why they refuse to even start on actual devices (I only tested it with Nokia devices sofar). You click on the application, and nothing happens. You just remain in the application selection menu.
the culprit is always a certain part of the code. If I comment it out, it runs fine on the device as well. But that's what makes it so weird: apparently these are not run-time errors. The application containing the "bug" doesn't even start on the devices, let alone throw any exceptions or error messages. This makes it so incredibly painful to debug.
I really can't imagine how one could do any serious development if the emulator on one's development machine isn't 100% compatible (or at least as close to 100% compatible as possible) to the real thing.
If any other J2ME developers (more experienced than I) could shed some light on this, it would be much appreciated.
"Oooh, does that mean we get to kick some puffy white mad zionist butt?"
Ah, so those millions of Java games that were downloaded last year were all the same program.
:-)
Hmm, I'll put hard money on the table that there aren't "millions" of Java games. How about you?
Licensing fees? What licensing fees? Use any free VM and an open source J2EE server like JBoss and there are no fees at all.
Hmm, from your comment you must not work on really large enterprise systems. JBoss is great for small-to-medium sized systems, but I'm betting there's a reason that WebLogic is at the top of the heap.
Keep trying though, you'll no doubt find a way to rationalize a way around my comments.
Not for a long time. Almost all Java implementations translate to optimised machine code at run time.
.........
Oh, so then I don't need to invoke the JVM with:
java
Still looks like semi-interpreted code to me, just cuts out part of the parsing/translation work. Try again.
Hmm, I'll put hard money on the table that there aren't "millions" of Java games. How about you?
I would agree, but that was not what you were arguing, was it? You were implying that millions of downloads had no connection with the number of different applications. If you had actually researched the market, you would know that there are thousands of applications.
Hmm, from your comment you must not work on really large enterprise systems. JBoss is great for small-to-medium sized systems, but I'm betting there's a reason that WebLogic is at the top of the heap.
This is true, but almost ANY large application server for ANY language on ANY system will require licencing. It is not specific to Java, as you implied. If you want to write complex middleware (and not just PHP/JSP pages) you will need such a server.
Not for a long time. Almost all Java implementations translate to optimised machine code at run time.
.........
Oh, so then I don't need to invoke the JVM with:
java
Why is this relevant? You do understand the phrase 'at RUN time'?
Still looks like semi-interpreted code to me, just cuts out part of the parsing/translation work. Try again.
You try again. You did not say 'semi-interpreted' (whatever that means), you said 'interpreted'.
Java translation to (very optimised) machine code on almost all VMs is a simple fact:
From the documentation of Sun's Java:
"The server VM contains an advanced adaptive compiler that supports many of the same types of optimizations performed by optimizing C++ compilers, as well as some optimizations that can't be done by traditional compilers, such as aggressive inlining across virtual method invocations."
And IBM's Java:
" the Java Just-In-Time Compiler, which allows much faster execution by compiling bytecodes into native machine code on the fly. Our JIT compiler is used on almost all Java platforms of IBM, ranging from network computers (NC) to mainframes."
Hewlett-Packard's Java:
"The HP-UX Just-In-Time compiler for Java (JIT) included with the HP-UX Developer's Kit for Java automatically and efficiently converts bytecode to native machine instructions at runtime."
I hope this clears things up.
Hmm, I'll put hard money on the table that there aren't "millions" of Java games. How about you?
I would agree, but that was not what you were arguing, was it? You were implying that millions of downloads had no connection with the number of different applications. If you had actually researched the market, you would know that there are thousands of applications.
No, my comment was meant to point out that millions of downloads (of anything) doesn't equate to millions of applications. Ergo sum, I remain unimpressed by the use of statistics as a spin mechanism to categorically state that "anything" has arrived or has become the "dominant force" in development.
Hmm, from your comment you must not work on really large enterprise systems. JBoss is great for small-to-medium sized systems, but I'm betting there's a reason that WebLogic is at the top of the heap.
This is true, but almost ANY large application server for ANY language on ANY system will require licencing. It is not specific to Java, as you implied. If you want to write complex middleware (and not just PHP/JSP pages) you will need such a server.
You've missed my point completely. BTW, I am not in the habit of hiding my real thoughts behind subtle innuendos. If I had MEANT to say that the licensing issue was Java-specific, I would have said so. Please refrain from putting words in my mouth. My point was to comment that JBoss is not suitable for most large enterprise application needs and those needs require a commercial, licensable Java App server such as WebLogic.
Let's agree that you prefer Java and that I don't. That seems to be the only point that is coming out of this thread.
I have yet to be associated with a project written in Java where we didn't have to rewrite in another language (C or C++, usually) to fulfill the system requirements (those projects range from embedded systems to large enterprise systems).
I'm happy for you (and all the reat) that Java does what you need.
You've missed my point completely. BTW, I am not in the habit of hiding my real thoughts behind subtle innuendos. If I had MEANT to say that the licensing issue was Java-specific, I would have said so. Please refrain from putting words in my mouth. My point was to comment that JBoss is not suitable for most large enterprise application needs and those needs require a commercial, licensable Java App server such as WebLogic.
In your original comment you said that 'Java brings nothing to my table except additional overhead in terms of resources and licensing fees.' This implies that Java has a specific issue regarding licencing over and above other languages - that is, it is specifically more expensive or tricky to license.
I have yet to be associated with a project written in Java where we didn't have to rewrite in another language (C or C++, usually) to fulfill the system requirements (those projects range from embedded systems to large enterprise systems).
I used to code a huge amount in C/C++, and was a serious Java sceptic years ago, because of the hugeness of the run-time and the terrible speed (I once saw a demonstration of Swing, and could not believe how anyone could use something so slow). However, that was years ago. Things have changed. Java is no longer slow, and there is phenomenal support for Java in all scales of application. If I were having problems with Java for large applications I would absolutely not translate to (for example) C/C++ under any circumstances - you lose so much, especially portability between servers, which is critical these days. As Java is THE key enterprise development language, I would be sensible enough to realise that any problems were mine, and not the language.
Regarding embedded systems, the situation is different. Real time Java is 'cutting edge', and I would be cautious, and would certainly consider C++ for some applications. The J2ME system has lots of limitations that can restrict its applicability (although there are alternative Java versions that are more powerful, such as Waba).
I'm not out to argue; I just feel that when someone objects to Java for years-out-of-date reasons like 'Java is interpreted', I should correct this, as I believe that a modern high-performance garbage-collected OOP language like Java is a important step forward for the software industry, that has been (and still is) suffering severely from the misplaced use of lower-level languages like C++.