Subtitle: Is Adobe Flash Still Relevant in Web 2.0?
I remember when I first saw Macromedia Flash (now Adobe Flash) more than a decade ago. I was blown away seeing smooth animation and vector-based graphics running in a web browser. I thought to myself, “This is the future of the web.” And it was… for a while…
During the early years of the Web, Flash was the only good option for animation and “sprucing up” a website. Your choice was to either “have a boring HTML website” or use Flash, so it became wildly popular. But today, its popularity is diminishing. I’ll tell you why.
Here are the top 10 reasons why Flash is becoming irrelevant:
- Device Incompatibility
- Poor Search Engine Optimization (SEO)
- Not an Open Web Standard
- Better Alternatives Exist
- Poor Maintainability
- Complicated Client / Server Support
- Poor Accessibility
- Poor Usability
- Poor Stability / Performance / Security
- Apple Rejects Flash
The Internet is no longer limited to desktops and laptops. Today people access the web from mobile phones (iPhone, Android, Windows Mobile, Blackberry among others), gaming consoles (X-BOX 360, PS3, Wii), and various TV-based browsers (set-top boxes and even TV’s with built-in web browsers). With most of these devices, Flash support is either nonexistent, or severely lacking.
Flash isn’t officially available for 64-bit browsers. When you buy your brand-new Windows 7 laptop and open Internet Explorer (64-bit), go to the Adobe Flash Player download page. You’ll get a message saying “Flash Player 10.1 is not currently available for your 64-bit web browser.” You’re stuck either using a 32-bit browser, or using the Flash Player “Square” beta (which has been in beta for years).
Poor Search Engine Optimization (SEO)
Flash is not fully readable by search engines like Google, Bing and Yahoo. It’s true that you can embed some meta information, but nothing comparable to real HTML content. Search engines cannot infer the meaning, structure and relevance of a website built entirely using Flash.
Not an Open Web Standard
Better Alternatives Exist
Flash is not the only option for video. HTML 5 supports embedding videos in a web browser without Flash. The H264 video format has already been adopted by many websites, most notably YouTube. H264 provides much better quality video than Flash (FLV format) at a smaller file size [yes, I know that Flash can play H264 videos; my point is that Flash Player won't be required to watch H264 videos]. Many of the devices mentioned above (under “Device Incompatibility”) already support embedded video, or will support it soon. Devices like the iPhone/iPod/iPad even have H264 decoders built into the hardware so you can watch high definition videos with minimal CPU / battery power.
After you’ve released your Flash website, it’s also a hassle to maintain. Changing a Flash animation can be complicated work, and it requires editing the original uncompiled .FLA file. Then it has to be recompiled into a .SWF before being released back to the web server.
There are also human resource issues to consider. Application development with Flash requires a very specific skill-set, and it’s rare to find a developer who is an expert at graphic design, animation, Action Script programming, data-driven client/server interaction, and server-side application architecture. Even if you find a great Flash developer, this often leaves businesses stuck relying on a single person to handle all updates. Pray that your Flash developer doesn’t leave or misplace the latest .FLA file.
Complicated Client / Server Support
Flash was created primarily for showing pretty animations in a web browser. It was not intended to handle client/server scenarios where a database is involved. Adobe has done a lot of work in this arena, and Flash can communicate with server-side data, but it’s a major hassle compared to other options. Flash is generally not the best option for data-driven applications.
It is considerably faster, easier and more cost-effective to develop applications using a web language. For example, ASP.NET and PHP can easily retrieve data from SQL Server and generate HTML for a web browser. Flash introduces additional layers of complexity and more points of failure, making the application development process harder than it should be.
Poor Stability / Performance / Security
Flash is known to have issues in the areas of stability, performance and security. It has been the cause of many browser crashes. It requires a lot of CPU power, and can bring low-powered computers/devices to their knees. I’ve seen mobile phones, netbooks and gaming consoles completely freeze simply because a user tried to watch a Flash video. I’ll grant that Flash developers can influence performance, but it shouldn’t take an expert to make something that works well on all devices.
Flash websites (i.e. the whole website is one big Flash object) introduce several usability problems:
- Normal browser navigation doesn’t work. If you click on something inside the Flash animation, you can’t click the back button to return to the previous section. This leaves users confused or frustrated.
- Bookmarks don’t work. You can’t bookmark a specific section of a Flash website.
- Touch devices aren’t fully supported. Many Flash applications rely on a mouse rollover for interaction. This rules out most mobile phones, tablet devices and touch-screen PC’s.
- The “Find in page” feature doesn’t work. You can’t use the browser’s in-page search.
- Multilingual / localization support is complicated to implement. Any multilingual support must be built from scratch. Automated translation tools (Google Translate, Yahoo BabelFish) do not work on Flash content.
- The user interface is often awkward. This is not the fault of Adobe, but of many Flash developers. It’s common for Flash developers to add long intro animations (yawn) and special effects that look pretty but waste the user’s time. Instead of a normal menu, a Flash developer may try to get fancy and create a spinning orb for navigation. Simplicity = usability (look at CraigsList.com), and Flash was created to be “fancy” not “simple.”
Because Flash .SWF files are compiled (binary, not text), screen readers cannot read them. That is, text-based web browsers for the sight impaired do not work. This is not a concern for some people, but large corporations and government websites care about accessibility.
Apple Rejects Flash
The most intriguing article I’ve read about the future of Adobe Flash came from Steve Jobs (founder of Apple). His article “Thoughts on Flash” sums up the reasons why the iPhone, iPod and iPad do not (and never will) support Adobe Flash. I’d think twice before building a website that leaves 90 million iPhones out in the cold.
Steve Jobs is not the first to reject Flash. Industry experts have expressed concerns for many years. Usability expert Jacob Nielson published an article in October 2000 titled “Flash: 99% Bad” stating that “99% of the time, the presence of Flash on a website constitutes a usability disease… it encourages design abuse, it breaks with the Web’s fundamental interaction principles, and it distracts attention from the site’s core value.”
Most of the issues I’ve mentioned are also described in detail at Wikipedia’s Adobe Flash article. Someone posted a statement on Wikipedia saying, “On Mar 8, 2011, it was announced that Flash support would be coming to the iPad, iPad 2 and iPhone.” This is completely untrue. The citation references an article about Wallaby, a tool for converting basic Flash animations to HTML 5. In other words, this is actually an example of HTML 5 being used to replace Flash.
Flash was a cool technology, but it’s not the future of web development. It’s time for web developers to move on.
I see three legitimate reasons to use Flash:
- Display of video (until the HTML 5 standard has sufficient adoption)
- Banner ads (because Flash sure beats GIF/JPG for advertisement)
- Browser-based games (because Flash beats Java in this arena)
My argument is that Flash should not be used for things like:
- Development of an entire website.
- Development of complex data-driven applications.
- UI components such as data grids, content rotators, tree views, input forms, etc.
I would rather invest my time developing a website that everyone can use, even if it’s not as fancy. That’s my opinion, and my recommendation to my clients. My readers are welcome to form their own opinions and make a different recommendation to their clients.
Filed under: Development Tools, Patterns & Practices | Tagged: Adobe, Adobe Flash, HTML 5, HTML5, Web Development | 8 Comments »