Sun Debuts JavaFX As Alternative To AJAX
r7 writes "Internetnews is reporting on Sun's introduction of JavaFX at JavaOne today. Looks like a combination Applet, Flash, Javascript, and AJAX with a friendly programming interface. Does this really spell the end of AJAX? I sincerely hope so. Nothing built on Javascript will ever achieve the security, cross-platform reliability, and programmatic friendliness that Web 2.0 needs. Proprietary solutions and vendor lock-in are also dead ends. JavaFX has the potential to satisfy this opportunity even better than did Java over a decade ago. Along with AJAX, let's hope JavaFX also puts paid to Microsoft's viral Active-X and JScript, and, more importantly, that it really is a web scripting language that developers can grok."
Applets, and Java in general, are notorious for long startup times.
It has been found that people give a web site about 2 seconds to respond before they determine it is not going to load and surf away.
How we know is more important than what we know.
So we're moving away from a de-facto standard that is already implemented with free software, towards the proprietary Adobe Flash platform and the vendor lock-in that it implies?
Did it occur to you that you're sounding exactly like the hype you're decrying?
AJAX is a stupid name developed for the ole' hype machine (mostly to sell conferences and books, methinks) but the basic web technologies behind it are NOT THAT BAD. To use the example from the article, am I "tearing [my] hair out over as [I] attempt to get the JavaScript working in both Internet Explorer and Firefox?" Actually? No, I'm not. And I just implemented a Comet library in both Javascript and Actionscript. About the most frustrating thing was the fact that Opera ignored the cache-disable commands when using XML.load in Flash. So I build a solution into the library. And if you think that's fun, wait until I detect Server Side Events in Opera and use XMLSockets in Actionscript!
*shrug*
Oh, and I had to dynamically patch Safari and Opera to add support for the toSource function. Easy as for(var i in object) pie.
The problem with most "AJAX coders" is that they still think of Javascript as that cutesy language they used to do scrolling statusbar text with. But it simply isn't that bad. In fact, Javacript is a full-up, Object Oriented (or at least, OOP capable) langauge that fits the lightweight needs of the web browser perfectly. Java is a 600 pound gorilla that's better for designing heavyweight applications that are secure, robust, fast, and feature complete. The two target very different markets.
As for JavaFX, there is (if you'll excuse the expression) "nothing to see here". It's just a Silverlight competitor. Which makes it just as questionable as the product against which it's competing. If you really want a replacement for XMLHttpRequest, use XMLSocket instead,
Javascript + Nintendo DSi = DSiCade
"Proprietary solutions and vendor lock-in are also dead ends"
.NET because you have a stick up your ass is a little silly.
Or... not.
Using Java solutions over
That would be great, but in reality, when people invest enough money into something and there is ubiquitous support for it, it tend to stick and migration to something new drags on forever.
And there is so much big corporate inter politics involved with each side rallying their alternatives that it looks like we are stuck with the lowest common denominator, that beeing for the moment javascript.
http://www.intellipool.se/ - Intellipool Network Monitor
This begs the question, will anything built on Java achieve the security, cross-platform reliability, and programmatic friendliness that Web 2.0 "needs"? It is well-known that Java is a "write once, debug everywhere" solution. If it is running on the server side, It also begs the question, does it need all that? What does Java provide that other languages don't? It looks like it has a client-side component. FTFA, "One of the knocks on AJAX applications, aside from browser compatibility, is that it requires a large amount of JavaScript to be sent over the wire; that script could have something malicious embedded in it. JavaFX eliminates that need by using the locally installed Java SE files." Well well well, FUD FUD FUD. Yes, it could have something malicious embedded in it. And there could be something malicious in your Java code, too. Make a point, please?
Also, I'm interested in having this assertion backed up somehow. Javascript is an excellent language even if some implementations are somewhat lacking. In general the use of cross-platform toolkits seems to be accelerating Web 2.0 development for many people. Is it really true that you can't do the job with Javascript?
I'd just like to leave with this C&P and short commentary:
"This really is write once and run anywhere," he said, reiterating a 12-year-old slogan for Java. The long-range plan is to make it so applications can be written to run on all platforms." Yes, that was Java's long-range plan as well. Note that so far, it has not succeeded.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Also from the site: Like all of Java, JavaFX Script will be available via the GPL license.
First of all there is nothing at all hard about cross platform ajax programming, those hurdles have
already been overcome. However it is over 10 years since java and applets where introduced and they
are still slow as mud, I highly doubt any success in market penetration.
Got Code?
Bad phrasing on the part of the submitter and/or editors: according to the article, JavaFX isn't a "combination Applet, Flash, Javascript, and AJAX" in the technological sense, but in the sense of the kinds of features it provides. It's actually an extension to Java.
Anyway, there is one drawback it's going to have as compared to AJAX: It will require end-users to install something. As it is now, AJAX will run (to some extent) in MSIE, Firefox, Opera, Safari, and a number of browsers with similar rendering engines. Even if it gets built in to the standard JRE, that still requires people to install Java, putting it more on par with Flash (though at this point a lot of people do have Java installed).
So, how long before Sun convinces Apple to include JavaFX in their version of the JRE? Last I looked you couldn't just download a JRE for MacOS X.
Actually, ActiveX is a patented Microsoft Security Hole(TM) big enough to drive a Mack Truck through. Effectively, Microsoft looked at Java Applets and said, "The biggest problem with it is that it doesn't access Windows APIs and has all that security BS. We can do better." Next thing you know, Microsoft "partners" are showing how you can access DirectDraw and Direct3D to make ActiveX components that were WAY more impressive than the simplistic animations that Java was capable of. Of course, the security implications hit Microsoft less than a year later as Malware started exploiting the system for all kinds of nefarious purposes.
Microsoft kinda-sorta shuffled it off into other areas after that. Now they're back with a vengence. Silverlight will be everything that ActiveX was going to be, but BETTER! Can you feel the excitement?
Javascript + Nintendo DSi = DSiCade
A demo of JavaFX (embedded in Java WebStart--yuck) can be found at http://blogs.sun.com/chrisoliver/ . Seeing as flash comes up instantly in browsers, even if it takes some time to download code, etc, and that web pages with ajax also render near instantly, I don't see how JavaFX is really going to appeal to end users. The JVM plugin still takes time to load on all browsers and platforms and is quite big. And on almost all browsers and platforms I've ever used, tends to lock up the browser for 10-20 seconds at a time. Further how will JavaFX integrate with HTML? Javascript?
.NET don't have these problems, mainly because flash is a fraction of the size of the entire JVM adn runtime, and .NET is always loaded and ready to go on windows.
.NET (mono notwithstanding). I really want to like Java, I really do.
Flash and
Anyway, given the current state of Java technology in the browser, I don't see this as being any different from WebStart, which everyone loves to hate because it is so clunky.
I dislike the idea of Silverlight entirely, particularly anything that relies on
AJAX has given web-pages a new breath of life. Things like google-maps, netflix, etc. have definitely done things I wouldn't have thought possible before. And packages like RoR have managed to find ways to automatically generate most of the AJAX you need.
.. a small increment without actually fixing any of the big issues.
I don't claim to be an AJAX expert, but it seems really good for the simple things you need to do. You can find 10 libraries now that give you collapsable boxes, drag-n-drop, etc. But it gets much more complicated if you want to do something not covered with these libraries.
The big problem being that put very simply: HTML was not designed for full-fledged interfaces. Compare against a beautiful library like Cocoa, and it falls very very short. Which is fine. It's great for what it does.
Java is many ways was supposed to fix this problem. A method to create interfaces that can be spread through web pages. But issues besides just speed have been a problem with Java. AWT was not great for making interfaces, and Swing isn't (IMHO) much better. I haven't tried SWT, but even Eclipse, its flagship, suffers from all types of interface issues (compare it against an IDE like XCode).
I'm trying very hard not to be an Apple fanboi. I've used PCs for most of my life, and Linux for a good enough time (> 10 years). But I've seen enough interface libraries now (GTK+, KDE, Windows API, Javascript hacks, various ones using SDL, etc.) that I've seen both highlights and major downfalls from the different design paradigms used.
One of the largest design issues I've seen comes from at the end of the day from the language itself. Part of A large part of Cocoa's beauty derives from Objective-C. It does things that c++ wouldn't dream of doing for speed reasons. Both Gtk+ and KDE try to replicate features already in Objective-C, but because they are non-native, they don't/can't do it as well. Which is not to say Objective-C is the end-all be-all language -- it's just great for interfaces.
It's also something that from my personal experience Java can't do. So it's hard for me to imagine how using Java to make an interface for web pages will be a great advancement (again, I'm leaving speed issues alone -- this is a purely design argument). And maybe it will be better than AJAX, but that's not a great advancement
Really, Sun is pulling a fast one, JavaFX competes with Flash and Silverlight, a graphical environment for devices, with web browsers as a bonus. Security concerns and downloadable plugins are just a smokescreen to make the product look bigger than it is. Compete against Ajax for the browser? Noway, but it is an attractive solution for hand held devices.
You know, the one thing I absolutely HATED about AJAX was how there was no delay when I loaded a page. For many moons, I have longed for the five second delay that a Java applet on a webpage incurs. I knew I was in for an interactive, highly responsive, good-looking user experience when my browser stumbled momentarily, as it loads the slim, petite Java runtime into the browser. It gave me plenty of time to prepare myself for the life-changing experience that ONLY an applet could deliver!
But now, I can be happy once again. Thank you Sun! And with a hip name to go along with it, as well! JavaFX! I wonder if it is compatible with WinFX? Or how about ActiveX?
No, they looked at Java and said "holy mother of god, this crap is slow".
Oh, without question. The problem with ActiveX is that it forces the user to implicitly trust a non-sandboxed piece of native executable downloaded from an untrusted network.
On the other hand, if you're OK with that (or just careful) then ActiveX is great. Otherwise it's not very appealing. Though it has made things like platform- and codec-agnostic streaming audio and video possible that would have probably been impossible with Java or anything else.
Who knows, if Silverlight does run on more than one platform it just might be the next big thing. It all depends on whether or not it's designed with security in mind rather than just snazzy features.
Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
I'm so sick of companies thinking they'll somehow become relevant because they put reminders of their products in every nook and cranny on my system. Sun, like all other half-wit companies, feels the need to put useless tray icons in there to brand the user's computer. You'd think after the Internet's collective hate of RealPlayer they would have learned that the systray is not for advertising. Besides, people don't care what Java is, they want to look at what is on the page. But no, they have to sit there in the tray, completely useless. And lets not discuss needing to run a program 24/7 that monitors for updates to Java, or installing a control panel.
Sorry Java, you're not nearly as important as you think you are. QuickTime commits the same set of sins, which is why I swear by QuickTime Alternative, it is a bit less annoying.
Security - Javascript is NOT designed to secure a web app, security needs to happen on the server side, out of necessity!
Cross-platform - I would argue that Javascript / ECMAScript, having been standardized and distributed with all major browsers for years, is arguably the MOST supported cross-platform programming language in the world. If a computer has a browser made in the last 5 years, it supports standardized ECMAScript. And what PC doesn't have a browser?
The only incompatibilities I run into on a frequent basis are getting my scripts to create results that look the same across all browsers, and that's not Javascript's fault, it's CSS and browser support of CSS! If you have problems with the [i]functionality[/i] of Javascript, then you're probably not writing according to the well established standards, or worse yet, throwing together snippets of Javascript from all over the web like so many amatuers that give the language a bad rep.
So you would use Sun's solution, rather than the well established internationally standardized ECMAScript?
Programmatic friendlyness - Joel says it all here Personally, I've programmed in dozens of languages, and few are as flexible and enjoyable as Javascript
Javascript used to have the same status that Java applets and Flash still do, used predominantly for play things, small self-contained segments of the browser where you want to do something different. Javascript has risen above that. The world is finally realizing Javascript can be an integral part of an entire website, and that the website as a whole can be enhanced by Javascript and it's tight integration with other web standards.
This article sounds like an attempt to rehype Java applets, which frankly, have not seen the advancement and acceptance that Javascript has over the years.
I'm no expert, but I've heard tell that security is a process, not a product.
Microsoft kinda-sorta shuffled it off into other areas after that. Now they're back with a vengence. Silverlight will be everything that ActiveX was going to be, but BETTER! Can you feel the excitement?
.NET and security surrounding both to bring this type of technology to the Web.
.NET 3.0 and WPF Web applications. Unlike ActiveX they run in two sandboxes of security, and don't have access or security to do anything more than an HTML page can.
A) Silverlight is nothing like ActiveX. In function, security, etc. The main thing of silverlight is a more feature rich version of vector animation technologies with the ability to push higher quality video in a very easy to program manner that also directly works with current server and browser side scripting standards. It is what SVG should have been, but SVG couldn't see past basic image rendering. Flash is overkill, locked to its programming model, and in the end has far less features than SilverLight.
From what I personally know of Silverlight, MS waited for other technologies to fill this gap, and 5 years later it never happened, so they decided to use what they learned from developing WPF,
B) Yes ActiveX sucks, and should have been limited to a Intranet or corporate technology only. MS was stupid not to have seen the security risks of distributing code in this manner.
C) MS has killed ActiveX in case others haven't noticed. It is hell to even get a control to run anymore because of the restrictions MS has added themselves.
D) If you want to talk about MS's ActiveX replacement, then you would be talking about
Go look up the British Library for an example of a WPF Web application, it is NOT SilverLight.
Thank You!!
I was just about to say all those things until I read your comment. JavaScript is actually quite nice once you actually learn it beyond using alert.
Check out http://javascript.crockford.com/javascript.html for info on why JavaScript is so misunderstood.
I know of people having compiled the linux kernel under the Intel Compiler for quite a bit of a speed increase.
In Soviet Russia the insensitive clod is YOU!
Hellooooo everyone, the issue is not that historically the JVM takes forever to load or that Flash can be annoying. The key trend is that AJAX/Html are hitting a limit, which leads to all this recent energy about Flash/Flex as a better way to construct rich UIs, witness Microsoft's Silverlight.
... well gee it seems historically this has led the winning vendor treat us all like crap. That's a real bummer when you have this expensive time investment in your website, but it's locked in to some vendor's intellectual property. The only other open rich alternative -- SVG + Javascript -- appears a bit dead.
... that would be awesome. Even if the technology is just ok, the openness would make it worthwhile. Just think ... it could work properly on Linux and phones and what have you. This is very much like what happened with HTML originally. Just an ok spec, but the openness catalyzed all sorts of growth and competition.
Now both Flash and Silverlight are totally proprietary. That's a huge problem. If one of them were to "win" and get a zillion developers
So what's neat about this announcement, is that it's a Flash workalike that's OPEN SOURCE. If it were to "win"
Another way this could work out is that it bluffs Adobe into opening up Flash, which I figure would be just as good an outcome. The key is to not be stuck developing your expensive web app, but with some vendor controlling the underlying technology.
Well, if they do a decent job at this, in the next version, once they have the bugs out, they could strongarm the mozilla organization into including it in the firefox download. They could muscle them by, for instance, paying them.
That would go a long way toward maiking this idea fly.
Sun just released it it seems. They are asking for community help to replace the proprietary bits.
They are doing a lot and doing what they said, you can't deny that.
"I think this line is mostly filler"
I never really understood all the hate for Netbeans. Maybe it's part of the "hate Sun" heritage.
WHY when I see Slashdot pages 1 to x at the top of a topic, and I click on page 2, I get page ONE ALL OVER AGAIN?
And sometimes page 3 and beyond behave the same way? At some point, I start getting new pages with new responses, but it's incredibly annoying to have to click on two or three pages to get PAST page one!
Are my settings fucked up, is it Firefox, what the hell is it? This happens on Windows, Linux, anything! Is this a known bug in Slash or what?
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!