HTML5, iPod, iPhone, iPad: Is Flash dead?

May 17th, 2010

Now seriously, do you think one language or one platform is going to make Flash, Flex or AIR disappear?

How many other new technologies have entered the marketplace over the past several years? Did any of them replace what Flash has to offer to the point that it was on the verge of disappearing? What does a new technology have to offer to be so competitive, that it eliminates another? And if new technology comes into play with the potential of offer similar features and more, does that mean that Adobe is going to stop the evolution of Flash itself and allow it to vanish?

As time passes by I’ve heard many new programming languages and libraries, from AJAX, Django, Ruby, to HTML5, and many new hardware devices with their own platforms, iPod (Objective-C) and Droid (Andriod) phones. As new technologies enter the market, they challenging existing languages to evolve in their ability to support features and functionality. And as the devices evolve, support for new options in user interaction expand. Hey, now we’ve got touch devices at our fingertips responding to other gestures besides just a button click, such as multi-touch, shake and rotate. Is there anything so special about any of these technologies that immediately threatens Flash? Flash is evolving with the new advances in technology. The latest release CS5 supports repurposing source code for mobile devices and the new gestures that these devices have to offer.

It wasn’t always Flash. Once upon a time there was SmartSketch, for drawing on the computer, which became FutureSplash Animator, for creating animations, and eventually there was Flash, the animation tool for the internet. Flash has come a long way over the years offering more opportunities as it evolved over time. Remember when you choose to download the Flash Player Plug-in and install it in your browser? Well now it comes with your browser updates! And subsequent Player updates are behind the scenes. Video display in browsers was platform dependent, but Flash broke this when it integrated video display capabilities into the Flash Player.

What about the audience that produces Flash files for distribution? Flash is tailored heavily towards the visual design industry. This is where it started and they continue to support this audience. I don’t see any strong WYSIWYG tools for these other languages supporting a seasoned graphic designer who’s strength isn’t in writing code. What about those traditional frame-by-frame animations? The Flash IDE provides the mental model of the timeline that best suits what these animator’s are trying to accomplish. Not to mention, many sites are designed assuming that some viewers don’t have the Flash Player, and alternative content is created.

Not only did the Flash Authoring Tool adopt over time, but so did its programming language, ActionScript. Initially there were very limited scripting capabilities built into Flash, but over time it transitioned into an
ECMAScript scripting language, added in an event handling model, supported class based inheritance and type casting. Flash has been expanding into the developer market place, perhaps not a favorite to the hard core developer, but certainly more attractive and in line with object oriented programming principles than it was inn the beginning.

I see a re-occuring theme here. Yes, there are disruptive technologies that enter the market place and pull the carpet right out from underneath existing established technologies. But, what if these existing technologies continue to invest in their future, keeping on eye on trends in the marketplace and evolving their offerings to support the needs of their audience? How is the iPhone or HTML5 so unique and competitively different that they will make Flash vanish into thin air? Sorry, neither one is disruptive enough to make Flash vanish when Adobe is continuing to invest in its future.

I’m not saying that these technologies don’t have a place in the market place, but I hardly see them taking place of an already established technology that is continuing to evolve with the demands of its users and the audience that views the end result, the published swf file. Adobe doesn’t have a blind eye facing their competitors, they are well aware they’re not alone in a world of many offering technological solutions.

Muscle Memory and Gestures

May 12th, 2010

As I find myself interacting with various apps on my iPod, I find that occasionally I’m in auto pilot. My fingers do the walking across the screen, making the appropriate gestures to achieve a desired result, without me thinking too much about what my fingers need to do. However, once in a while the auto pilot is confused, doing a finger dance that is appropriate for an entirely different app, not the one I’m currently working on!

I wonder how often this happens to others? Does the frequency with which one uses a specific gesture impact the ability to quickly apply those gestures which are performed less frequently? Is there a high correlation between certain gestures to a desired response from an app? Are there common gestural metaphors used across different applications that lends themselves to stronger muscle memory connections?

If we look at the multi-touch spread and pinch gestures, touching the surface with two fingers and moving them apart or moving them together, respectively, we typically associate zooming in and out with these movements. There is a high correlation between these movements and the response of the system. What other responses do applications provide for these gestures? What other metaphors could be appropriate for spread and pinch gestures? In a drawing program, we could scatter multiple objects apart or huddle them together. In a game we could drop or pick up items, or give things away versus gathering things.

How does an individual learn to perform these gestures? How do they learn to adopt to interchanging between gestures? Does the frequency of applying gestures or interchanging between gestures improve one’s ability to apply these techniques?

I frequently develop in Flex utilizing the debug tool. If you press the debug icon, it will compile and run the default application currently in development. You can create multiple applications, where in turn, the debug tool provides a drop down list next to the debug icon, allowing the user select an application from the list to run. I find, that even though I want to test the default application, I still use the drop down list to select the default application. Since I frequently create multiple applications for testing various scenarios, I use the drop down list more frequently than the icon. My auto pilot takes over, using this feature more often, even when I’m testing the default application, even when it’s quicker to use the icon instead of picking an item from a drop down list.

How can we better understand muscle memory and its impact on ease of use? Will understanding our users, the frequency of gestures they perform and the correlation of these gestures as they relate to the task(s) they’re performing, enhance the user experience? If we know that our audience uses a subset of similar tools, what can we learn by understanding the similarities, between gestures and their respective tasks, across these tools?