Perhaps it is obvious or this is the elephant on the table, but there is a new client battle being played out right in front of us. As with all prior client advancements this is about who can provide a better user experience and become the leading I/O tool for users and the broader technology ecosystem. While browsers are increasingly the way people access information and interact we are now starting to see more mature rich interactive web-based applications which heavily extend what can be done in a browser. How RIAs evolve as “thin”, “thick” or “hybrid” implementations will be heavily dependent on what standards and vendors become adopted by the mainstream over the next five years which is why there is so much community and vendor activity. (i.e. the recent Google I/O event, the on Air Adobe Tour, and the various Miscorsoft Silverlight events)
To me there are three areas that need the most improvement and that no current solution addresses satisfactorily for the industry. In addition, since vendors bringing solutions to market have strong economic reasons to optimize their “client” approach to their technology platform choosing to use a specific solution brings many pros/cons that need to be watched as the market continues to mature with groups like the OpenAJAX Alliance and the W3C pushing real attempts at standards to support this new breed of RIAs.
1) Asynchronous communication: Since the term AJAX was first coined to describe something that had been enabled by browsers for several years and provided full time employment to anyone that can write JavaScript there has been a heightened awareness that good user experience means more then loading a new page onClick in under 2 seconds.
Both the AJAX and REST approaches are the current darlings of the technology space when it comes to open patterns for more interactive applications. What is most interesting is that these are “approaches” and not standards, which shows the true power of the technology community in adopting things that just work when they come occur. And, while HTML 5 and other standards chug along the new client battle is happening all around us led by vendors like Adobe, Google, Microsoft, IBM and others each pushing different angles from off-line support to ease of development and pre-built components. Today, this requirement is best understood and beginning to reach some amount of maturity across the industry. How cleanly this evolves is anyone’s guess.
2) Cross platform: This is an issue that gets attention but not always full support in ways that really matter to the developer from the vendor community. There are a lot of definitions on cross platform, but this is really a continuum where the cost to be portable has to be weighed with the benefits. The real value being realized when a solution appeals or can be used by the widest and deepest audience.
With this in mind a good cross platform approach would let one write an application in their language of choice and then support being able to compile and deploy that application to the RIA container or cloud of choice. In this world one would be able to write little to no script or just minimal script to wire things up. Yes, that is a high bar, but would be far better adopted by people then the many versions or forks of existing scripting languages that keep rolling out and in many ways create approaches that end up being very specific and only useful as point solutions for certain platform and application silos.
3) Event binding and discoverable capabilities: This is an area that needs work so that there are easier ways for applications/widgets/services to discover and subscribe to capabilities available in a given ecosystem. In addition, the solution should not be limited to only a WS-* approach, but should also be supported via RESTful approaches. In most cases it just is not easy to find services let alone easily bind to one if you find the capability you needed. If people are going to leverage the true promise of service-oriented applications (SOA) and software as a service (SaaS) then increasingly capabilities need to be implemented as more useful atomic capabilities.
I believe both Adobe and Google should be given mention for best trying to address parts of these three requirements (one of several recent comparisons between Gears and Flash) though it will be interesting to see how broadly each enables cross-platform support and event binding in ways that address the broader market use cases.
Posted by shanepearson 