Oracle Open Sourcing JavaFX, Including iOS and Android Ports
hypnosec writes "Oracle is going to open source JavaFX ports for Android and iOS soon as a part of its efforts to open source the framework. JavaFX, destined to replace Swing GUI library as the default method to develop graphical user interfaces, is a framework used to develop cross-platform rich Internet applications. The ports for iOS and Android are based on an 'unreleased version of JavaSE Embedded for iOS/Android.' Oracle's Richard Bair revealed that the 'first bits and pieces' for JavaFX for iOS should probably be out sometime next week. The rest of the release will be scheduled along with the release of Prism (the next-generation toolkit). Oracle is going to keep javafx-font proprietary, but Bair has said developers are already working toward an open source native replacement of the component through the OpenJFX list."
why?
Be seeing you...
... you can't open source any system level components in an iPhone or iPad without talking to us first!
It is still early for April fools. This is Oracle which has had a series of sad missteps regarding open source. Since it's Oracle, I have to wonder "what's the catch".
That said, if this really happens, then I suppose we will see Java FX really unencumbered and able to appear in Iced Tea and any other open source efforts?
Would using Java FX on Android have any advantages over using the native Android user interface features? (I don't know about iOS, so I won't ask, but someone familiar with iOS could ask and answer that one.) One could say that an advantage of Java FX on Android is that it makes more code you wrote for the desktop / browser / iOS / etc more directly reusable on Android. But like Swing before it, does it also result in a 'least common denominator' user interface across platforms that doesn't perfectly match the conventions of any single platform?
I'll see your senator, and I'll raise you two judges.
I wish they would release JMF (Java Media Framework) for Java so we can start writing applications for web cams. I guess we'll have to stick with Flash.
line after line of this garbage:
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {}
To quote Admiral Ackbar, "It's a trap!"
Android used the Java API framework on the basis that Sun provided it as being "open" and then later also provided it as open source. This resulted in a situation leading up to a Slashdot article titled "Ellison Doesn't Know If Java Is Free."[1]
It seem nice that Oracle is "offering" to further extend it contributions to open source. But the problem is that an offer is only genuine if the person making the offer is capable of something known as "informed consent." I think it has been demonstrated that Larry Ellison is too mentally handy capped to actually consent to the so-called offer of JavaFX and as such it will be retracted at any time.
Anyone else find it ironic that Oracle takes the stance that Android's distribution is illegal but then still produces a port of JavaFX which is only useful if you happen to have access to a copy of Android?
The only way I can make sense out of the actions of Larry Ellison is if I take it as a given that he exists in multiple parallel realities at the same time and just can't keep them straight anymore. Hence, he is acting on the basis that in one reality the Java API was never provided as an open framework and in another reality Android is legal so it only makes sense to release applications for it.
But of course the idea someone is acting irrationally due to an existence in multiple universes at the same time is just crazy. Right?
[1] http://developers.slashdot.org/story/12/04/18/0044257/ellison-doesnt-know-if-java-is-free
Huh, who knew. Last I checked, JavaFX was built on top of Swing. Apparently that may have changed with 2.0.
Or maybe not. I can't tell.
But one thing seems pretty clear from screenshots: your JavaFX applications will fit in with the native desktop just about as well as your Swing applications did. Which is to say, "not at all."
You are in a maze of twisty little relative jumps, all alike.
...and his Holyness Ellison will bring all the joys of Java (and Ask.com) to the mobile experience! Read all about it on Groklaw!
I've always thought that having GUI files is the way to go instead of in code. I'm fine with XML (FXML in this case), but I'm sure some others have gripes and may prefer property files/etc. But how nice would it be to have an XML standard for all GUIs? Then all you have to do is load one XML file across GTK+, Qt, X11, Windows, Cocoa, and even OpenGL. Example:
/> />
<window width="300" height="300">
<edit width="100" height="20" value="Type name."
<button width="50" height="50" value="Submit"
</window>
Then do the logic in whatever language you want. I know it's a pipe dream with several problems, but damn it would be nice.
The G
Not everyone is dropping Java. Java is heavily used in enterprise systems. The JVM (virtual machine) is one of the most amazingly well engineered machines ever created.
I don't know where you just don't like the word Java, or whether you don't like the language, or whether you don't like Applets in the browser, or what. But the Java ecosystem is way larger than you imagine.
I'll see your senator, and I'll raise you two judges.
What will be interesting is what happens with the ARM Java Virtual Machine and Runtime Environment.
None of the free JVMs are anywhere near as fast as Sun's. If they release the ARM JVM code to OpenJDK
that's a huge win for embedded development. You can jet the JRE for ARM now, but the licenceing is unclear.
If it were clearly free, commercial embedded developers would be all over it. ARMs are plenty fast.
Similarly for the PPC JVM.
Oracle seems very active in suing anybody who uses Oracle open source.
> Oracle Files Appeal Brief in Oracle v. Google ~pj
http://www.groklaw.net/article.php?story=20130213000119924
But if and only if they honestly do it, don't play games that allow them to pull the stunt they tried with Google, and do it soon.
Java's technical merits are moot.
Oracle's has tarnish Java's good name.
Between the cross-platform exploits, Oracle's lack of eagerness to plug them until recently, and their attempts to monetize anything Open-Source from Sun that had no-strings-attached, people are running away from Java.
E.g. People don't want to touch LibreOffice because it has ONE dependency on Java in its BASE application.
Obama's legacy: (N)othing (S)ecure (A)nywhere and (T)error (S)imulation (A)dministration
He could be in high school, a "fresh out", or a geek trying to get "street cred" by mindlessly bashing Java. This is slashdot.
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
"Amazingly well engineered" for moderate values of "amazingly"- if it was as awesome as you're making it out to be, it'd be used EVERYWHERE. It's only used in SOME enterprise contexts (I can assure you Java would fall flat on it's face (in fact it and the companies that bet on it did...) if you tried to handle securities trading volumes from just one exchange, say, NASDAQ. The whole concept of a VM is useful for quite a few tasks- but is still a bad, bad idea for deterministic requirements.
I guess you never heard of real-time Java. It's a commercial product sold by Oracle.
JavaFX 2 is a nice evolution for those used to Swing (yes, yes, many don't like Swing, but you simply can't beat Swing for power and flexibility once you get some experience in it). It has a much nicer default styling than even Nimbus for Swing, and great built in aesthetic effects (hence the "FX") that mostly get switched on with a simple boolean property. JavaFX makes the same mistake as Swing in that there are no standard Calendar/Date controls, yet just about every application needs these. Fortunately you can use one of the third party controls, or even embed your existing Swing applications into your JavaFX app. That's pretty funky stuff.
It is used heavily in the enterprise, and many enterprises are now learning that is not such a good thing. Enterprise apps are often pinned to particular versions of Java. This has left many enterprises unable to update the versions of java on their desktop, which leaves them open to trivial drive-by attacks. This is causing real operational cost as companies have to rebuild machine after machine as they get compromised. At some point the pain will cross the point of costing more than replacing the Java app with a pure HTML app, and they'll dump Java. The writing's on the wall.
Allowing multiple versions of Java to exist on the system at once was a tragically bad idea, and it's biting the entire ecosystem in the ass right now.
Since LibreOffice just hit version 4.0 and the improvements keep coming in, I don't think you are correct. You may have meant OpenOffice. OpenOffice suffered more from Oracle's heavy handiness than any technical issues with Java.
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
The JVM (virtual machine) is one of the most amazingly well engineered machines ever created.
And, like many of its kind, it's the right solution to the wrong problem.
Ezekiel 23:20
You should have mentioned Azul Zing.
Ezekiel 23:20
Um, maybe because now there's a open source alternative to Flash for interactive Web applications? Yeah, Javascript.
But why not have more options? Use as desired.
I'm as disappointed in the Java security situation as anybody else, but the Slashdot knee-jerk anti-Java reaction is kind of dumb.
It's not knee-jerk. It's a carefully considered judgement that the potential benefits are not worth the demonstrated risks.
Java in the browser had its chance. It blew it, mostly because early implementations took ages to start up. People went elsewhere. That's how promising standards die. Security problems over the last few years have nailed that coffin shut.
The masses have chosen. Yeah, they chose a lousy one, but it's over now.
Enterprises aren't generally running Java on the desktop. *sigh*
I swear Slashdot is full of people who think they know computing because they have a computer, but have no idea how it is used in practice.
Consistent response time != Deterministic response time.
I can assure you Java would fall flat on it's face (in fact it and the companies that bet on it did...) if you tried to handle securities trading volumes
Or if you tried to run really massive-scale web sites on it, like, say, Google. Oops... much of Google is built with Java, including plenty of performance-critical code.
Java works just fine at really large scale, and at extremely high transaction volumes. It tends to require more RAM than a comparable system built with C or C++, but performance is close to identical assuming good engineering of both -- and it generally requires less effort in Java than in C or C++, even when you include the tuning efforts required to get maximum efficiency out of Java.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Yes they are. I can say this from direct experience, because this is exactly the situation my company's in. We've got over 40,000 users, and our desktop support team is in absolute hell rebuilding systems that are getting constantly compromised.
First of all, you don't have a deterministic response time on a PC-architecture machine anyway (paging, caches, SMM etc.). Second, I can hardly see a difference between the two, unless you're doing hard RT.
Ezekiel 23:20
As he said "The JVM (virtual machine) is one of the most amazingly well engineered machines ever created. " Sorry if you don't understand but it is probably one of the most researched and well understood machines on earth after x86. The jvm has so much amazing analysis performed on it that you don't really have to worry about whether your dog shit business case will work on it or not because financial firms trade on it, super clusters use it, and so to blurays and cell phones.
Look up http://en.wikipedia.org/wiki/Xaml and it's use in WPF.
I have run the distributed YaCY search engine, a very interesting concept. It is coded in Java and runs a Java-coded PDF parser.
Unfortunately. after a few hours of indexing it normally crashes the JVM (!) while parsing some "exotic" PDF. I am not sure why this is, but that completely invalidates your claim of "one of the most amazingly well engineered machines".
I would call it a typical commercialware crapball: Long on features, short on security/correctness. Why did they add so much stuff to the JVM and the libraries ? Yeah, because "features sell".
The JVM found a proper home with Oracle, next to the RDBMS you could crash by evil hacker tools like telnet and some random typing.
I can run snappy, ergonomic, efficient software on x86 that does not crash the OS. See Linux.
Properly crafted data run through a PDF parser can completely destroy the JVM. I guess it could own the JVM, if some more effort were spent. So, you are obviously clueless.
The JVM is a shoddy piece of work from an academic and the results are clunky, sub-ergonomic and insecure.
This shows only you have no clue at all ...
Should I reall list the majour trading Systems that are written in Java? Or are you confident, you can google them your own?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Java is a threat to nobody and all you read are the responses of proper engineers who have drunken some of the Java KoolAid and are now pissed because of their wasted time to learn Java and all around it.
When apps look crappy, freeze at random and use ten times more memory than the competing C++ app, they are not a threat at all. First-rate software must be coded in C++, C, Objective C or something equivalent (e.g. Delphi). Full Stop.
Not everyone is dropping Java. Java is heavily used in enterprise systems. The JVM (virtual machine) is one of the most amazingly well engineered machines ever created. I don't know where you just don't like the word Java, or whether you don't like the language, or whether you don't like Applets in the browser, or what. But the Java ecosystem is way larger than you imagine.
Yes, Java has its uses. But it's gotten a bad name because Sun/Oracle touted it as a web application platform but never bothered to provide the necessary security for executing untrusted code over the Internet. Worse, until very recently, there was no way to install just the Java runtime for desktop apps without also getting the browser plugin shoved down your throat – and if you removed it, it would be put back at the next security update. The fact that Oracle sees these security updates as a way to make a few bucks by foisting Ask Toolbar on users doesn't help, either. And the numerous patent lawsuits filed by Oracle are yet another strike against Java.
There is a big difference in the ergonomics of a properly coded C++ application and it's Java equivalent. Of course it does not make that comparison when a machine does massive swapping. Java apps freeze all the time at random intervals while C++ apps are snappy and responsive all the time, if memory has not run out.
All of that is called "soft realtime" and you get it with C++ or Delphi. You don't get it with Java.
The world's biggest international FX trading system is built in Java - thousands of orders per second. I helped build it. Hasn't fallen on its face yet - well, ok once, when they let the logs fill up :-)
Determinism is manageable. You control your memory usage profile, and across many independent components, you can keep it very tight. It's not as hard as people think... and vastly less hassle than DIY'ing your own memory mgmt as per C++.
But there is a fault in everyone's logic when it comes to java. from what I have seen the statement is basically "Well big business and financial corps use it so it must be good". This of course ignores the fact that many of those same corps have IE Intranet apps, VB apps and Excel apps and even Access apps and just because some big corps use something doesn't magically make it "good" or right or wrong or anything other than software that big corps use.
ACs don't waste your time replying, your posts are never seen by me.
(I can assure you Java would fall flat on it's face (in fact it and the companies that bet on it did...) if you tried to handle securities trading volumes from just one exchange, say, NASDAQ.
Given that high-speed securities trading is about the #1 threat to life, freedom and security on the planet... is crashing the exchanges actually a bug?
You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
> But there is a fault in everyone's logic when it comes to java. from what I have seen the
> statement is basically "Well big business and financial corps use it so it must be good".
> This of course ignores the fact that many of those same corps have IE Intranet apps,
> VB apps and Excel apps and even Access apps
Those big corps are abandoning their IE only apps. Big corps don't have Excel and Access apps that do anything on any large scale. Small processes, yes, maybe -- just like a small business may have such processes built on Excel / Access / VB. Not that there's nothing wrong with that, as Seinfeld would say. But those big corps are not abandoning Java.
People who bash Java for no rational reason, don't realize that there are a lot of reasons to use it. It has a lot of advantages that outweigh its disadvantages. This is probably true of almost any technology. Windows. Linux. Mac. Python. Even Perl for God's sake. Otherwise people wouldn't be using it.
I'll see your senator, and I'll raise you two judges.
> if [Java] was as awesome as you're making it out to be, it'd be used EVERYWHERE.
No. You're wrong.
Technology ${X} would only be used EVERYWHERE if it were PERFECT. I'm not claiming Java is perfect. I'm merely claiming that it is very good. It has a lot of advantages that outweigh its disadvantages, as do many other technologies.
Technology ${X} has a lot of advantages that outweigh its disadvantages. That is why people use ${X}. Where X could be Java, Windows, Linux, Mac, Python, C, cassette audio tapes, pocket calculators, etc.
But if Java were perfect, it would be used everywhere. It's not. But if you mindlessly bash Java, then you should also consider bashing every other technology that I mentioned. All of them have serious drawbacks.
I'll see your senator, and I'll raise you two judges.
For deterministic response time, look at IBM's Metronome JVM runtime. Get out your checkbook.
I'll see your senator, and I'll raise you two judges.
I agree "Everybody does it this way" isn't a justification just a result. Big business uses it because it is scalable, has a decent library, works well in a non-homogenous network cluster, and is one of the oldest and popular languages with GC and language primitives for parallelization. It's much faster than the dynamic type languages, and doesn't have the kludge of a global lock like two of the popular scripting languages.
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
See? i have NO problem with that, you clearly laid out your reasoning for supporting Java in that situation and its obviously thought out and done from an educated perspective.
Now as someone who mainly supports SMBs and home users I can tell you in THAT particular userbase java is like a damned STD in that it keeps reinfecting and can be a major operation to get rid of (Thanks a lot, asshole who invented minecraft) but then again my users aren't having to support 1000 transactions and processes at once so maybe it works great there, don't know as that was never my field.
But sadly we have seen too many cases where something doesn't make sense to use but "Well so and so uses X so it must be good" or in the case of java "Well these billion dollar corps use java so we should too" and I would argue that is a choice from ignorance which is why I was pointing out the flaw in the logic. if Java or flash or SL or .NET or C++ or whatever is right for you because you looked at your options and it was the best fit? i'm glad, I really am. Hell I still write the occasional VB 6 app because for one single function (making a front end to a local DB) it works great with the least footprint and cost. But I would never say "So and so used VB 6 so we should" as that isn't a justification, that is just bandwagon hopping.
ACs don't waste your time replying, your posts are never seen by me.