… is a question, that as an evangelist, I’m often asked. As momentum behind Rich Internet Applications continues, with an increasing recognition that there is a need to develop and deploy software applications that can span browser, desktop and device, and a choice of RIA-enabling technology platforms becoming available (from Adobe, Microsoft, Sun, Apple and others), it’s inevitable that more time needs to be spent evaluating technology options for a RIA project.
Undertaking due diligence for the selection of a technology platform is an important part of any project however and one of the challenges can be trying to identify the key differentiators of Adobe’s platform, given the breadth of information available on our site and the array of technology components that make up the platform (Flash Player, Flash Authoring, Flash Lite, AIR, Flex SDK, Flex Builder, BlazeDS, LiveCycle DS, LiveCycle ES, Flash Media Server, etc).
I thought I’d try and boil the answer down to five or six key points that I think should be considered if you’re evaluating Adobe’s platform. My aim was not to reproduce our corporate marketing, but rather distill what has resonated with the customers I’ve been speaking to about our platform; additionally, I thought I’d try and do it without mentioning a whole bunch of individual product names/brands (something which we normally do!). As always, feedback welcome on this via comments.
So, here goes… (relatively lengthy post ahead):
#1 Capabilities
The first, and possibly most important question, when considering RIA technologies, is to evaluate whether Adobe’s runtimes (which exist for browser and desktop) provide the features that you’re going to need on your project.
There are core framework capabilities, such as the provision of visual controls, layout managers, vector graphics rendering, data services, data binding and a robust event model, as well as core runtime attributes, such as small download size, high performance and cross-platform availability, that are required in order to deliver a Rich Internet Application; these will likely be provided by all RIA platforms over time.
So, what unique capabilities does Adobe’s runtime provide?
This is not a definitive list, but comparing the market right now, webcam support, microphone support, bi-directional text, graphics card acceleration, native 3D effects, bitmap manipulation, printing support, H.264 video playback and a high-quality VoIP audio codec are some of the differentiating features that you can take advantage of when building a browser-based RIA on Adobe’s platform *.
In addition, the ability to deploy your RIA using a desktop runtime means that you can access capabilities not offered within the browser environment – including, but not limited to, native windowing, native menus, full filesystem read/write access, client-side database, clipboard access, drag and drop, encrypted local storage, integrated HTML/Flash/PDF rendering, network detection and file-type registration.
#2 Ubiquity
For web-based deployment, convenient, instant-on access to Rich Internet Applications is important – it’s what people expect from using their browser. Should you need to go beyond the capabilities of the browser, you can leverage Adobe’s browser-based runtime, either as a part of an existing AJAX application, or to deliver a complete RIA, confident in the knowledge that it’s already deployed to 98% of Internet-connected computers.
As demand for richer, more engaging applications continues, Adobe is uniquely positioned to be able to “update the web” through the rapid distribution of our browser-based runtime – the latest version of which achieved 63% availability on Internet-connected computers within just three months. Additionally, Adobe builds and simultaneously ships this for Windows, Mac and Linux desktops, providing a consistent and supported runtime across these different operating systems.
#3 Deployment Flexibility
Whilst the browser represents one way to access Rich Internet Applications, we have an opportunity to further enrich the user’s experience by considering the most convenient and appropriate medium upon which to offer applications, content and services.
Adobe’s desktop runtime removes some of the restrictions imposed by the browser, enabling RIAs that persist on the user’s desktop, have fully-customized user interfaces, offer convenient desktop functionality (such as drag/drop, cut and paste and pop-up notifications) and can access both local and remote data.
The ability to build web and desktop applications, from a single code base, using either Adobe’s RIA development framework or AJAX frameworks, means that the barrier to creating desktop applications has been lowered significantly; and, just as with our browser-based runtime, these desktop applications can be deployed consistently to Windows, Mac and Linux operating systems **.
Going forward, as part of the Open Screen Project, Adobe has committed to delivering consistent runtimes across not just browser and desktop, but mobile phones and other consumer electronics devices.
#4 Proven Technology
Adobe’s RIA development framework has been in the marketplace for nearly four years, over which time we’ve seen a significant number of Rich Internet Applications be deployed by customers – the best place to see several hundred examples of these is at our showcase site.
We’ve made a significant investment in building a RIA platform, and so we’re also leveraging this to provide the next generation of Adobe software and services – from Photoshop Express to Adobe Media Player and the recently launched Acrobat.com applications, all of which are great examples of highly scaled, highly available applications distributed over the web.
#5 Expressiveness
The word rich in the term RIA is notoriously hard to define; while richness can be influenced by the convenience, relevance or satisfaction experienced from using an application, there is no doubt however that visual expressiveness is a huge part of what helps us differentiate an RIA from other web-based applications.
Adobe is continuing to lead the way in defining the expressiveness of applications that can be deployed over the web; with the next release of our runtimes adding features such as 3D effects, programmable graphics filters, advanced text layout and hardware acceleration, we’ll see rich and immersive online experiences that simply aren’t possible today. In addition, we’re continuing to work on exposing new features, tools and workflows to designers using Adobe Creative Suite, so that they can fully participate in the creation of Rich Internet Applications.
#6 Openness
Adobe is committed to supporting open source activities; contributing to existing projects such as SQLite, WebKit and Eclipse, ensuring our runtimes are available on open source platforms and delivering key RIA components (such as the development framework, the virtual machine used in our runtimes, and our remoting and messaging technologies) as open source code. In addition, Adobe has also released the specifications for a number of file formats and communication protocols so that third parties can build tools, runtimes and servers that utilize these formats.
As part of the Open Screen Project Adobe is working with a number of industry partners to ensure that we can extend our browser and desktop runtimes to mobile phones and consumer electronics devices; as part of this initiative, Adobe removed all licensing costs for deploying these runtimes and removed licensing restrictions for several key formats, including SWF.
#7 Innovation
With a history of disruptive innovation, I’m pleased to see that Adobe is continuing to lead the way in the RIA market. Sure, there’s always more work we can do to improve designer/developer workflow, fix bugs, improve documentation, etc, (all of which we’re doing), but who else right now is building large-scale RIAs with their own technology and exposing it to millions of customers, who else is extending the reach of RIAs to the desktop so that they work across different operating systems and who else is enabling enterprise-level RIAs with support for real-time collaboration, data push and online/offline data synchronization?
There’s lots more to do as we work with customers to define the next generation of software, and we’re always looking for feedback, bugs and participation to help us get there.
So, now you know why I think Adobe’s platform is a great choice for building RIAs, I encourage you to join the thriving development community, download an SDK or two and start building an application 🙂
* includes Flash Player 10 features.
** Linux version currently available as a pre-release, due for final release before end 2008