How Many Mobile Devices Use Java Now ?

Started by
5 comments, last by Bearhugger 9 years, 10 months ago

There has been a kind of "war" against Java game developers on mobile devices for a long time now ... my question is, how many mobile devices now-a-days exist that can use normal Java applications ?

How many do you think will be able to use Java 7 & 8 ?

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

Advertisement

"Normal" as in J2SE, J2ME, Android... ?

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

How many do you think will be able to use Java 7 & 8 ?

Zero.

Android is stuck on a hacked-up fork of Java 6, and all the legacy J2ME devices are even older. Plus, neither Android nor J2ME provides the same standard Java libraries as desktop Java, so compatibility is limited.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

JavaME 8 as it is *could* work in any ARM device AFAIK (Raspberry Pi for example), and they have JavaFX working on those too, I haven't seen Oracle trying to get into Android/iOS/Windows Phone either.

It seems like its more oriented to other applications rather than consumer mobile devices.

neither Android nor J2ME provides the same standard Java libraries as desktop Java

AFAIK for JavaME 8 at least, its just a stripped down version, they merged the codebase somewhere between Java 7 and Java 8.

Dalvik is used in all Android devices (with varying features, latest ones are around Java 6 features + some Java 7 little things) and BlackBerryOS 10 runs Android Runtime (which I guess includes Dalvik).

I've seen people using ExcelsiorJET (supports Java 7, they're working on Java 8) for deploying applications to native binaries but I'm not sure of the extent it can be used on Android/iOS/Windows Phone (my guess, they can't).

I doubt Google will be stuck in Java 6 land for that much longer, prolly they'll launch their own language or something, maybe they'll get into some sort of agreement with Oracle about JavaME, but my bet is on "Grab another existing language, extend and tailor it to Android, make sure no one will sue us for it."

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

AFAIK for JavaME 8 at least, its just a stripped down version, they merged the codebase somewhere between Java 7 and Java 8.

For Java ME 8, yes, but that isn't exactly common in the wild yet, and all previous Java ME platforms are stuck on a VM that matches the Java 1.3 feature set.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

If you just want mobile devices that use some form of the Java language, I'm guessing tens of billions.

You have feature phones from Motorola, Nokia, and everyone else dating back to about 1997. There are also non-phone mobile devices, you could code in Java for PalmOS, WinCE, and other mobile platforms. So roughly 17 years worth of mobile devices, sold all over the globe.

I doubt Google will be stuck in Java 6 land for that much longer, prolly they'll launch their own language or something, maybe they'll get into some sort of agreement with Oracle about JavaME, but my bet is on "Grab another existing language, extend and tailor it to Android, make sure no one will sue us for it."

I've been thinking for a few months that they should just grab Mono and show Oracle their middle finger. Of course they would never do that because .NET is a Microsoft technology and Google and Microsoft hate each other like cats and dogs and it would mean Google would use a MS tech, but I can spot at least 3 big advantages to adopting Mono:

1- C# is the closest language to Java (not counting J++ and J#) and, thanks to Java's very slow evolution over its years of existence, C# is way ahead of Java in terms of language features. What this means is that C# can do nearly everything Java does. (Speaking strictly about language capabilities; libraries are another topic.) It makes it easy to adopt C# for Java programmers.

2- Want to use native? No more annoying JNI and ugly glue code! Just make a C++/CLI project for interop with Android and code your app in native C/C++. I think you wouldn't even have to use a lib for the interop layer. I'm pretty sure there are #pragma instructions that allow you to specify what should be compiled to native and what should be compiled to managed code. So you'd make it native by default and wrap managed code with #pragma.

3- J# and it's Java compatibility library make it really ridiculously painless to reuse Java code with no (or almost no) change. It's not perfect because 1- it was an old version of Java and 2- the point of J# was to help developers migrate their apps from Microsoft's defunct Visual J++ platform to .NET which was full of Microsoft-specific language extensions. But Google could take care of making J# support standard Java 6.

This topic is closed to new replies.

Advertisement