Oracle's Ambitious Plan For Client-Side Java
snydeq writes "Fatal Exception's Neil McAllister suggests that the real news out of this year's JavaOne is Oracle's ambitious plan to revitalize Java on the desktop, the Web, and mobile devices. 'It's been tempting to assume that Oracle, with its strong enterprise focus, would ignore the client in favor of data center technologies such as Java EE. This week, we learned that's not the case. In fact, the real news from this year's JavaOne conference in San Francisco may not be Oracle's plans for Java 8 and 9, but the revelation that Oracle is gearing up for a new, sustained push behind Java for the desktop, the Web, and mobile devices. If it can succeed in its ambitious plans, the age of client-side Java could be just beginning.'"
I stopped caring about Java in 2002, I still don't care about it, and will care even less tomorrow.
It's 2011, and we're probably a decade too late for bringing heavyweight Java to the client. The future might be in languages like Dart or, for quoting the same Fatal Exception's Neil McAllister, Opa.
I've spent quite a bit of effort over the last two months removing Java from all of my clients' computers. I've seen it used as an attack vector far too often and it was time for Java to go. I've even got some - but not all - of my clients to let me remove Flash and Acrobat Reader. In the long run it's safer for them, and cheaper for them too.
There are some pretty cool developments going on in Java lately, e.g. LINQ, functions and reified generics. Why wait for the JCP when there are enough mad people out there who will implement all the tools that Java is perceived to lack? See for example: https://github.com/nicholas22/jpropel-light
Just make sure the Java plugin doesn't hang browsers anymore or make them sluggish!
I hate it when visiting a academical website that has the well-meant intention to show some mathematical principle using a Java applet, but instead Firefox hangs while loading it... I'm not sure if it's the fault of Firefox or the Java plugin, but no matter what, it doesn't help Java.
Flash can do it, why not Java?
By suing anyone who actually does anyone with it? Sounds like a great strategy to me!
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I have a set of systems I am building that are used by a store chain. It's my line of products, one of the components is a store management system that is used in the stores. Every piece is server/client, but in this component the client is a Java swing application that also can be used as an applet (that's the good part about Java, with minimum work you can have it working as an applet if it works as an application.)
So I know that most people on /. are derisive about such solutions, but I am moving the stores from Window platform to GNU/Linux (Ubuntu actually). Of-course it's possible to build everything in C and C++, etc., but when the entire solution is java with every component on every server / client, even though most clients here are thin, that run in a browser of choice, using Java as a client is really the most logical thing.
Every component is compatible with each other, the communications between components are all built in exactly the same manner, be it a server-server or server-full client.
The important thing is that moving from Windows to GNU/Linux is easier, because the look and feel stays almost the same.
The one real problem for me is actually some driver for certain types of devices, like zebra thermal printers and such, but that's not a problem with Java itself, that was a problem with moving the clients from Windows to GNU/Linux (haven't figured this out yet, so one of the computers in stores is still Windows, because the configuration and font setup software supplied with the Zebra printers is for Windows.)
I can accept the hate, that the Java solution may not be wonderful or uber-cool or whatever the current feelings are about what people hate today, but the point is that it's working. If I couldn't get it to work, I would have had no choice but to go with something else, but that would require extra work, to get it all communicating with the server sides, that are Java based.
The speed of this application totally depends on the data model, database work, algorithms and communications, but the Java GUIs themselves are not presenting any major problems. If I want to, I can even style the main frame of the window with anything, any kind of graphic that doesn't look like a normal window, this works with JNI, but I don't really need that in this project.
I have used this in a browser as an applet and I have used this to communicate over the Internet, not just within the stores themselves, which is an interesting feature.
So can somebody tell me what they think I should be on a look out for here? Is Java going to blow the fuses or are the tables going to catch on fire?
You can't handle the truth.
Is this really a plan to increase use of Java so Oracle's Ellison can initiate more lawsuits to hopefully create more revenue streams from other companies using Java IP?
They might want to consider open sourcing Java. In the purest sense, that would mean cancelling the lawsuits against Google. After that, they could form an alliance with companies that have experience creating client side java frameworks. Google would be a good choice here, too, given the success of their Android efforts.
http://www.youtube.com/watch?v=b-Cr0EWwaTk
as in, what to go make while you wait for your desktop application to load.
Yay Java! Looking bad on every platform for many years (non-native widgets, etc. - you can always tell a Java app because it looks so out of place). Breaking applications with every "security" update (which is really a full release with lots of breaking changes). We're working (slowly) to get rid of damn Java on our 80,000 machines. The language would be fine, but the constant security problems and fixes that break existing code show that Sun / Oracle just don't put enough effort into a decent, supportable, implementation.
So will it be faster? That's all I care.
Client side java, really? That's so last century oracle! Get with the program.
Only 'flamers' flame!
Google was the best bet in bringing Java back to life.
But Oracle is suing Google for making Java somewhat popular again ...
I imagine even Google will give up on Java at some point with some new platform that exposes binder services to javascript, deprecates Java, and merges with Chrome OS.
First, you would have to get every vendor to agree to this. Not a single one will. Oracle has spent time making enemies of most people required for such a plan to succeed, and their mission statement completely conflicts with the goals of the rest of the people that would be needed.
Oracle has been too confrontational with Google to get their help on anything that would advance Oracle's motives.
Since Oracle's angle is in effect reducing platform differentiation, Microsoft and Apple are not about to give them the time of day as success would simply erode whatever value they could possibly construct.
Open source communities have been sufficiently alienated by Oracle's goings on that they don't have a prayer in Firefox or other open source browsers either.
Combine this political obstacle with the simple fact that there isn't a large need to be filled. Between Flash and Javascript+HTML5, there isn't much to add to the web experience and for things like smartphone and desktop applications, the respective vendors have it too good right now in their walled gardens to relinquish control.
This didn't happen in the late 90s/early 2000s, and it's not going to happen now.
XML is like violence. If it doesn't solve the problem, use more.
Why all the freakishly negative comments about one of the best languages to come along in a while? Super blazingly fast and fun to program. No, it's not ruby or python, but then again those languages are slow as thick shit in comparison. Anyway, if Java is going to succeed on the desktop it has to be possible to write apps which don't take up 500M of RAM, like Eclipse for example. That thing uses 500M of real memory for what!? Displaying a UI, edit three or four files, a console window ... I mean, this is 500M we're talking about. I blame Swing and the fact that its components are based on AWT Component, which is a huge memory hog with about 60 instance variables - holy cow, I thought I was exaggerating but it's close enough (53 + 13 because JComponent extends Container not Component). 66 * 8 = 512 bytes although not all elements are pointers I admit. Awesome! (not).
I wonder if things would have been different if they didn't completely screw up Swing. AWT was done in about a week in 1995, it's OK that it wasn't perfect. But there is no excuse for Swing to suck so badly.
From the article:
How about Spiral Knights? It's not World of Warcraft, but a million users isn't something to sneeze at.
Soon we'll be able to run java on our desktops - only requirement is an Oracle support contract for the low, low price of 250K$/desktop/year?
I apologize for the lack of a signature.
I'm no fan of Java, but I run into it all the time.
On the other .NET is really lightweight,
So far as I have seen, most of the *appearance* of lightweight is achieved through preload. Conversely, most of the criticism of Java as bloated stems from a decade old impression and crappy app coders.
.You also get access to some devices that Java doesn't support
This is mostly a natural consequence of supporting many platforms. Platforms aren't different just for the fun of it, and supporting them all means mostly settling for the subset of ubiquitous capability. This applies to most scripting languages as well, though those typically get extended by platform-specific modules as they don't carry the stigma of being Java.
Also, Visual Studio is much better development IDE than any other.
Maybe for medium/large projects, but for quick stuff I still haven't found an IDE I like after trying visual studio/eclipse/etc/etc. Nothing beats vim and a compiler sometimes.
XML is like violence. If it doesn't solve the problem, use more.
Oracle doesn't give a damn about Java on the desktop. They are trying to do what Google did, and that took them by surprise. Leverage the immense community of Java developers to embrace mobile. This time using an Oracle approved version of java and not a bastardised version. This is the reason that you see JavaFX being pushed on the desktop, the reason for the convergence between java desktop and java me. Its an Oracle game that tries to cut the floor from beneath Google. With this strategy wether they win or loose against Google, Java (not java me) will continue to be relevant in the mobile space. And if they win against Google, they get the benefit of being the gatekeepers on the mobile space. What are mobile developers going to do ? Abandon the fastest growing segment of mobile devices and put their efforts in window phones yeah right. Or flock en masse to iphones ? Yeah right.
Oracle is playing the right game here, and since Nokia abandoned Qt, mobile developers really don't have a lot of choice.
For my sites, "Client Side Java" means JavaScript. Purists can rant and rave that JavaScript isn't really Java, but in reality its good enough, already in the browser, and enough to satisfy the job. If you want real programming on the client, use a real language like C. Interpreted languages like BASIC and JAVA execute much much slower than compiled languages like C. They are also easier to lock down than compiled languages (that doesn't mean that languages like C can't be locked down to an equally refined degree, it just means that its a whole lot easier to do in interpreted languages like BASIC and JAVA). People who rant about "oh, compiled java bytecode blah blah" are blowing hot air up the pretty girls skirt. Java is interpreted, and slow. Its always been slow, and always will be slow. JavaScript is as fast (or as slow) as Java, but wins because its at least elegant (10 lines of source code can be a complete JavaScript program, 10-15 lines of source code is setting up the execution space for Java, followed by 15 lines for the program, then another 5-10 lines to tear down the execution space). I wasn't the first to say it, but I will repeat it: "Java: All the elegance of C++, All the speed of SmallTalk". In truth, its actually as elegant as COBOL (which is less elegant than C++), but I digress.
um, i know it's being said quite a lot, already, but it's worth repeating: java's pretty much dead on the desktop. people are even replacing Flash applications with HTML5, as it's reaching high market share and maturity, especially now that IE9 has actually better (read "stricter") HTML5 compliance than the Free Software equivalents. how in god's name is oracle expecting to break into that?
the other thing that's worth emphasising is that when you have alternative language bindings to HTML5, you get the best of both worlds. so... why doesn't oracle put its money behind getting java bindings (or, better "generic" bindings like DCOM and XPCOM) on top of HTML5 browser engines? with Trident (the engine behind MSHTML aka IE) that's a done deal already: Trident (MSHTML.DLL and MSXML.DLL) already *has* DCOM bindings so it's a matter of about 2-3 weeks to get something like that up-and-running. XPCOM (XulRunner) is a little trickier: you'd have to find or create java bindings to XPCOM (they don't exist afaik) and the hardest (technically speaking) is webkit (used in android, safari, ipphon etc.)
then you have literally the best of both worlds. HTML5 as the "front-end", and whatever-language-you-choose to control and direct it. btw this is exactly what's been done for the pyjamas project (http://pyjs.org) except using python not java.
... but the JVM. Take a look at Scala, a language based on the JVM and binary compatible with any Java library. It allows for very short and elegant coding with much less pain than with C/C++. It's very nice to be able to run the same binary on both linux and windows, without the need to struggle with weird binary-incompatibilities and bugs within MinGW, Gtk+, etc. If you don't need maximum performance, it's really a nice thing. Java is not only for Applets, but also for stand-alone applications...
FTA: That means JavaFX is now supported on any device that offers a JVM.
Bzzt. Thanks for playing. There is one extremely important class of device that does not and will not ever offer a JVM.
In the course of every project, it will become necessary to shoot the scientists and begin production.
people would derisively say that Emacs stood for "Eight megabytes and constantly swapping". My how times change.
The thing I don't get are companies that try to deliver enterprise applications that are written in Java.
It would be cool if Java applets could access the HTML DOM as easily as JavaScript. Then it would be a nice alternative for programming on the web.
Oracle cannot be trusted. Oracle is clearly no friend to F/OSS.
Anyway, if Java is going to succeed on the desktop it has to be possible to write apps which don't take up 500M of RAM, like Eclipse for example. I blame Swing ....
Eclipse uses SWT, not Swing: http://en.wikipedia.org/wiki/Standard_Widget_Toolkit.
If you take 6 weeks to code something in C++ that only YOU can debug (job security) vs something in C# or java that can be coded in 1 week, then unless youre willing to take a pay cut to $5/hr, your too slow.
Or lets say 6hrs vs 1hr.
So not only do you want more $$/hr, you take 6x longer to code.
Liberty freedom are no1, not dicks in suits.
Want to revitalize Java on the desktop? Open source it and leave it the hell alone. Who wants to get sued by Oracle?
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
They want their vaporware back.
Oracle does "not play well with others". They excelled in niches where controlling and zero-sum conquer-mindedness worked; but not when getting along with other companies and orgs became the better strategy.
Can they change their spots?
Table-ized A.I.
Honestly every single client side java appmI have ever used has been pretty crappy.
Comment removed based on user account deletion
Is there a reason why .NET needs GB's of disk space? It also seems I have 2 or 3 versions of this bloated crap on my Windows 7 machine. Does anyone know exactly how many GB's .NET occupies as it sprays its shit all over the hard drive? Also, why is Visual Studio also GB's in size? Visual Studio is one of the most bloated IDE's I've ever used.
Wait, does this mean they are making a java->ecmascript cross-compiler? because that's the only way I see Java becoming relevant on the client.
the year of desktop Java, or the year of desktop Linux?
I wonder if phones and tablets will totally replace desktops, before either Java or Linux "takes over the desktop."
why would anyone choose Java and JavaFX now, when Java has yet to prove itself as a broad client-side development platform?
I'll expand on that with "After 15 years of failure". When the only tool you have is a hammer, everything looks like a nail.
If Oracle can follow through on its plans to make modern Java available on a wider range of platforms, it could be one of the most effective cross-platform development tools available.
Coulda shoulda woulda ... it's 15 years old and it still "could be" one of the most effective cross platform development tools? Wake up and smell the Java. It's deader than dead .. it just keeps kicking because of all of the poor developers out there with Java on their minds. Quit being sentimental, there's nothing left for Java to do except die.
The most defining characteristic of Java is that it never lived up to it's potential, can we close the book?
I've got an ambitious plan for client-side Java: stop suing companies for using their open-source product.