Flex, JavaFX, or Silverlight?

Which, if any, rich Internet application is right for you? Why?

Recently and rapidly, the combination of JavaScript and XML (Ajax) has improved the Web experience. Using Ajax, wholesale page reloads are unnecessary; feedback is more immediate; and browser-bound applications act more like desktop software. I use a number of Ajax applications (High Rise, online banking, Google Mail) and enjoy the productivity.

Alas, Ajax is not a panacea. The server still generates page content — now including code, too. Worse, browsers (and there are at least five in mainstream, widespread use) are consistently inconsistent, translating to a herculean effort to validate a Web application. (Never mind that HTML and CSS rendering in the browsers is inconsistent as well.) Further, Ajax security is dubious at best. (See Security Problems in JSON by Joe Walker.

Ideally, a Web application would be apportioned to match the strengths of each of the Web tiers: Interaction on the client. Business rules and persistence on the server. And indeed, that’s exactly the model proffered by three new development technologies: Silverlight from Microsoft, JavaFX from Sun, and Flex from Adobe. In each, an application is something like a video: it downloads from the server and runs in a specialized browser plug-in. And the results are impressive.

But why choose Flex over JavaFX? And why not use Silverlight, since Internet Explorer commands the world? What exactly did Adobe, Sun, and Microsoft release as open source? And, finally, is it just hype — remember Active X and the old Java mantra, “Write once. Run everywhere”? Are Rich Internet Applications here to stay — or are they just another Internet fad? Worse, do users get segregated because Safari on Mac OS X doesn’t run Silverlight applications?

I hope to answer some of these questions for myself in the coming weeks and will post thoughts and findings here. In fact, the new O’Reilly book Programming Flex 2 just arrived at my door from Amazon. Other Flex books are in the works from Apress and Wrox; I’ve not yet learned of books on Silverlight or JavaFX, but would expect Apress to have a Silverlight book shortly.

In the meantime, if you have information or an opinion I should consider, please send email to martin dot streicher at linux-mag dot com. In general, watch my blog for news, analysis, and opinions on open source and software development. I may even post a little code.

Update:I’ve received a handful of responses so far. Many reminded me about another rich Internet application technology: OpenLaszlo. I will add it to the grid. The same responses seem to indicate that developers are kicking the tires of each of the new software toolkits. Others have been using OpenLaszlo for some time.

Comments on "Flex, JavaFX, or Silverlight?"


Ah, Java returns to the web (client). I vividly recall writing Java Applets in 1996 or ’97 and waiting (and waiting.. and waiting…) for the entire Java Virtual Machine to load before the Applet would run. I’m not entirely sure how JavaFX will work differently this time around (it’s one the things I’m hoping this series explains) but presumably it will be light enough to compete with the load times of the current Flash plug-in.

It will be interesting to see how this shakes out and how these platforms ultimately compete with one another. Both .NET and Java have huge developer communities they can leverage, but my impression is that Adobe needs to make more developers aware of the Flex platform.

That said, I think, in the near term, Flex has a bit of an edge here. The Flash plug-in is in something like 98% of the browsers worldwide and, in recent years, almost single-handily turned the Internet into a channel for media delivery. Meanwhile Silverlight is in Beta (and requires a new plug-in install — Windows and Mac OS X only) and JavaFX is still very much a developer release.

Thinking long term, platforms for developing RIAs are probably one of the most important topics for software developers to consider. IMO, it’s the direction that all significant application development is going to take in the future, regardless of the hardware apps are delivered to. And while I really like AJAX, I think we’re going to quickly hit a wall with what it can do.


Could not agree more RE: Ajax. It is a nightmare, I don’t care what wrapper/framework you use! Not to mention it is a total security disaster waiting to happen. The amount of Ajax initiated http traffic to and from browsers and servers/DBs carrying ALL KINDS of personally identifiable info NOT over https mind you NOR encrypted – I can’t believe no one has written anytihg about this. The potential for abuse is wide open. With that said, hopefully one of the other approaches/tools (can you say, “will not be JavaFX,” – even my world class Java engineer friend is going with Flex) to doing RIAs (stupid moniker that!) will reach a saturation point such that it will drag the folks who’ve invested in Ajax over to the easier and softer way! If it weren’t for the real elegance and beauty and brilliance of Firebug, doing Ajax would simply be too much pain to bear! :-)


Hi Martin,

I enjoyed your recent column where you begin to explore the three choices facing developers looking to move into the RIA space. I am currently working as a contractor for the Navy, involved with developing sonar tactical decision aids. In the last couple of years we have started migrating our large C++/Motif based system to a Java GUI front end with a SOA backend. We run on Redhat with some pretty high performance PC hardware to do simulations. The Navy as a whole seems to be moving to a more browser based system to view and interact with information, we have received very positive feedback for our work that exposes web service functionality via a browser. We spend an enormous amount of effort in terms of software installation and the ability to just point a browser at a server simplifies things considerably. We do fairly significant graphing and data visualization that requires interactive user input beyond simple data grid controls and we haven’t felt that the current Ajax/DHTML/CSS model was robust enough to warrant exploring. Java’s applet solution is broken, and we don’t have the time or manpower to roll our own approach. From our point of view, Flex seems to be a strong contender due to the cross-platform nature of the technology, its relative maturity compared to the other technologies, and the ease that Flex Data Services appears to integrate with our current backend. One thing to consider is that to deploy Flex Data Services on more than 1 CPU requires a fairly expensive license, but that kind of issue if above my pay grade :) Military IT systems share many things in common with their enterprise brethern, however they also add significant requirements with respect to large scale simulation and data visualization. Anyways I look forward to reading what you discover in your exploration of these exciting new technologies.

Pedro Estrada
High Rez Consulting
Arlington, VA


Hi Martin,

I recently read your article titled “Flex, JavaFX, or Silverlight?” and wanted to let you know about another developer platform that fills in many of the gaps in functionality and security that the others you mentioned create. Curl has over 300 customers, and 40 partners worldwide, and is designed to easily manage large data sets, with enterprise-class security, and on and off-line capabilities. Curl is no newcomer to the RIA game and was originally founded out of research done at MIT in 1998. The company recently re-launched into North America after great success with many Asian companies like Toyota, Panasonic and Hitachi.

Curl’s ability to provide offline access to data, enterprise-class security and functionality in various other areas that other developer platforms fail to address make it a powerful alternative for developing rich internet applications. Please let me know if you have any questions about Curl or would like to speak with a member of our executive team to learn more about the Curl platform and its relaunch into North America.


-for Curl, Inc.

Jameson Bull | Associate Account Representative
Lois Paul & Partners | http://www.loispaul.com
P 781.782.5788 | Jameson_Bull@lpp.com
C 203.417.1177


First we had the era of Ajax, now we will have the slightly less meaningful era of transitions. All these kits use so much glitz in their presentation people are going to get sick to it, and the tension between supporting three different browser runtimes, pretty fast, hopefully leading them back to plain old virtuous html.

HTML forms are boring, but they are straightforward and many people just want easily identifiable, trustworthy widgets that are not about to change into a live salesperson. I find the fade effects make me nauseous, and in general do we need 3D to display a dialog?

People should be talking about this – what will we be losing – not hype. Open, standard, viewable, linkable html pages are one of the cornerstones of the modern web.


nostriluu, You are right that some of these kits are way over the top. However this is not just about those standard web forms. I was asked by my users to change my web app to display all of the fields on a single form so that they can just scroll through. Managing about 50 fields in plain html forms is a pain. These glitzy toolkits provide a easier (no easy mind) way for me to display all of the fields on one form, but handle them as separate forms in the back end.

The glitz is there, but I dont have to use it.


nostriluu, on the one hand I definitely agree with you: there’s a lot of flash (no pun intended) in these frameworks that isn’t terribly meaningful. But sias is correct, just because it exists, doesn’t mean it needs to be used.

These frameworks can add a lot of value to online apps. The challenge is figuring out how to apply it to an application in a way that keeps the app accessible and usable. It’s not just about HTML forms, it’s about menus and navigation, data visualization, interactivity, and more.

In the near term, the most success apps built on these frameworks will probably be those that use the frameworks as “HTML enhancers” rather than taking the Flash designer route and sizing the plugin to 800×600 and then tossing UI elements into it.

And the ability to link to a specific section or page of an RIA, as nostriluu also points out, is pretty critical because that greatly impacts the ability of users and search engines to find and use these things. The framework that gets that problem figured out without a lot of unnecessarily client-side scripting has a bit of an edge, IMO.


Another great alternative to rich internet applications is also one that has been around for a while, which is XUL, supported by all gecko-based browsers (Firefox, Mozilla, Netscape, etc). This has several built-in tags for some really powerful windows controls (like tabs, trees, and grids) and several methods available for simultaneous communication with the server including Ajax, remote RDF, SOAP, and XPCOM. I guess that the reason that this has not really caught on is lack of good development tools and comprehensive documentation.


Apress has recently published a book on JavaFX Script. The URL is http://www.apress.com/book/view/1590599454


My original thoughts of framework technologies or add in technologies around NS4/IE5 was they were to improve and add abilities and overcome shortfalls that live script and javascript did not posses by getting some assistance from parts of the browser that couldbe manipulated by a programmer e.g. .DLL or binaries of another OS type.
If you look at Microsoft OS, that has a barer programmer and platform only system called Active Objects that can be created and added to the registry, you realise that these are another attempt to simplify the process coding of internet site applications.
The systems you are mentioning here are akin metaphorically to being in CPU higher language programming and ActiveX or IDL-CORBA/Java2 or at the browser level XUL/XBL XPCOM for Netscape/Firefox/SeaMonkey/Mozilla or Microsoft .HTA are all lower or intermediate language level.
Ajax is an example of the evolution and improvement of automated services from a client operated perspective, for inter operation / exchange of data.
In my opinion from assessment of Flex and JavaFX and Silverlight (somewhat a skim but knowing their final intent and some in depth underpinnings) they are another FLASH system but with greater oriency to process and SOA. for client server interaction.
There is no actual way out of knowing the base processes (e.g. CGI specifications / mail SMTP protocol specs e.t.c. , XML/XSLT Scema/DTD entities AJAX and an appropriate CGI language (e.g. PERL PHP or Java)) to create web applications, particularly effective and accurate ones. Is it little wonder that bank tellers use a monochrome screen in 2008 not FLASH.


The combination of XUL and XBL certainly qualifies for inclusion here. A plugin for non-mozilla browsers (at least IE) is available from: http://ajaxwindows.com/apps/windows/content/index.html

Three books have been written on the XUL/XBL platform which is completely open source. Also, a number of well know applications, including Firefox have been written using this platform. For online documentation see:



There are several born ways penis slowly towards the head.

What method can and so be utilized twist your pc muscles
several times in intervals. Third, in that location are you require to get your body into the best
possible land so that it can begin bringing about the biochemicals over again.
At That Place is no ‘best method acting’ when it
should typically be influenced by your is a manly sweetening convention dealt as pills, while ProEnhance is a mixed
bag of raw kernels packed into a speckle.


Hello my friend! I want to say that this article is awesome, nice written and include almost all important infos. I’d like to see more posts like this.


magnificent post, very informative. I wonder why the other experts of this sector do not notice this. You should continue your writing. I am sure, you’ve a huge readers’ base already!


Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>