I’m sitting here winding up from MAX2004 – my first Macromedia conference, it has been a fantastic opportunity to stand on the horizon and gaze out over the Rich Internet Application landscape. There have been a good number of blog entries on the various talks and sneaks, but here are some thoughts on how I see this all shaping up. The Word is Out John Bennett from Macromedia Consulting (who accompanied Brad Becker in giving a fantastic talk today on the principles of experience design with Flex) said to me a number of weeks ago, “…is it just me, or does it seem like the word on Flex has got out all of a sudden…” Though that might concur with our experience, the word is now out BIG-TIME following MAX2004. An impressive number of sessions on the Flex product, on RIA development and on delivering greater user experiences were all focussed on the way forward for building Rich Internet Applications. For me, this is all reminiscent of the computer games industry … when it first started, all you needed was an idea, some talent, a great deal of perseverance and a computer, and you could deliver computer games. But as the industry matured, suddenly the production of games was performed with the same professionalism and attention to process as a movie; and so it seems with Rich Internet Applications. As I spoke with Flex users over the last few days, it’s clear that there’s an impressive number of big enterprise RIA projects in the can — and a groundswell of interest in developing more. It seems like the word on Flex is out now, and more importantly, it seems like the majority “get it”. Performance, Performance, Performance So let me take a look at the future of RIA from a Flex-centric perspective, as I see it. News during the conference was the release of Flex 1.5 — once again, the Flex engineering team have rolled out another release that kicks the backside out of the previous release. The focus is on performance, performance, performance – not only is Flex 1.5 just out of the box better at rendering your Rich Internet Applications, but the ability to apply more and more best practice to design in performance, is all good. Runtime Shared Libraries (RSL) for smaller application downloads, enhancements to the instantiation policies for “queued” instantiation (so that our UI loads progressively in the background, before the user needs it), to recommendations (discussed in Matt Chotins talk, and underlined in my own talk) of the performance gains (as much as 15%) that we can achieve by optimisation of our value object implementations for AMF serialization, performance is very much the focus of the team, and of the community that is out there delivering solutions. Alistair gave a great talk that included MXML refactorings, while Dave George and Matt Chotin both gave excellent and information packed talks, on Optimizing the Flex Client, and Optimizing Large Data Sets with Flex. Furthermore, it has been well documented that the Flash Player 8 (Maelstrom) that is under development, has an incredible improvement in performance. For Flash developers, the bag of tricks is ever more impressive, but even for the rendering of RIA, some of the bitmap enhanchements and general player performance improvements, have made the filmic experiences offered by RIA, even slicker, even smoother. The Flash 8 player will be another important contribution to the RIA ecosystem. Greater Visualisation and Interaction In Wednesday’s sneak peeks, I think quote of the night had to be the team that stepped up on stage and said, “…note to self; never follow the Flex team when doing a demo…” Flex 1.5 gives the community exactly what they’ve been asking for in a future version of Flex – a very complete set of charting components. Ely Greenfield (the Flex engineer responsible for the charting components) first showed what the 1.5 release could do with charts, before a sneak of what 2.0 might have to offer. The Flex Charting components embrace the design principles of the experience design team – not only are the charts great to look at out of the box, but they’re entirely customisable (we even got a sneak of a Java developers idea of a cool chart …. note to reader, it wasn’t cool :) ). Furthermore, these charts embrace many of the design principles that Mike Sundermeyer and Brad Becker had talked about throughout the event … for instance, the design principle of “adaptive presentation” drew a great deal of applause, as dynamically resized charts first staggered, then angled, then 90 degree rotated their x-axis legends, while intelligently reducing the numbers displayed on the y-axis legend. Further “adaptive presentation” was shown in the pie chart demos, with legends positioning themselves dynamically and intelligently; as the chart animated a changing data series, the legends would reposition immediately — and if we come back to performance for a second, the charts were fed with ever larger data sets, changing at ever quicker pace, with an incredibly impressive rendering. However, Ely’s demonstration quickly moved away from looking nice, to feeling nice; the ability to interact with charts not only by drilling down through them, but by dragging apart the bars, the pies, and using interaction with the chart to affect underlying data, rather than just vice-versa. For management dashboards and analysis type dashboards, this functionality is invaluable – this was demonstrated from what-if analysis on bar charts, to drag and drop comparison of complex data sets (election results were a popular choice) and most impressively, to forecasting by pulling points out of a graph. Data Services becoming truly Enterprise Though this further increases the value of data service handling in Flex, the peek to 2.0 functionality gave greater insight to what is to come — a demonstration of a pie chart bound to server-side data components, demonstrated how Flex 2.0 might provide server-side push of data to Flex, without the need for Flash Communication Server solutions. Discussions during the “Meet the Flex Engineering Team” suggested that the team hears us, and shares our requests, that data services should make it easier to support server-to-client push, data synchronisation and occasionally connected data sources. Things are going to get incredibly interesting for enterprise RIA… Desktop Convergence The release of Flex 1.5 supports tight integration with Central and Flex; with little additional code, we can now use the Flex developer workflow, with MXML and ActionScript 2.0 and a Flex server at the backend, to deliver Central applications. This moves Flex out of the web browser, and closer to the desktop – notably supporting File IO, and all the other features that Central has made available to developers. Sessions during MAX walked Central and Flex developers through the building of hybrid Flex and Central apps – 2 circles on the product graph, now intersect with Flex and Central integration. However, for clients unwilling to run their applications within the Central browser, or wishing for tighter integration with the desktop, then perhaps Longhorn and Avalon in 2007 is worth waiting for ? I don’t think so… The “Desktop Flash Player” Danny Dura stepped up on stage last night, and sneaked some of what has been going on with the Central team; starting with some new ways of docking the Central browser, similar to the auto-hide Windows task bar, Danny finished with a demonstration of what he called a “Desktop Flash Player”, and what we have truly asked for, for some time …. a truly headless Central runtime, that offers the desktop integration features of Central, but with applications delivered in an OS-specific window, just as if they were desktop applications, with desktop functionality. The sum of the whole is truly greater than the sum of the parts here; we can now author Central applications in MXML and ActionScript 2.0 with the full power of the Flex presentation server behind us — and with the Flash desktop player, our target deployment platform for these enterprise RIA need not be just the browser, but can now be the user’s desktop environment. I consider this to be a significant arrow in our quiver, as the demand for RIA continues. The RIA Ecosystem and Development Community Macromedia has an incredibly diverse portfolio of products, which brings together an incredibly diverse community of developers – graphic designers, interaction designers, usability engineers, web developers, enterprise software developers – and Flex sits comfortably in the middle of that community, offering a platform for collaboration. The contributions of the Flash Player team to the new Flash player, are an enabling technology for enterprise RIA, promising to deliver an ever better user-experience. The contributions of the Central development team (and at a future point in time, of the mobile and devices team — I’ll blog on this separately) are enabling technologies for taking the “reach of the rich client” beyond the browser, back onto the desktop from a single code-base and out to devices. The ingenuity of the Flex team, ensures that the product continues to maintain an excellent balance of implementing what the development community and customer community requires, and what the Flex product team can envision as the future of RIA. There is a convergence underway, offering us a seamless workflow for increasing the rich, and increasing the reach, of our enterprise applications. However, something more important seems to be happening — the fostering, rallying and maturity of a development community. When iteration::two announced that our RIA microarchitecture, encouraging best-practice RIA development, would be open-sourced, we were stunned to receive spontaneous applause. When we announced the availability of FlexUnit, a unit-testing framework for Flex developers, as an open source project, the community once more responded exactly the way we’d hope – by not only asking when they could start being users, but most importantly, how they could help as contributors. In meeting with the various product teams in birds of a feather sessions, in debating with the consulting team over best practices for RIA development, what has been most warming in New Orleans, has been the recognition that there is a fantastic talent-pool of RIA developers, who are ready to raise the bar. There is a momentum gaining around a community of developers and designers, who now have the tools and the inspiration to create great user experiences together. Is it just me, or does word seem to have got out ?