Virtual Panel: The Current and Future State of RIA
InfoQ recently conducted a virtual panel via email on the current and future state of RIA and Ajax technologies. The panel features a number of valued contributors to the community:
- Dion Almaer - Director, Developer Tools at Mozilla Corporation
Jnan Dash - Chief Strategy Officer at Curl Inc.
Didier Girard - CTO of SFEIR, Author OnGWT.com
Peter Pilgrim - Java Web Users Group Founder
Tim Sneath - Director - Client Platform Evangelism at Microsoft Corp.
Ryan Stewart - Rich Internet Application Evangelist at Adobe
Below you will find the questions asked and each participant's answers.
1. The web has been large dominated by "pages" and not "applications" despite the advent of RIA technologies. In the last year we have seen the shift accelerate however with websites featuring "mini-applications" for video, interactive exploration, etc. Given this change has RIA finally "made it".
Almaer: - There will always be a place for Web pages, but I agree and think that we are reaching the age of the Web Application. Of course, Web apps have always been there, but we have gone through a change in times:
- Tech was too poor for responsive web applications
- Ajax hobbled together hacks and standard to finally give developers JUST enough tools to build decent apps.
- Today. Ajax was kind of like the first airplanes. They were hobbled together and they kinda worked, but they were far from optimal. It was amazing to see the feat happen, but not it is the time of the jet. Clean, usable software that is rich indeed.
Girard: - Internet is this a vast aggregation of pages. It will stay like this for years. But during the last two years I have seen a major swift for corporate developments. Now, most of new applications are Single Page Applications where RIA is the heart.
Dash: - I think there is much more RIA in the consumer space, as the need for moving from static refreshable pages (hence latency) to dynamic interactive applications is strong. For the enterprise RIA, there is no choice but to provide interactive and stateful transactional applications, as that's what they are used to in the client-server model. However, enterprise RIA is yet to take off in the US. We see a lot more use in Japan for the Curl RIA platform.
Sneath: - It's a tough question to answer, because it assumes an industry-standard definition of the term "RIA". Powerful internet application frameworks have been around for a long time now - for example, it's nearly 12 years since we introduced ASP, which provided an abstraction layer over basic HTML to support state across pages, richer controls and relatively seamless client/server development. AJAX itself is ten years old next month - with IE5 shipping the very first implementation that was later adopted as something of a standard.
Pilgrim: - I believe that JavaFX RIA has finally arrived on a desktop in the last year. I qualify the word desktop and we only have the first release of JavaFX Mobile for those mobile phones and devices. There have been a few web sites that have been proof of concepts. Adobe, for example, had Dashboard of a Flex application for at least a year. SilverLight was delivered by Microsoft as the rich application for the NBC coverage of the Olympic Games, and I believe the President Obamas inauguration cerenomy. JavaFX has yet to produce a RIA star for want of a better word. The biggest RIA I know though is TweetDeck, which is an Adobe AIR application. I currently use TweetDeck every day obviously, although I see nothing in its user interface that would prevent somebody building a JavaFX version of it.
Stewart: - I'm still not sure if it's "made it". I think as you expand the category to include things like widgets, video, richer desktop applications, and rich browser applications, it's clear there is a lot of momentum in the direction of RIAs, but there are still a lot of companies who haven't seen the value of experience yet. But I do think we are in an interesting place because the tooling on the design side is starting to catch up with the designers imagination. Once that happens it will be much easier for RIAs to really take hold everywhere because designers and developers can collaborate on a great looking RIA without sacrificing anything on the development side.
2. As RIA technologies have been introduced, portability has been stressed. However, user demands are driving native integration with file systems, docks/taskbars, calendaring, and other os level items. Do you think RIA platform will focus more on such integration in the next few years or continue to work towards interoperability instead?
Stewart: - That's going to be the very interesting thing. There is still a tremendous amount of energy and excitement about the browser. In a lot of parts of the web I think people have essentially written the desktop off for dead. But there is a lot of value in being able to do things like access the file system and give an experience (like notifications) that leverages what we already have and know on the underlying operating system. And I think that's only going to get more important. I do think we'll start to see things that bridge that gap between the browser and the desktop, but security is going to be a major concern. In the meantime I like the approach of technologies like AIR or Appcelerator that let you use great web development languages to take advantage of some of those desktop features.
Sneath: - I think it's inevitable that users want the best application experience that they can get - my mother doesn't understand the distinction between a web and a Windows application, she just wants to get the job done, whether she needs to draw on local or Internet-based resources. For now at least, there's a choice you need to make here - there will always be application scenarios where the only thing that is suitable is a "native" local application; equally, there are plenty of scenarios that can be delivered in a portable fashion. It's tough to deliver both simultaneously, and every platform that has tried so far has tended to impose a non-standard, lowest common denominator approach where the solution doesn't look like a native application nor does it integrate well with the rest of the system.
One of the strengths of the Microsoft client platform stack is that we have compatible solutions that target both needs: with Silverlight, we have a lightweight runtime that is optimized for delivering great solutions across multiple platforms; we also have WPF, which is a superset of Silverlight that is perfect for building Windows applications that have full access to the underlying operating system and can take advantage of the native hardware capabilities. Since it's possible to build solutions that scale naturally from Silverlight to WPF, you can have your cake and eat it to a large extent.
Dash: - Again, let us distinguish between consumer RIA vs. enterprise RIA. We see more interoperability needs than integration needs. Wherever we get benefit of the client OS (such as exploiting drivers for video rendering), Curl uses them for fast performance. The approach seems to be client-side integration and server side interoperability (incidentally Curl does not have any server-side code).
Pilgrim: - This is a good question. I thought RIA solutions were developed to bring better experienced to web browser users. The barriers between web and desktop are now pretty blurred. Java 6 Update N series allowed a Java Applet to be dragged outside the browser onto the desktop. Adobe has AIR. If one ruminates the possibilities here then we have suddenly now an Estate Battle: who owns the desktop? Which applications can do this? Or rather which applications will the user or the business allow to be incorporated into a desktop.
So if one looks at RIA at this level, then the idea of interoperability with the OS GUI, privacy and security model becomes paramount. There is already a project called WidgetFX, which theory allows an organisation to build gadgets in the style of the Google Desktop or Windows Live environment. That could be a very interested way to develop Enterprise Applications rather using the Java Enterprise Web API such as the plethora of web frameworks or portal application (JSR 186,286 and WSRP).
I think the user (the consumer) will govern the applications that are successful e.g. TweetDeck. Selling an application as a bundle Enterprise RIAs or Gadgets will definitely need a lot more work on the JavaFX side.
Almaer: - We need both. We have favoured interop, but that creates a cliff for developers (just as it did for early Java days when they couldn't just link into DLLs etc easily). The cliff means that you say "Hmm, I guess I can't do that in this technology, so I will have to go back to a Desktop API platform." Now is the time to push the Web forward and get desktop service APIs so we can do what a native platform can do.
We have been kept behind a veil of security. "We can't do that, we are on the Web." But this is bogus. To get the functionality to users we then end up writing an application on a native platform and ask our users to download and install it. At this point the users aren't secure at all! They are running our binary files that have full control of the system and can do anything they wish. Ouch. We need to build a nice, non-annoying, trust model for Web applications, which I have discussed before (http://almaer.com/blog/application-trust-models-expanding-web-applications-out-of-the-sandbox).
3. Video is the largest application type driving RIA adoption at the moment. What other types of applications to you see driving RIA technology adoption in the next 12-18 months.
Dash: - We at Curl focus on web-based enterprise applications that demand high scalability, reliability, security, performance and predictability. The motivation is to switch over from client-server applications of last 15 years to a web based architecture that reduces TCO (Total Cost of Ownership) drastically. Frankly, video does not appear as a high priority for these applications at all. That is the reason why Curl has 400 large enterprises as customers running mission critical business applications. Not a single customer has deployed video.
Pilgrim: - For other media, I think it will be obviously audio. For JavaFX last year 2008 was amazingly successful. For the first time, a developer could write a simple video player and deploy it as an applet.
The other application I see for JavaFX is mobile applications. I can see games and consumer mobile applications. Especially, now that JavaFX Mobile is built on the JavaME stack.
Sneath: - Video is still a big thing. Today, most of the video content delivered is still a long way from "HD quality". There's lots of innovation in the video space, both on the front-end and the back-end, and we certainly see it as a major opportunity for Silverlight over the coming months.
Almaer: - I see a general trend of flipping expectations on what can be done on the Web using this technology. There was a time when people would think you were crazy for building a Web based email client. Now a huge number run Gmail/Yahoo! Mail/etc. Same goes for mapping. The reason that we started building Bespin was to see how far we could go building a rich Web code editor that wasn't just a cheesy textarea. I expect the trend to continue, and before you know it we will see applications like video editors and Photoshop truly on the Web. Watching apps like iWork.com gives you a glimpse.
Girard: - In my field, corporate developments are driving RIA adoption. I see more and more companies that ask sophisticated applications for their corporate needs.
Stewart: - Video will still be the biggie. But one thing I think will become a lot more important are the real time collaborative applications. The web is starting to move at real time and while we've always had chat, we haven't been able to do other things at that real time speed. As people spend more time online and sites like Facebook grow, there is hopefully going to be a big demand for real time collaboration with peers and friends. I think RIAs are uniquely positioned to be able to fill that niche because of the combination of video, audio, and rich interfaces. And both Adobe and Microsoft have some great backend solutions that make this possible as part of an RIA frontend.
4. Given your target framework/language what is its greatest strength versus the rest of the field at the moment (Ajax, GWT, Curl, Flex, Silverlight, JavaFx, etc)?
Sneath: - I've got to pick just one?!
Dash: - Curl's greatest strength is developer productivity (one language covers the entire spectrum of text, graphics, grids, as well as object oriented types and classes), and run-time advantages of scalability, very high volume of data handling, fast performance due to client-side compilation to machine code, and high security features. These are the basic requirements of all large enterprises for mission-critical applications for their business.
Pilgrim: - The greatest asset is that JavaFX is compatible with Java. So you can take advantage of source code repositories such Apache Software Foundation, Codehaus and SpringSource.
The second asset is that there is a standard scene graph API for developers, bindings and triggers with animations built in to the language and platform.
Almaer: - My world is the Open Web. Ajax and such. The strength is that it doesn't have a company name before it. There is MICROSOFT Silverlight. ADOBE Flex. But it's just Ajax. Just the Open Web Platform. This means that we have an opportunity where DEVELOPERS are in control of the platform, and thus we aren't at the whim of a corporation that may be well aligned today, but what about tomorrow? However, we can't just live selling a message of "open matters!" we need to compete on the platform level and we are pretty excited about what we have in the commons, although there is work to be done....
Girard: - GWT is the less disruptive technology for the ecosystem :
- there are tons of developers that know the java language, they are all RIA developers that ignore themself, switching to GWT takes about one day for a java developer
- the browser is the runtime for a GWT application. It is the most widespread : a GWT application can run in all browsers even on iPhone or Android
5. Given your target framework/language what is its greatest weakness versus the rest of the field at the moment?
Almaer: - The other platforms have a home. They have unified documentation. You know where to go, and what to do. With Ajax we have the tragedy of the commons which is incredibly hard to navigate. We are looking (as a wide community) to do something about this in 2009+.
Pilgrim: - The first great weakness is the lack of complex scene graph based components, which do not use Swing. For instance there is no pure scene graph SplitPane component, no TabbedPane, or a equivalent to a JTable. You have to program these yourself at the time of writing. I have written a SplitPane.fx and a BorderLayoutPanel.fx component. However help is at hand, with the JFXtras project. Plus I am not sure what Sun are doing themselves. In the advanced component space, FX is way behind SilverLight and Flex.
The second greatest weakness is that JavaFX media has no recording capability at moment. In other words, you cannot encode media using a client. You cannot write a JavaFX version of Sims-On-Stage (A Popular Web Karoake Site bought by Electrionic Arts) at the moment easily. The Java Media Component API has to be enhanced. You could use JavaSound API and do a lot of technical advanced programming if you really to have streaming recording. In this case FX lags behind Adobe. Java and JMC could surpass Adobe if they allow really get down to sub pixel rendering (video) and offer audio effects (such as reverb), e.g. recording and processing.
JavaFX is perfectly adequate for financial applications at the moment. You can deliver streaming business information on market data to clients with a relative simple GUI. Building a JavaFX application with tabular data with exceptional performance level may have to wait a bit longer.
Dash: - Curl's greatest weakness is its relative obscurity. Most of our customers have tried and failed with Ajax and Flex before discovering that Curl can solve their high performance and security needs. Also, video rendering is not one of our strengths as that was never a target.
Sneath: - One of the objections that we often hear from our competitors is that Silverlight is still not broadly installed on consumer machines. In fact, we're delighted with the pace of traction Silverlight is showing in the marketplace. Silverlight 2 has been out for just five months, and in that time we've seen hundreds of millions of installations, with Silverlight installed on more machines than Firefox and Google Chrome put together! Naturally, we're not resting on our laurels - we have to continue investing in the platform - but with great showcase sites like Netflix, March Madness, Sky UK and AOL, we've got content that will continue to drive ongoing installations.
Girard: - GWT weakness are browsers weakness. The most important is certainly about 2D graphics. A better support for canvas and SVG in browsers could be nice.
6. Most RIA languages are not used for both client and server development. Typically backend work is done in PHP, Java, .NET, etc. How do you see this polygot programming model effecting RIA?
Dash: - I like the phrase Polyglot. Frankly it's a mess. We observe that the world is polarizing to two-language schemes (e.g. C# & XAML; ActionScript & MXML; JavaFX & Java). One could argue that 2 is better than 4 and 4 is better than 6. But we at Curl believe in 1 language covering both the presentation stuff and the logic stuff. Hence the researchers at MIT designed one uniform language addressing the entire spectrum. This results in tremendous "programmer economy", something we don't seem to focus in the RIA world. Our customer experience substantiates this advantage greatly. Curl is a great multi-paradigm language for building rich client applications. We hope you add it to your language repertoire.
Stewart: - I hope it will help speed adoption. Learning a new language is something that can be daunting or fun depending on how you look at it, but as the article notes, it's become almost essential to combine different languages together for an application. In the end, I think that frees up developers to use whichever language combination works best for them and can make them most productive. If everyone subscribed to that theory then I think every RIA vendor would see an uptick in adoption and applications, and that's something we should all be encouraging.
Girard: - For GWT it is not the case. You use the same language for the client and the server. It is a real pleasure.
Sneath: - This is certainly a unique advantage of Silverlight. If you're a .NET developer, you already know Silverlight - the programming model is the same, it's just a subset of the full .NET Framework. Indeed, you can take the same source code you have today written to run on an ASP.NET-based server and use it within a Silverlight-based client application - often without any changes at all. Because of the ubiquity of .NET, you can share not only your code but also skills across a huge variety of different device classes: from an Xbox to a mobile device to a web browser to a Windows client application to a datacenter server to the cloud.
Pilgrim: - For JavaFX developers, I think you need to write in Java as well for some of the dirty work. Especially if you using EJB, JMS, or using client server protocols like throwing XML across the wire. I don't see JavaFX useful for the server side. Show me a use case?
May be one could write a Grails application that generates JavaFX code dynamically, compiles it and then sends back the JNLP file that references a dynamically generated JAR file. Yes, you can do it technically, but what is the business case for this colossal effort? In other words, it is a waste of time and money when we are slap down in the middle of a so-called credit crunch. Rather, use the languages to solve a business problem and that will be true path to innovation. In this regard, I see JavaFX, Flex and SilverLight are all viable ideas and platforms.