Lots of doors are being closed for Java

Hi!

WebOs uses OasisJVM based on Harmony but its uses is reserved for internal operations, applications are not allowed to use it which means that WebOs has no Java support and I don’t forget that OasisJVM is available only in command-line and without support of AWT & Swing. Google seems to prioritize native development kit for Android and it says that native applications are awesome. There is still no official and legal JVM on IPhone. The future is quite dark on Windows Phone too. Lots of devices using SoC (system on chip) have no pre-installed JVM, tablets (except those with Android), ADSL/SDSL set top boxes, … The situation is even worse on video games machines. Which interesting platforms have some sort of Java support except computers? What can we do to improve this situation?

There now seems to be a new ‘java is dying’ type thread every month here on JGO. Maybe this trend tells us a lot more about Java’s popularity.

I still maintain Java is hugely popular; just only server-side for big enterprise software and web-apps. Outside of that, non-server-side Java development is slowly becomming a niche.

Android is more like a new vehicle for java, hopefully this litigation between oracle and google doesn’t put google off java the language. As someone said here before, it’d be great if google put out an android dalvik vm for PC’s with applets and web start, but done properly…

I think it’d be pants if Dalvik took off any more. I think what’d be best is if Oracle start being a bit less twatty about distributing their ARM JVM.

Java has always been niche on the client. So no change there. Odd considering how good it is at general application development.

Cas :slight_smile:

[quote=“princec,post:4,topic:36258”]
Wasn’t that only until recently? Java applications used to be associated with ugly user-interfaces and poor performance. Applets only became useful (atleast for me) since update 1.6.10, which was probably a last-ditch effort by Sun to remain relevant on the desktop. It’s a shame it took so long.

I think this Oracle lawsuit is a good thing. It will motivate Google to work on their Portable Native Client technology, which I think can be quite exciting for all kinds of platforms. At the very least, it’ll give Oracle some competition as a browser vm (I dont find Javascript + WebGL + canvas particularly convincing).

deleted: wrong button

JS+WebGL+Browser is exactly everything applets should have been. It’s awesome. Just unfortunately a bit slow and prone to all the other problems OpenGL has always suffered, not to mention all the problems that are going to arise by browsers all being a bit different. It’s all probably too late anyway: Unity and Flash are doing it perfectly just right. No real room for much else any more.

Anyway - Java on iPhone => Colossal win. Java on PlayStation or XBox => Colossal win. Java on Android => Colossal win. But none of these things has happened because of Sun’s inept management. All too late now. I’m looking at GCJ to see if I can figure out the iPhone dilemma. I wish GCJ had a fast GC.

Cas :slight_smile:

While WebGL is great in theory, JS is still too slow and IE is unlikely to ever support it and even if they added it today, it’d be years before it’d be widespread enough for mass use.

Agreed that that Unity and Flash do it brilliantly, no love for LWJGL/JOGL applets? :slight_smile:

LWJGL applets are pretty much as good as any Unity stuff. In fact capable of being so much more. The problem is the “capable” part. No-one has delivered an integrated toolchain for getting content out there built on these technologies. Unity could have been that toolchain but they got wise to the fact Oracle/Sun won’t let Java run anywhere (irony, thy name is Java) and made their own client instead.

Cas :slight_smile:

I think you’re behind the times. 3 megacorporations have been investing into incredibly fast JIT compilers for JavaScript. v8 in particular makes you forget you’re running JavaScript. But that’s not even the point - WebGL forces you to write all graphics processing in shaders, which execute on the GPU. JavaScript is only responsible for moving things around and user input.

IE, along with others, have also incorporated hardware acceleration into the 2D Canvas context (regardless if you use WebGL or not). So I think IE is more open to implementing HTML5 features than ever before. But again, that doesn’t matter if they do or don’t, because their usage has been slipping (below 50% these days) and people have had no problem telling users to download FF/Chrome/etc.

As much as I hate relying on multiple browser implementations, I actually feel better than developing against Oracle’s whim.

That is not what I mean. I don’t say that there is no solution and I’m not pessimistic, I still use Java for all my projects.

In my humble opinion, J2ME implementations were often crappy but Android DVM is slower than J2SE For Embedded. I prefer real Java.

Java has a lack of WYSIWYG tools to build games, that’s the point, I agree with you.

I think you underestimate MSIE even though I don’t like it. If IE does not support WebGL, it won’t kill this technology but it will be an obstable to its massive adoption.

Which solutions are the most viable to put Java on consoles and embedded devices that have no JVM? GCJ? OpenJDK? XMLVM? Language conversion tools (based on ANTLR?)? 100% native implementation of the Java API like NaJa? AOT compilers?

Who would be ok to put some means (time, money, …) onto the table to do this?

Blu-ray players.

Lots of doors being closed?

My Estimates:

1.2 Billion J2ME Phones
1 Billion Android Phones by 2012
1 Billion PCs/Laptops/Netbooks with J2SE browser plugins

That is basically one Java device per person that can afford the device.

Sure we lose out on the following:

200 million Apple devices (You can still install it if you don’t care to adhere to Apples shit)
20 million WM (WM7 I believe actually have J2ME installed)
~12 million WebOS

Apple is the only relevant player that is hard on Java. The rest are pretty meaningless.

Although, I admit J2ME and J2SE need a more friendly market place. Many of the best Java programs get converted into a native build now days because many of the stores don’t like Java.

What we need is cheap AOT and on all platforms. That would solve the rest of the problems.

So, I would say that Java has it’s doors wide open. Just because Apple, Intel, and others have gatekeepers doesn’t mean you can’t deploy.

Just in case you didn’t realize. Apple, and others are not going to change unless they are forced to change with AOP or code/bytecode converter. Your probably not going to get them to add Java without it.

How long do you think AOT or code/bytcode converter for J2ME would take per platform?

I would say one man year for each of the different platforms not wanting Java. What platforms really need this Apple and the browser? What else? I think that is pretty much it. We already have XMLVM and GWT so both are already partially solved. Sure you don’t have Swing or AWT support so what. The rest is mainly there.

I’d say you’re ahead of the times :), its all exciting stuff but as we’ve seen time and time again, it just takes way too long to catch on (if ever) and technologies like Flash are always one step ahead, work better and are just a more practical choice.

One recent example of the fate of a popular HTML5 game, Cardinal Quest.

I don’t even want Apple to support Java on iOS! I just want fecking Oracle to license me a fecking VM so I can put it on iOS myself, embedded into my games! Like I do already on Windows, and will in the not too distant future also do on the Mac.

Cas :slight_smile:

Also all the XMLVM stuff etc etc. is all well and good except that it’s painfully shit. As in slow. The reason I use Java right now is because it’s pretty fast and easy and strikes a great balance between fast and easy. To get faster I need C++, but everything gets very hard; to get easier I need javascript, but then everything gets slow. I can’t really do “slower” because I’m already pushing the limits of Java as it is. Maybe my code could be a smidgen more optimised but then things aren’t easy any more.

Cas :slight_smile:

princec, I have seen your code and you could get a considerable performance boost if you need it.

Look at MiniSpaceWars on BlackBerry to give you an idea of Java performance on very little hardware.

XMLVM was slow last time I checked, but that can be fixed.

You don’t need C++ or JavaScript. Or for that matter Flash or Unity. I however do think we will all need HTML5 and a distributable VM or AOT compiler.

Just wondering, what is an AOP compiler?

Do you mean an AOT (Ahead Of Time compiler such as Jet http://www.excelsior-usa.com/jet.html). Googling AOP seems to just turn up Aspect Oriented Programming which looks like a different idea… ???

Sorry yes AOT. I did it 3 times. AOP is good too :slight_smile: