views:

1225

answers:

4

What's all this business about Flash, Flex, Adobe Air, Java FX and Silverlight? Why would I choose one over the other? and what happened to Java Applets and ActiveX controls?

Oh, and where does AJAX fit in to all this? and is Laszlo relevant?

Afteredit (in response to some "d'uh" type answers): the question is a bit tongue-in-cheek. I know about the various RIA technologies. I am, however, interested in the StackOverflow community's opinion about each - particularly why you would use one over the other

A: 

Sounds like you need to fire up Google and do a little research and reading. Start with "rich Internet application" or "RIA", or simply enter those terms and enjoy.

Consider the first three to be synonyms; JavaFX is the Sun offering; Silverlight is Microsoft's entry.

Nothing "happened" to applets or ActiveX controls, they're both still with us. They're a bit dated and fallen out of favor. Applets had their heyday when teapots first danced on the Web; ActiveX controls have some security issues.

Laszlo appears to be the inspiration for Flex, according to this.

duffymo
The question is a bit tongue-in-cheek - I have fired up google and have done my research already. I wanted to know the opinions of the StackOverflow communioty - particularly around the suitability of one over the otherWhile your answer is a hundred percent correct, it is zero percent useful
Vihung
In all fairness Vihung, the way you phrased your question was a bit misleading.
James McMahon
That's the problem with the web, e-mail, etc. - it filters out "tongue in cheek". I can't see your tongue or your cheek; I can't hear the irony in your voice.
duffymo
A: 

I know nothing about flex and air, but Flash, Java FX and Silverlight are all web technologies that essentially do the same thing vying for market share because none of these companies (Adobe, Sun, and Microsoft, respectively) wants to give the other an edge and/or not control the major content delivery platform on the web. That's it in a nutshell. Market speak would probably include something like "rich internet applications" or something like that.

ActiveX was, unless I am mistake, a huge festering security hole, that is largely abandoned even by Microsoft and Java applets never took off in the way sun wanted them to. I am not quite sure why, but I think they lacked the simplicity that attracted people to flash.

Ajax has nothing to do with all this. Ajax is just a way to keep an entire page from refreshing by dividing it up into subsections that refresh independently. Again, this is me trying to explain this all as non-technically as possible.

EDIT: It seems I approached this answer the wrong way. To get alittle more technical; Flash is the most mature of the bunch. Silverlight and JavaFX are essentially babies, and while both Microsoft and Sun are trying to woo developers from their existing base (.net and java), I don't know if anyone can say anything definitive about either technology. It is going to take alittle while to see what technologies take off.

James McMahon
+17  A: 

Big topic and it would take pages to provide a full answer so here is the "short" version...

  1. Adobe Flex/AIR is by far the most mature RIA platform out there and it runs in FlashPlayer. You write apps using ActionScript (similar to Javascript) and MXML (markup used primarily for layout/view code). You can also deploy Flex applications easily to the desktop if the user has the AIR runtime installed.

  2. Silverlight is Microsoft's offering which is still quite a bit behind Flex but is rapidly gaining ground. The SL runtime is new and slowly gaining a larger install base. You can use C#, VB.NET or other languages supported by the .NET runtime. It runs on Windows and Mac but doesn't run on the desktop.

  3. JavaFX is a platform, API and scripting language for building RIA on the Java platform. It's the newest entry and just recently had its 1.0 release. It can run in the browser or the desktop and can leverage any and all Java code. Given how much open source Java code exists this can be pretty compelling.

AJAX / DHTML is primarily an alternative to these technologies, although since FP, SL and Java all have two-way Javascript APIs, you can write applications that use both and allow them to interoperate.

cliff.meyers
Reply to the after-edit:1. If you are a big .NET shop, use SL. It's mature enough and your devs can be productive using languages and tools you already know.2. If you are a Java shop, consider Flex. JavaFX has not been super impressive and hooking up Flex and Java is easy with Blaze DS.
cliff.meyers
emphasis on the SL "slowly" gaining install base. I don't know anyone who installed it, and my company chose Flash over SL because flash is installed in something like 95% of browsers and SL has a miserably small install base.
rmeador
The best I've heard is that SL penetration is "approaching 50% in some countries." I think the only reason it's that high is because NBC used SL to play video for the Olympics. If you are looking to build an internal-only RIA and control the deployment environment then SL is no problem. Big "if"!
cliff.meyers
SL support for Microsoft's existing .NET languages makes it a familiar uptake for .NET developers. However, the ActionScript3 language of Flex is a compiled, static-typed language that has similarity to both Java and C#: class, interface, member access keywords, static members, package namespace.
RogerV
Also, ActionScript3 has properties plus events and declarative data binding (with MXML). The AS3 properties will be familiar to C# folks. Flex data binding is currently better than either .NET or Java. AS3 closures are easy to use and dynamic JavaScript-style class objects can be tapped when needed.
RogerV
+2  A: 

Flash/Flex, JavaFX, and Silverlight are tools for developing rich internet applications (RIA). You're probably very familiar with Flash applications, which are frequently full of animation and other effects. JavaFX and Silverlight let you develop similar applications. Laszlo fits into the same picture.

Silverlight is Microsoft's entry, and it is designed to work in the .NET stack. JavaFX is Sun's new offering, and it is designed to work with the Java Virtual Machine. To oversimplify Adobe AIR, it is an attempt to get RIA content to run seamlessly on the desktop (JavaFX provides this as well).

Applets haven't gone away, they just suffered from a bad implementation of the JVM in web browsers. JavaFX is the new heir to applets.

AJAX is very different; AJAX is a way to use a browser's existing capabilities, without plugins, to provide seemingly rich and interactive webpages. It uses JavaScript and XML. While some AJAX applications are undeniably cool, it is not as easy or as natural to develop Flash-style RIAs.

David
I disagree with "a bad implementation of the JVM in web browsers." If I download the JVM from Sun its JRE is installed in my browser. It's no better or worse than the JVM I use to run on the desktop. That's not what killed applets, IMO.
duffymo
@duffymo - You're right, it's the same JVM. The most egregious problem with the JVM from a browser context is that, in the past, it didn't start up quickly. There were many other issues, too - Java 1.6.0_10 fixes these issues to make a better JVM experience in the browser.
David