7 ms·
Java is preparing to co-bundling and native binaries
- Mitt 14y agoThe posting is about JavaFX, but in reality it will be a general mechanism for JVM apps. Oracle is doing this preparation, so that your JVM apps (Java, Clojure, Scala, etc.) can run under Android and iOS.
- vetler 14y agoWhat's the connection to Android and iOS here, isn't it just packaging?
- densh 14y agoNothing has been said about packaging for Android or iOS. From the info that's actually in the article -- currently it targets desktop applications. From my point of view, iOS is extremely improbable target unless Apple changes their application requirements. Currently they do not allow use of any 3rd party JIT on iOS and Java is all about JIT. Moreover JavaFX doesn't even run on Android or iOS at the moment (even without this new kind of packaging).
- 4as198sGxV 14y agoMono apps are allowed on iOS (eg games based on the Unity3d engine) so it is likely there is way to make Java apps acceptable as well. Oracle seems confident it is going to happen (http://www.infoworld.com/d/application-development/javafx-ios-dead-arrival-175907 http://www.infoworld.com/d/application-development/javafx-io...)
- densh 14y agoAs far as I know MonoTouch uses Ahead Of Compilation [1] on iOS. So there is no JIT in compiled binaries. [1] http://docs.xamarin.com/ios/about/limitations http://docs.xamarin.com/ios/about/limitations
- sgt 14y agoFinally - why did this come now, and not 4-5 years ago? I apologize for asking such a question, but it's the first thing that comes to mind. Principally I do like JavaFX, and this approach will work - given that these binary bundles don't end up like 80MB monsters.
- Uchikoma 14y ago(Disclaimer: I'm a Java developer since 1.0) For the same reasons that Sun had no nice theme and no nice icons for 15 years for Swing applications (do they now?) They are horrible thinking about desktop deployments, end users, marketing etc.
- bni 14y agoThe Java way has always been: To run this, click on the .bat file or type java -jar myapp.jar. And some people wonder why Java has been such a failure on the desktop. This should have been in Java from the beginning, instead of outsourcing this functionality to third parties (Mainly Windows only installer applications that sucks, and also isnt used that much). That said, I think it is misguided to include a JRE in the bundle. The correct way would be something like OS X Lion has, promt the user if Java is not installed. and then do a more or less automatic install of Java, in the system.
- densh 14y agoIMO the correct way is to include subset of JRE that's actually required for given application. This can lead to relatively small total application size and deployments that do not require any knowledge of java and java world from end user. Having one JRE for all apps on the system is nice but it's usually not needed.
- bni 14y agoYes, but still parts of the JVM would be duplicated between apps and updated on app developer X's own schedule.
- regularfry 14y agoPart of what this seems to be there to solve is the situation where the user doesn't have access rights to install a JRE.
- mgkimsal 14y agoWhy "installing" almost anything requires "access rights" is still confusing to me. I don't understand why there's not been a movement to 'install' things in to my own home directory structured, vs "c:\program files" on windows "/usr/bin" and such on linux. - Fall back to c:\mystuff or ~/bin.
- 14y ago
- wiradikusuma 14y agoAnyone using JavaFX? I remember it came out as a Flash/Flex contender, but didn't make the cut (which is too bad, I kinda like the language). Considering Adobe pushing HTML5, I find it weird Oracle still pushing Java for Rich Internet Applications.
- 4as198sGxV 14y agoBecause HTML5 is not adequate for complex UI development. It seems Oracle is the only company to see that the current "every app should be HTML5" trend will end in overhype and failure.
- TazeTSchnitzel 14y agoNot adequate? Perhaps not on its own, but there are libraries. Or am I missing something?
- soup10 14y agoWhen you are used to the fine grained control you get with a lower level language, html5 will always seem inadequate.
- TazeTSchnitzel 14y agoWhat kind of fine grained control?
- soup10 14y agoHtml5 is a heavily sandboxed abstraction layer from hardware. It's designed to sacrifice performance and hardware access to provide a safe way for websites to display rich content. Additionally for non-canvas apps, you must interact with the convoluted mess that is the DOM. Lower level languages are generally designed for maximum performance, and full-access to hardware. The assumption is that only trusted applications will be run. In summary, html5 is a school playground where all the kids run in slow motion and the toys are made of plastic. You can sort of make new toys out of sand, but they are fragile and not that fun.
- voidr 14y agoIt's funny that they are not supporting .deb packages, this shows that they still don't get it.
- karianna 14y agoActually this is coming with Java 8 via project Jigsaw (new modularity for Java).
- thebluesky 14y agoInterestingly javafx seems to be 70% faster than WebGL: http://weblogs.java.net/blog/opinali/archive/2011/11/25/javafx-balls-30 http://weblogs.java.net/blog/opinali/archive/2011/11/25/java...
- nl 14y agoThat's dreadful for Java. OpenGL support has been in Java for 6 or 7 years. WebGL has been in browsers less than 12 months and Java isn't even twice as fast? (I'm a long time Java programmer, but I think JavaFX is the most stupid thing I've ever seen)
- thebluesky 14y agoFrom the blog: "JavaFX (Hotspot Client) is 70% faster than WebGL, a great performance, considering the competition is a dedicated game engine built on top of a low-level 3D API."
- deleted 14y ago[deleted]
- aw3c2 14y agoHow does WebGL compare to a native application?
- _delirium 14y agoIt depends strongly on the specific application. The actual GL calls themselves, once data is on the GPU, execute at the same speed as in native applications, because it's the same hardware/drivers/API. But, the roundtrips between JS code (and JS datatypes) and the GPU could kill performance even more than CPU<->GPU roundtrips normally do. So depends on how good the application is at avoiding those.
- aw3c2 14y agoThanks!
- X-Istence 14y agoOne of the biggest problems Java faces for real adoption amongst tech people is still the perception (and I am not sure it is entirely flawed either) that it is insecure. Yes Flash is just as bad if not worse, but we are stuck with them because they are so ingrained within the Internet. Java never caught on, and I know that when I see a Java application I let out a huge sigh and go download and install Java again. I've gone so far, and so have many of my friends, to remove Java completely and it is not like I am missing out on anything important! I just don't trust Java. I don't trust Flash either, but that is nicely sandboxed in Chrome, sure exploits may exist there, but at least it will be a lot less likely, and Click to Flash helps as well!
- bad_user 14y agoThe biggest problem Java Applets had and still have is that it's so much pain to update the Java plugin that most users are left with old versions that have documented exploits. I don't get why it doesn't auto-update itself - if browsers like Chrome or Firefox can auto-update themselves automatically, why can't the Java plugin?
- Ygg2 14y ago> I don't get why it doesn't auto-update itself - if browsers like Chrome or Firefox can auto-update themselves automatically, why can't the Java plugin? It's better that they don't. There are often subtle differences between versions. Sometimes it causes some JDBC drivers to fail. Sometimes it can cripple entire platforms like 1.7 did with Solr for instance.
- bad_user 14y agoEven between minor versions / security updates?
- Ygg2 14y agoI don't remember which exactly version I think 1.6_10 and 1.6_21 had some differences in way Hibernate communicates with JDBC, so basically app worked on my colleagues computer but not mine. It took quite some time to figure out this problem.
- KevinEldon 14y agoI write internal corporate IT systems using Java. This announcement is good news because it should be easier to deploy to servers and a I can guarantee that I know what JRE I'm working with in production. I can now move to Java 7 without having to worry about breaking other systems or adding an extra deployment step for my apps.
- jackalope 14y agoAren't you concerned about freezing the app to yet another runtime that must be individually updated because of security issues or features that are decoupled from the operating system (like timezone data)? Or do you see this as an opportunity to roll out timely updates that are independent of a global system runtime? Since you mention servers, how will you avoid clobbering machine-specific tweaks (like heap size)?
- brown9-2 14y ago1. Couldn't you always have guaranteed this by being aware of which JAVA_HOME was on your path or which java executable your startup script ran? Having multiple java installations on a server you manage has always been trivial. 2. Isn't this announcement only for JavaFX?
- deleted 14y ago[deleted]
- CirstoiuRadu 14y agof@#ing finally?
- Zarkonnen 14y agoThis is really, really good news for me. It (hopefully) means that you can now easily provide a download of a Java executable without the user going "oh, I don't like Java" or the computer going "you need to install this whole other thing to try this program".
- malkia 14y agoOne thing that makes managing .NET easier compared to Java, is that there is always executable produced (.exe). So the transition between C/C++ to .NET or (vice-versa) is transparent to the user (or a more complicated process launching the executables). With Java, it seems wrapping (at least on Windows) is done only through batch files, which among other thing have terrible Ctrl+C handling (asking for prompt and such). Maybe I'm naive, but if I was to solve this, I would've done it the way many self-extracting tools work - a small .exe with your stuff at the end (or look at the same directory at the wrapped executable, same name, different extension), and run it like this. And then java itself would've be a dll itself, loaded by this process. This way migration between languges/runtimes would be easier if Java is to play some part of it.
- werpon 14y agoIt's easier when your target is just one OS.
- TazeTSchnitzel 14y agoFunny. I use Mono, other people use Mono, it works fine. It means I can target Linux and Mac OS X, and even develop on those platforms.
- oconnor0 14y agoThis doesn't seem to mention Java just JavaFX. Those aren't the same, and it would be nice if this was going to eventually be supported for Java applications.
- densh 14y agoThey dropped JavaFX Script in 2.0 release. So now JavaFX is just another library for java that is going to be part of JRE/JDK after Java 8 release. It's also bundled in recent releases of JRE for windows.
- sunyc 14y agodoes anyone know what size it is now?
- naitbit 14y ago50MB zipped, 148MB unzipped