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
Big topic and it would take pages to provide a full answer so here is the "short" version...
- 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.
- 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.
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.
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.
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.