Red Hat Devs Working On ARM64 OpenJDK Port
hypnosec writes "Developers over at Red Hat are busy porting OpenJDK to ARM's latest 64-bit architecture — the ARMv8, also known as the AArch64. The current OpenJDK ARM situation is rather unsatisfactory: for the current 32-bit ARM processors, there are two versions of the HotSpot JVM for OpenJDK — Oracle's proprietary JIT, and a less sophisticated free JIT that performs poorly in comparison. To avoid a similar situation for the 64-bit platform, the developers are working on an entirely Free Software port of HotSpot to 64-bit ARM."
will sue.
Be seeing you...
This is excellent news.
It will also be awesome when OpenJDK is ported to Android (it'll probably never make it to iOS due to Apple blocking it, which is a real shame). The IcedRobot project is attempting to do this. Just image, if you could write your application in Java and it would work nearly seamlessly on all the Windows, Linux, Unix, Mac, BSD and Android devices you have to look after. Sure, there are gotchas on each platform but you are usually 99% of the way there (at least, that has been my experience) and your unit and integration tests allow you to quickly find and address any platform quirks.
For all its flaws (and it certainly has them) Java's goal of having a single enterprise-quality language (and, far more importantly, a broad amount of *standardized* libraries ) available on all platforms is a great thing. Only those companies with an vested interest in keeping the IT world silo-ed in islands resist such standardization. Sure, innnovate in your own languages but don't try and balkanize or block standard Java on your platform. Most of us want to amortize their development investment across multiple platforms (and the broadest swathe of the market), and making us use niche tools just for only your platform is painful for us. Our ideal is to develop once and sell everywhere. Portability is what made C great, and for modern development is the single most important feature of Java as a language for huge-scale development projects (nothing else comes close; other languages are portable but their libraries are often not).
Go RedHat!
ps. queue the Java haters. For me the language is less important than the goal: Write Once Run Everywhere (& Test Everywhere, this is the real world after all). Skilled Java developers can get pretty damn close to this ideal.
What's stopping them from doing this for 32bit ARM while their at it?
Um, I already have Debian Kit installed into my rooted Android mobile with ARM CPU (Samsung Galaxy Ace). And Debian does include OpenJDK, although 32 bit. I can compile & run console Java applications just fine. I even have some experimental X windows server there, but most X apps still either crash or run out of memory. Xeyes runs fine though. I read somewhere that people had better luck with headless X windows server and Android VNC client displaying whatever is displayed on that server. I'll have to try that some day, if this setup doesn't run out of memory.
Samsung Galaxy Ace is underpowered to run Java or X with anything complex on it though... I need to check out IcedRobot.
Oh, and I agree- Java is great for many things. Some people will still hate it, but I use it every day and I still cannot find better technology for what I do (mostly serverside enterprise stuff).
--Coder
I wonder how they're planning to prevent Oracle releasing a more sophisticated proprietary JIT for 64 bit ARM?
Many ARM-based chips include the "Jazelle DBX" (Direct Bytecode eXecution) hardware CPU extension, which lets "95% of [JVM] bytecode" be executed directly by the CPU -- without need for recompilation to 'native' ARM/Thumb instructions. (See http://en.wikipedia.org/wiki/Jazelle )
However, unlike most of the ARM universe which is fairly open, Jazelle DBX's specs, implementation, and operating details are apparently a closely held secret, shared by ARM only with select JVM implementors. I'll be interesting to see if ARM decides to help out the OpenJDK people. Googling around, it looks like so far the answer has been "No."
for god's sake, quit with these awful names. I have to type "x86_64" or "x86-64" far too often already here in gnuslashlinux world, even though no-one should mind using "x64" like microsoft (in a weird flash of sanity) does (personally I was okay with "amd64" actualy). And now "aarch64" ? "arm64" just too sensible and straightforward or something? Hell, I can see the occasional person being worried about "a64" being confused with alpha, but alpha is EOLed anyway. We could have had "x64" and "a64" for the two most important extant architectures today, but nooo... Now we've got "x86_64" (with a fucking underscore? Seriously?) and "aarch64".
Gaaah. It makes me so mad.
If we look more practically it has never left, it just returns to desktop environment. Tons of very useful Java applications are made and used by millions of users. Main sales point - yes, one binary works (with tweaks and testing) on at least 10 different platforms. For example, OpenStreetMap has an excellent editor for advanced mappers JOSM - while Linux for example has their native editors for OSM, JOSM wins hands down in portability and universality. That means a developer can hack together a plugin for JOSM using Linux desktop, and after one good testing and bug hunting phase, it just works everywhere. Also user experience is much easier to share.
Of course using JVM have drawbacks and we all know them, and you won't use it for resource sensitive cases. But in many cases positives outweigh them.
user@ubuntubox:~$ stfu This server is going down for shutdown NOW!
We use PowerPC a lot where ARM can't handle the heavy lifting. A good free fast JVM would cut our embedded development time in half -- we still do the real work in C++, but all the management (often more than half the job) can be in Java.
I hope it will be hardware accelerated. I have also wondered if Android's Dalvik VM took advantage of built-in hardware acceleration in ARM processors. It seems to be a waste if it's not used.
Kriston
hello
Does anyone know the legal status of OpenJDK? Most of the java files are under GPL + Classpath exception. Looking inside source code tree, hotspot is under pure GPL. Does this means that the hole OpenJDK is under pure GPL since Object.clone() etc is implemented in HotSpot source tree part?
The reason that I am asking is that JRE downloaded from Oracle is only free to use if the computer is under End-User control, meaning that if the user can install, use word processor or internet browser by him self. If you are selling a system that is pre-installed and written in Java and is the only application allowed to run (“embedded system”), Oracle wants an insane amount of money in license fees.
Regardless of technicals and wherever you use arm64 or not, this means that there will be a well qualified team of engineers working on OpenJDK besides Oracle. This is Good News (TM), folks ! For last three years I was worried that Larry will do with Java what he does with all other products and technologies he puts his hands on - specifically, turn it into crap (uh, yes - money producing one - yet total crap from engineer/dev/admin perspective). Oracle might be good money sucking entity, yet it is a remarkably poor steward to technologies and standards they put their hands on (especially open ones).
So, this is very good news folks! I'd even urge you to support Red Hat in this regard and make sure all your pet projects work as charm on OpenJDK (in addition to Oracle JDK).
One more opportunity to kill this horrible gloopy pile of shit is missed.