Steve Jobs, myths, Flash and the future of the web

Posted on April 29, 2010


After an (let’s call it) “interesting” post on Flash from Steve Jobs, the game on “what will be the leading web technology” seems to continue. I will close this post by debunking the half-lies and half-truths in Job’s post later in this post.

What is interesting is that Flash is challenged a lot lately by people inside and outside the field. What is also interesting is that this comes with the new hype created by the iPad.

It has received criticism before, (also from me) but now that Jobs himself takes the time to spend his time on this, the fire might be receiving some new fuel.

We will very likely see a new revival of all the bullshit that flew around at the beginning of this year as Jobs says “you are right in what you are thinking”.

Some backgrounds

Flash is a plugin

Lets take one step back: Flash is a plugin. It started gaining traction as an animation toolkit that delivered leaner and meaner files than the alternative we had to convey your message: Animated GIFs . Programming Flash was really limited in possibilities and paled in comparison with what you could do as a coder in HTML4 and JavaScript.

HTML and browsers did not evolve

As HTML got stuck at 4.x for over 10 years (released end of 1997) and each browser provider had another opinion on how to support CSS, the HTML Document Object Model and making JavaScript work wit that, Flash gained traction for building very specific types of sites when more and more became possible every new version of Flash released.

One supplier

One good thing about Flash: it was provided by one supplier: Macromedia (bought by Adobe later in time). This meant that whatever you created in Flash would work in any browser at least on the Mac and the PC.

Critizising Flash on the wrong issues

When I read the criticism on Flash being “not open” – also in the post by Steve Jobs – I can not think but there is some marketing think behind this. It is like criticizing cars for not being able to fly or  sail “because they have wheels”. Here is the logic: Flash is NOT an open standard BECAUSE it is a plugin developed by one specific company. You basically show that you are an idiot trying to compare the “openness” of Flash with the “openness” of HTML.

Flash is still a niche-player – HTML rules

When I look at the amount of sites I view in Flash, they are absolutely minimal in number. Even those where Flash COULD have been a top-dog – like every single real-time social web site and applications like G-mail. All of them run HTML with JavaScript and some type of Ajax-type-implementation running as applications instead of web-pages. Things you can do much better in Flash, with less effort, more gorgeous design and more added possibilities – were we living in a parallel universe where Flash itself sucked less.

Why? or How Flash killed their own potential market

Macromedia before and Adobe for a long time have strongly neglected to optimize the Flash Compiler and the Flash Runtime engine. They made a rewrite with Flash 9, introducing ActionScript 3 and a faster Runtimer opening the platform for new uses like Papervision 3D, AR and reading QR-codes.

What they did not do until now or until recently was optimize the bytecode for faster execution, deal with a better clean-up scenario, better management of memory resources, looking at more serious publishing scenarios like online magazines and the likes and invest effort in using the GPU for rendering. As a consequence:

  • Memory: Flash gobbles up a lot of memory when you run a site in flash (100 MB to 200 MB per Flash-site are standard until now – April 2010). You really need to know what you are doing to avoid this.
  • Fluidness: Only in Flex there are ‘proper’ tools to build scalable / fluid interfaces. Doing that in Flash requires a lot of extra effort and makes it “preferrable” to build Flash sites static in size which do not deal properly with resizing of the browser window.
  • CPU: Flash can not deal with a lot of elements animating at the same time: taking all of your CPU time sooner than later
  • SEO: The flash-community at large ignored Search Engine Optimization for a long time. Solutions provided now by Adobe and Google do not really help. They try to solve a problem you can solve by publishing the content as HTML with a overly complex and unpredictable solution that only looks good on paper for people who believe the hype.
  • Accessibility: for people with handicaps, Flash offers limited options to give feedback other than the visuals. But this is also neglect from the community and from commercial parties. Important, but a minor factor where it regards conquering a market. People with a disability form a minority.
  • Scalability: taken these factors, building huge Flash sites introduce a risk. Simply put: if every Flash site takes about 200 MB, 5 Flash sites open at the same time already eat up 1 GB of memory. Most computers used now were bought more than 2 years ago and hold 1GB to maybe 2 GB of RAM.
  • Downscaling: due to these two factors, as a developer you are forced to downscale below industry standard: to build websites and applications that might have impressed people 10 years ago, but pale in comparison to what the Game-industry shows

More interactivity: Flash Media Server

Then, with Flash Media Server, Macromedia made another stupid fuckup. Instead of introducing friendly license models you had to pay 20.000 euro’s and more to utilize a very undervalued part of Flash: the possibility to stream data over the web via a web client. Due to this pricing, many clients said “No” and thus we hardly see online “Skype” applications.  The uses are:

  • Streaming video (video chat)
  • Streaming audio (audio chat)
  • Remote objects and remote Object Binding (real time game play, accessing data on the server directly via the data objects in Java or .NET – faster then via HTTP)

HTML is for geeks

Still, as a designer, you can not do for HTML in the way you can do that for print: make stable designs that look gorgeous anywhere and run without having to perform clever tricks.

HTML is a hell for designers

HTML is not made for graphic design. It allows you to do that, but any wrong browser-version with the wrong type of CSS / HTML / DOM implementation might make your design go “crash!” on your screen and “gurgle” down the toilet.

The only way to do the more subtle work like shadings, shadows, glows is by exporting your work as an image or embedding it in Flash.

The future of the web

Flash filled a gap. First by offering a way more better solution for animations on the web. Later by adding all this stuff that HTML and JavaScript did not offer:

  1. Interactive vector based animations
  2. Reliable “What You See Is Exactly What You Get” design
  3. Reliable and native streaming video
  4. Recording of audio and video
  5. Remote objects
  6. Accessing camera input and audio input from your computer
  7. Filters like blur, glow and shadow
  8. Persistent Local Data Objects (including the direct storage of Arrays and their content)
  9. Runs anywhere, stable and reliable

I do not care about the death of anything

As with many things, any important change will be in most cases not be the death, but the end of things as we knew them until then. This is very important to realize. The world around us changes constantly. Adapts.

Canvas and JavaScript WILL become the new Flash for advertisement

Flash is just an instrument of expression. Like Canvas is becoming now.

By removing Flash, one thing you will not remove: the eco-system of advertisers and sites with enough traction to make advertising there interesting. Flash has just been one way to expose you to their messages. Canvas is a very good candidate runner-up.

When you remove Flash, each of these crappy banners will be built in Canvas using JavaScript and CSS to replicate the exact same type of animations that will raise your CPU usage to 60% and higher.

Installing Flash-blockers only makes Evil Canvas Applications happening faster

The more people install Flash-blockers, the more interesting it will become to use Canvas for advertisement. Canvas is embedded in HTML5. It runs native. What more do you want?

HTML and Flash

The web is being pushed into becoming a more mature environment to work in.

Regarding HTML I can only hope that the standards provided will lead to:

  1. More “Flash like” possibilities to make rich websites with optimized user experiences regarding loading and presenting content
  2. A very stable and shared Presentation Standard that allow designers to create what they want – with the assurance and support so that it will LOOK like that as well
  3. Dynamic 3D with the same quality, performance and possibilities as in the games we can buy – so we can experience amazing 3D sites, online games in 3D and much more eye-candy than we have right now.

Regarding Flash: Flash is a niche-player with a very wide distribution. It has the goodwill from the advertisement agencies as any other online platform sucks ass when you want to make great design. This is a very thin line to walk on. As all the elements used in flash (to render images, play and record video and audio, program software in) are becoming more and more available in the open source community.

Plugins will not disappear

Plugins exists because the current standard does not provide that specific solution a client requires.

Plugins can be made by anyone. So can a “Flash killer”

We have seen the rise of Google and Facebook, to name two. Any new party smart enough to build a new Flash-killer and strong enough to survive the first years after launching it can be the next Flash-killer. It requires a strong vision, some really smart programmers and a good understanding of the market you are playing in.

Unity3D and Processing / Processing.js are two strong near-future candidates in my book.

HTML5 will not kill Flash

HTML5 will not do the job of killing Flash. As long as you can not rely on the stability of the way pages are rendered and as long as you can not define clear behaviors for objects in your DOM model (like – “this is an area for dragging and dropping and can not be selected by mouse over”) it will be lacking specific things you need.

The iPad will not kill Flash

The iPad is – like the iPhone and Flash – a niche-product. There will be other products on the market, taking the strong hints from Apple to do more effort on the design as a whole. Where Adobe is going since the past 3 years (with their markering anyway) I will even not be surprised if some of these “non-Apple” devices will run Flash as the main render-engine for their OS and GUI. (Provided Adobe makes work out of that).

Steve Jobs and myths

Let’s look at the Thoughts on Flash post made by Steve Jobs.

First, there’s “Open”.

Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.

Any platform has closed properties and any system is a closed system. This is either in:

  1. The tools you need to create the content. Can it by any tool by any provider, or just one tool by one exclusive provider? The HTML adepts tend to focus primarily on this argument, neglecting most of the below.
  2. The available resources you can find regarding (in this case) code samples, “Do It Yourself” manuals and help from the community when you get stuck or need help.
  3. The possibilities the platform offers you. A hammer can be used for many things, including drilling holes using a pointy object. But you can not carry water in it. So “closedness” in the shape of limitations is in any system
  4. The accessibility of anything in the system from outside of that system and reversed. Can you access data, objects and anything else, from some other position?
  5. The distribution of the system. How many people are actually using that system? What are the properties of that group? If a specific solution is only used in a very exclusive group of people, the group itself is creating the closed system.
  6. The cross-platform publication options of the system. On how many different platforms can it run?

Apple talking about “closed” and “open” stinks very much like marketing babble to be honest. “We provide closed systems. But our closed systems are better than yours. As we use HTML5”.

Second, there’s the “full web”.

Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads.

When you publish Flash Video, it is either in H.263 or H.264. YouTube does Flash video using H.264 (which on itself is not an open standard due to it’s license model). Stating: “that almost all this video is also available in a more modern format, H.264” is basically stating you do not know what you are talking about.

Third, there’s reliability, security and performance.

Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.

I do not know about the Symantec report.

Regarding this statement: “We also know first hand that Flash is the number one reason Macs crash” – the one application that makes my Mac crash is the DVD player which is provided by Apple and enclosed in the Mac OS.

Recently I also had a large numbers of crashes with the new Firefox browser, on sites that run HTML and JavaScript. Flash rarely crashes my browser. And when it does, it is in most cases very likely because the programmer of that site made some fatal programming error.

Regarding performance: yes – I agree Steve. Flash is sub-standard on many levels. But I agree from a different point of view then you do.

Fourth, there’s battery life.

To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray DVD player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.

Although Flash has recently added support for H.264, the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software. The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.

Here I start to wonder who informed Steve. It must have been an idiot. Taking: “Many of the chips used in modern mobile devices contain a decoder called H.264” – as Flash uses this standard as well since 2007 it will be able to use the advantages of the hardware-decoding in H.264.

Jobs undermines his statement even more with: “the video on almost all Flash websites currently requires an older generation decoder”. It is such a bold statement that it almost becomes a lie. No doubt the market will pick this one up and spread it like a new internet meme.

Fifth, there’s Touch.

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

Yet another hollow statement: many Flash websites rely on “rollovers”” – how many are those in percentages? And what does a design decision to use rollovers exactly prove regarding Flash not being fit for “Apples revolutionary multi-touch interface”?

Sixth, the most important reason.

Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. [..]

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This is also nonsense. And I wish I could at least agree with one point without thinking (“Bullshit”) in the back of my mind.

Any third party layer of software adds something to the platform. Namely the opportunity for developers to use a specific aspect of that platform. This can be very limited in use, like rendering fast 3D environments to run games in – like Halo (you CERTAINLY create sub-standard apps with that as you can not do any serious things with that third party layer of software – like word processing, video conference or graphical design).

As for hindering the platform: the moment you create something drastically new that is so far away from everything before, I can understand this. When you release a totally revamped API to your OS and your hardware, all the old software will very likely fail.

But “If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features” is not an argument. It is advocating the limiting of choice by saying that “we know best what is best for you”.

If I want to take maximum advantage of your system I will choose the tools for that. And any tool will offer limitations. As every tool has started with a very specific use case as it’s reason for existence.

Posted in: Opinions