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.
http://www.youtube.com/watch?v=b-Cr0EWwaTk
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.
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 I said specifically that I have a set of components, applications that are all written in Java, so why would reusing JVM with a different language be so great? It means having to learn all of the pitfalls of another language, and I code in Java since 97, among other things.
What is the advantage? There HAS to be an advantage to move code form one language to another, especially given that I have most of the main functionality done, and now it's just adding features and fixing whatever bugs that are found. What is the advantage of taking on another rewrite like that in a different language?
I am just counting the applications here, trying to remember all of them I created for the project in 2 years. FFS, FFL, Titan, Deimos, Mimas, IO Server, Phobos and Phobos Client, and a few small things besides those big ones. 7 of them are server side, 2 of them provide thin client and 1 is a full client that can be used as a stand alone or an applet (but it's used in production as a stand alone).
What would be the incentive to rewrite any of this in a new language, given that these are not toys, but are created for business?
You can't handle the truth.
What are you replacing it with?
Have you see all the crappy 3rd party Windows apps that, despite being written in C/C++ or C#/VB, insist on creating their own custom UI controls that work in subtly (and not so subtly) different ways from the ones provided with Windows and very often don't look the same as the Windows ones (and often look terrible)?
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.
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.
Hm... Maybe because we actually deliver those applications?
Oracle cannot be trusted. Oracle is clearly no friend to F/OSS.
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.
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.
Comment removed based on user account deletion
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."
I've got an ambitious plan for client-side Java: stop suing companies for using their open-source product.