views:

649

answers:

5

I feel that while I love J2ME and Java it's hypocritical of them to have two APIs for Java. Java was designed with "One code, many platforms" in mind, and now it's more like "One API for every OS, and one API for everything smaller than a netbook." I see a lot of J2ME emulators and such being ported to things like the PSP, and other consoles for homebrew, and I wonder why no one is doing this with normal Java.

I'd love to write a game to play on my PC, than fire up a simple emulator and play the same game on the PSP, or the Dreamcast, but I can't. J2ME can't even run on a PC, you need an emulator for it, which reduces your market greatly. Plus most emulators are bulky, and not good.

With super-phones like the IPhone coming out people are going to want more than little J2ME games, so if Java can't port their standard JRE to it they might find themselves missing the boat like Microsoft did with the netbook boom.

It just feels like Sun needs to ether work on making the standard JRE smaller and more portable, or making J2ME available on the PC easily.

+7  A: 

I think this should be a community Wiki

But to the point, my view is that J2ME is going to die a horrible death and leave us with normal Java. The current Netbook trend combined with the more powerful smartphone trend means that your average cellphone today is much stronger than the machines that ran J2SE when it first came out.

Hence, we can do away with J2ME, which was designed for ancient Nokias, and enjoy the standard Java on a smart doorknob (or a smartphone).

The only problem that Java faces is that the biggest player in smartphone applications - Apple - isn't going to allow a JVM anytime in the foreseeable future.

Uri
Apple is still behind Blackberry and Nokia in that market.
cletus
What about android? any java on that one?
Ido
While cellphones are getting bigger, Java is getting bigger too. I would guess that many of the machines that ran Java when it first came out couldn't do it any more.
DJClayworth
That's true, but in a year or two we'll have cellphones that run what today runs in a netbook, and that can easily run Java.
Uri
+4  A: 

Even if your monitor had an accelerometer in it, you probably wouldn't want to use it for an iPhone app - so I'd say there are limits to portability after all.

If "write once, run anywhere" is misleading, that's because it was conceived before cell phones became prevalent. As far as the API goes, I agree a common subset would be preferable, but once again, the entire J2ME niche is completely new. The JVM is still useful: a web browser can run on Windows, Linux, and OS X, and a game can run on both Nokia and Samsung phones.

Is the original Java ideal dead?

It still meets the original demands of portable code from workstation to workstation, so no. But it sounds like you've set an even higher bar for future platforms.

Nikhil Chelliah
A: 

With newer platforms for mobile like Windows Mobile and Symbian which have captured the market share j2me etc have taken a backseat due to issue like not taking advantage of hardware etc..

abmv
+1  A: 

There are many things that a Virtual Machine might chose to abstract away.

The OS abstracts away some of the common hardware, by providing standard interfaces to them (block i/o, character i/o, etc).

The JVM set out to abstract out the processor and the OS itself, a mighty goal by itself (at that time)! However, abstracting the peripheral hardware was, and will remain, a difficult goal to achieve.

Perhaps, when we see more convergence of hand-helds/laptops/desktops/servers, the need to abstract out the hardware will diminish.

ePharaoh
A: 

J2ME is great. You can package and run J2ME applications with the lean and clean http://www.microemu.org/. Since I have been writing code for J2ME, I'm a better programmer. It forces you to be efficient on memory. I love the small clean API.In the future all my client application will be designed for J2ME and then ported to J2SE/Android/IPhone. The difficult thing is to build your in-house GUI framework flexible enough for the application to run smoothly on any screen size. That takes time.

Mordan