Throughts on Steve Jobs’ “Thoughts on Flash”

 

Mac users buy around half of Adobe’s Creative Suite products

This is more for the fanboys.  By extension, I guess that the other "around half" of Adobe's Creative Suite produts run on Windows systems.  I didn't realize the market share was that high for Windows and CS.  So if Macs are soooooo much better at handling media, why is only "around half" of the CS products sold to Macs?  Truth is, dollar for dollar, you get more performance out of Windows systems than you do Macs.

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.

Except the definition where Flash is an open standard, and you can search for "flash editing software" and find dozens upon dozens of programs you can use to create and edit Flash files, and which run on Mac, Windows or Linux OS.  Yes, CS5, Adobe's commercial product, is proprietary, just as Apple's iLife isn't open source, but by nearly any definition, Flash is an open ecosystem.

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.

Wait, Macs crash? Really?  And wait, Macs have a security issue due to Flash?  Hmm.  No argument on the instability or security aspects of Flash–these same Flash-derived issues plague Windows systems, too, but Apple has kind of built a business saying their systems don't crash and don't have security issues.  Hand over fist the majority of Windows crashes (one statistic claims 70% of IE crashes) are caused by Flash.  When Flash causes a Windows crash, that's Windows fault, but when Flash causes a Mac to crash, that's Adobe's fault?  Maybe Justin Long can explain it.

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.

H.264 might be an industry standard, but it's not an open standard.  To use H.264, you need to license it, just like MP3.  In fact, it's the same group.  Mozilla Firefox, arguably the dominant web browser, refuses to support H.264 because it's not an open standard.  The licensing for H.264 is free until 2016, but no word on what happens after that.  It could be very, very expensive to have a large media library in H.264 format, so sites like YouTube may want to reencode their library.  I'm not speculating here, Google recently open-sourced its own codec
called VP8
(http://newteevee.com/2010/04/12/google-to-open-source-vp8-for-html5-video/). 
Opera and Mozilla support Ogg Theora codec (which is apparentlynot as good as H.264, but is completely open).  Chrome supports both H.264 and Theora.

Secondly, the decoding of H.264 is baked into the chips in mobile devices.  So what happens to your iPhone/iPad/iPod Touch is Google reencodes all of YouTube into its own HTML 5 codec?  You'll need a software decoder, and there go all the arguments for dumping Flash due to battery and performance concerns.

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?

I totally agree!  Can Flash rollovers go the way of animated GIFs?  Alternatively, write a Flash or Silverlight based site for a great experience on a desktop, but use a browser capabilities file to detect a mobile device and serve up a mroe mobile-friendly interface.  Not some lame can't-do-much mobile site, something really good.  It's being done.  But it's probably easier just to skip the Flash and Silverlight and just write a nice, clean CSS-based site.

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.

I see his point, and some incredible work has been done on the iPhone OS.  But good things happen on other platforms, written in other languages and with other tools.  Programs I liked on my old WinMo device, like my password keeper, aren't available on iPhone, and there's no good way to migrate a lot of passwords or contacts.  Having the same program on different platforms is wonderful from a consumer's point of view.  I could simply transfer a new file and go on with the iPhone love.  I currently have a Droid, and I'm going through the password pain right now.

As a developer, I want to reach the widest possible audience with the least amount of work, and that's the attraction of cross-platform development tools.  What really makes it tough is the different implementations of accelerometers, GPSs and touch screens.  We either have to learn every platform's dedicated language, or use tools like MonoTouch, which abstract the OS-specific commands into a generic set, then compiles the code into a platform-specific executable (like MonoTouch was trying to do), or an executable that will run if some additional framework (like .NET or Java) is installed.  

At the current moment, Windows Mobile is a dead platform.  The hardware supporting WinPhone 7 better ROCK, or Microsoft should just get out of the business.  Any disappointment and they'll never recover.  Android is coming on very strong, has an active and excited user base, and so is an attractive development target.  Obviously, the rabid fandom and huge install base of iPhone OS devices is very attractive.  It would be sweet to develop for both Android and iPhone OS using the same language and tools.

As developers, we HATE to wait for our libraries to support new features.  I think that Apple's secrecy goes a long way to slowing the adoption of new features.  There's a way to work with other companies to enable the maximum development effort, and Apple is as much at fault as the thrid party platform providers in adopting support for new features.  Contrast Apple's approach with that of Microsoft, which gave everyone a pimped out laptop at PDC to spur development on Windows 7, or Google, which gives hardware to developers whose sofwtare reaches certain download levels.

In no way shape or form will Apple closing their system slow cool things from happening on the platform.  But it's a little facetious to call out other companies for being closed when they're really not, and you're slowing the access to new developers to the ecosystem.

Agree?  Disagree?  Hate Mail?  Please use the contact form, I'll post the best comments (especially the ones where I'm wrong, I'm open like that).  Public comments are off due to comment spamming scum.