I recently read an article by Adam Wolff, the chief architect of Open Laszlo, an open source competitor to the flash platform. Open Laszlo has gained impressive ground and is used in several serious deployments, namely Pandora.
Adam’s article is entitled “The Javafication of Flex”, and is a great read for anyone doing serious RIA development. Adam’s argument is that the Flash platform, including both ActionScript and MXML, are becoming too much like Java. The conclusion is that this conversion will cause the platform to lose flexibility and ultimately share the same fate as Java. While I agree that the conversion is occurring, I believe the changes will result in a huge increase in market share in the enterprise arena, without the market share loss in other segments that Adam implies will occur. Here’s why:
First, the Flash and Java platforms are apples to oranges. While it is true that both aim to be the dominant creation and delivery platforms for the RIA’s of the future, they have approached it in monumentally different ways. Java was an OOP language first. Instead of doing function over form like other platforms, Java simply throws form right out the window, along with the user experience. Java makes ugly applications, plain and simple. Even though a few of the newer Java applications have overcome this stigma, such as ThinkFree, the truth remains that the ugliest Flash apps are more aesthetically pleasing than the all but the most well designed Java (and Ajax) apps. Just compare Scrybe to any other online calendar and productivity suite. To sum it up, Java failed because the user experience was completely disregarded.
Now enter the world of the Flash platform. In well designed Flash sites and applications, the user experience is first and foremost. In the hands of a clever architect, Flash has the ability to gently push and prod the user through the experience of using the application through interactivity and visual cues. The Flash platform started as a means to bring animation to the web. It was then redesigned to create interactive web sites. The Flash platforms’ roots as an interactive design tool give it an incredible advantage over Java. It is EASY to focus on user experience. Until recently, Flash did have several huge shortcomings that were preventing it from being a true RIA platform, namely ActionScript 2, and the lack of a decent development environment. As anyone who has developed large scale sophisticated applications in ActionScript 2 knows, its pretty damn difficult to create good robust code using ActionScript 2, and coding in the Flash Authoring Environment is like picking the hairs out of your arms, one at a time. Flex was introduced to correct this shortcoming, and so far it looks like it fits pretty well into this role. The separation of the Flash Authoring environment from the Flex coding environment allows teams to have a seamless work flow experience while at the same time creating robust interfaces with solid and aesthetically pleasing user experiences. Interfaces can be modularized into components that are designed and developed in the Flash Authoring Environment and then combined into an application in the Flex development environment. Thats not even considering Apollo, which is an up and coming technology that should not be underestimated. If Apollo succeeds where Central failed, it will be a game changing technology to say the least. Implementing true web applications that are no longer slaves to the browser will only serve to further strengthen the platform in general. Combining the user experience, work flow and rich media that the Flash platform brings with the delivery technology of Apollo and document management technologies like Mars lays the road map for a pretty complete RIA platform. If there is a competitor that will provide all of this, I haven’t heard of them yet.
And since ActionScript is still at its roots a prototyping language, it maintains its ease of use for smaller scale deployments. In smaller scale apps, designers run the show, and Flash provides them a work flow that they are unlikely to abandon for any alternatives anytime soon. The coming integration of Photoshop and Illustrator with Flash only strengthens this stranglehold. These non-enterprise deployments simply ignore Flex and back end data services as they always have and continue to deploy using the Flash authoring environment. I really don’t see any serious competition to challenge Adobe for this market anytime soon, which is unfortunate as competition drives better products and more innovation.
Flash will maintain the lower end market through the integration of the Adobe Creative Suite. That alone will keep most designers delivering their dynamic content in Flash. In the enterprise market, Flash will succeed where Java failed for one critical reason: user experience. Users want beautiful applications, and Flash delivers in ways that other platforms have difficulty even attempting to mimic.