Apple v Adobe. Who's right?

Feb 03, 2010

There has been a lot of talk lately due the release of the iPad without support for Adobe Flash. Steve Jobs went a step further to call Adobe lazy (http://www.wired.com/epicenter/2010/01/googles-dont-be-evil-mantra-is-bullshit-adobe-is-lazy-apples-steve-jobs/comment-page-4/).

Here's the actual quote:
"They [Adobe] are lazy, Jobs says. They have all this potential to do interesting things but they just refuse to do it. They don’t do anything with the approaches that Apple is taking, like Carbon. Apple does not support Flash because it is so buggy, he says. Whenever a Mac crashes more often than not it’s because of Flash. No one will be using Flash, he says. The world is moving to HTML5."

Now for full disclosure, I'm more of an Adobe based developer who uses Adobe's Flex, Flash and ColdFusion. I have written some Objective C, and I'm actually currently working with Scala. I'm not an Adobe or an Apple fan boy. The great thing about the Internet is we can do some simple research and cut through the company spins and see who's right.

Here's basically the breakdown of the argument so far..

Apple: Flash isn’t good enough.
Adobe: We need Apple’s help.
Apple: Adobe is lazy.

So what does Adobe say they need help in? One of my sources says that they are asking for access to the API structure for the hardware video accelerators that Apple uses (basically the ability to use the GPU for graphics processing). As a developer I did a quick search for those APIs and what Adobe is talking about. Here's what I found..

Mac uses OpenGL
http://developer.apple.com/mac/library/navigation/index.html#section=Frameworks&topic=OpenGL

iPhone and iPad use OpenGL_ES
OpenGL_ES - http://en.wikipedia.org/wiki/OpenGL_ES

Apple does have SDKs for the kernel
http://developer.apple.com/sdk/

Apple also provides Carbon as the API language for the MaxOS systems
http://en.wikipedia.org/wiki/Carbon_(API)

The Kernel itself is XNU and it's under the Apple Public Source License. An I/O Kit is available as well.
http://en.wikipedia.org/wiki/XNU

Apple actually provides a lot of resources for developers, but there is a catch. They are directing development into their Objective-C language. This is a very real problem for Adobe.

Can Adobe just port what they have into Objective-C or use Carbon. Unfortunately no, the Flash Player is written in C++ and going from C++ to Objective-C is not very practical.  Objective-C is just another superset of C. It simply adds some OOP logic and a messaging and some of the syntax is similar to Smalltalk. You can compile any C program into Objective-C but that's not currently possible to do with a C++ program. So Adobe would be left to develop two separate 'cores' for the Flash Player, one for Apple platforms and another for everyone else. It is interesting that Adobe mentions access to the GPU when that was a recent feature to the way the Flash Player has worked anyway - it use to run everything including graphics  directly off the CPU which was a performance issue.

Another concern is how any of this was a surprise for Adobe. Jobs has been promoting Objective-C since he first left Apple and started up NeXT in the 80s. It's been fairly obvious that Apple is going to push their view on this and 'encourage' people developing software for their platforms to use Objective-C. Adobe has no weight in this decision and probably shouldn't waste its energy trying to fight it.

Apple is forcing developers to go into Objective-C and Carbon to develop for their platforms. I think this is a simple business decision because they feel Objective-C is more flexible than C++. It, however, doesn't make life easy for Adobe. Keep in mind, this will affect other popular Adobe products used on the Mac platform like for example Photoshop.

I can understand why Adobe wouldn't want to use Objective-C and end up supporting two 'cores' of the Flash Player. Adobe wants Apple to help. Apple is basically saying 'no, build your own if you don't want to use the ones we provide'. From this research, I think Apple has a point. If this analysis is wrong, by all means correct me.

[Warning - stepping on my soapbox]

How did Adobe responded to this?

As normal, there wasn't an single organized response. Many in the community gave rather anemic responses like the  iwantflash.com and isflashdead.com websites, but one of the responses from an Adobe employee did completely surprise even me. Adobe evangelist, Lee Brimelow, compiled a montage illustrating his inability to view various sites including a porn site?

http://www.wired.com/gadgetlab/2010/01/adobe-porn-flash/
http://theflashblog.com/?p=1703

Another case of very bad judgement from an Adobe evangelist. To be fair, Lee did apologize, but the point I wish to make is that this has been a fairly consistent problem for Adobe, and it's very hard to take Adobe's side when they can't seem to provide an intelligent response. The leadership of Adobe needs to address this and determine a better method to make their responses. Adobe's PR is like watching a monthly train wreck.

I truly hope the Open Screen Project (http://www.openscreenproject.org/) works out, but there are many challenges for Adobe these days. The Flash Player is far from perfect. Most of us know all too well the problems it has. FP 10.1 should help, but Jobs has a point in that Flash based apps aren't known for their performance. Is HTML 5 going to completely replace Flash? No, but it could take some significant market share. The same holds true for the popular Javascript libraries or the Unity3D engine (http://unity3d.com). To illustrate my point, I used Shockwave years ago, but I can't tell you the last time I opened up Director. Currently, I enjoy using Flex, but I understand that it is very possible I'll be using something else in 10 years. The fact is that technology changes rapidly. Several of the Adobe fan boys have complained that Apple isn't playing fair. My response is simple, they really don't have to. Apple is forcing people into their supported languages and APIs. They simply have the weight to do this. Adobe is the smaller player and has to deal with it. Jobs called the folks at Adobe lazy. My advice to Adobe is very simple - make an intelligent response and prove him wrong!

Comments

Andrew Morton

Andrew Morton wrote on 02/03/10 5:55 PM

"You can compile any C program into Objective-C but that's not currently possible to do with a C++ program."

FYI, it is possible to use, compile and mix C and C++ into an Objective-C based code without using any particular system; Objective-C prefixes its own keyword with '@' so compiler know exactly what it has to do. When Apple invited developer to port complex games/application to the iPhone in two weeks, they were able to do it not because they were very fast at converting C++ to Objective-C, but because no conversion is actually require. Most of the games and their relative engines are written in C++/C and use OpenGLES, you need to use Objective-C only to deal with sensors reading or create native UI widgets (buttons, lists etc) otherwise is not required at all (like in games).

Not sure Adobe has been lazy, certainly they pretend to have access to APIs that are precluded to the rest of the world, owing to their very particular needs.
John Mason

John Mason wrote on 02/04/10 3:58 AM

It is interesting when I did the searching for this the other day on porting from C++ to Objective-C yielded many negative results. But on a follow up search, here is a link that shows you can mix C++ into Objective-C - http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html#//apple_ref/doc/uid/TP30001163-CH10-SW1

Now there are several limitations for this, but given this information - it would seem that there are even fewer reasons that Flash hasn't been made to work with the iPhone or iPad.

It would be nice to get a detailed reason for the hang up from either the Adobe or Apple engineers and without the spin of course.
John Mason

John Mason wrote on 02/04/10 4:29 AM

I need to also make the point that get Flash on the iPhone or iPad it wouldn't necessarily need to work as a plugin within the Safari browser like the way we normally see it on the desktop environment. It may actually be more practical for everyone involved to simply have a place holder for the flash content that when you click on it takes you to a separate Flash Player app that plays the flash content. For example, in many cases when I click on video content, the iPhone jumps me into the YouTube player. Or when I click on an email address, into the Mail program. Why could we not have the same logic for the Flash Player?
Tomislav Pokrajcic

Tomislav Pokrajcic wrote on 02/04/10 7:35 AM

Standalone player makes sense for applications and video, but it's not much of help for web browsing.
John Mason

John Mason wrote on 02/04/10 2:21 PM

It's not a perfect solution, but it would let people run the flash content on the iPhone when needed.

Just a fyi, for those that didn't see it. Kevin Lynch, the CTO for Adobe, posted a blog entry about the debate. It didn't go into the technical issues like I wish it would, but it is finally an offical response.

http://blogs.adobe.com/conversations/2010/02/open_access_to_content_and_app.html
John Mason

John Mason wrote on 02/10/10 2:53 PM

For those following this, Adobe did just apologize to Apple for ignoring a bug in Flash Player for Mac for a year.

http://www.thetechherald.com/article.php/201006/5216/Adobe-apologises-for-ignoring-Mac-glitch-in-Flash
Andy Sandefer

Andy Sandefer wrote on 02/12/10 1:29 PM

Great - we get to watch another decade of fighting between large companies with the same goals. This is why jQuery is becoming so popular for UI development - for the most part, "it just works" and it can become other things "like AIR apps". Steve Jobs is an idiot if he truly believes that HTML 5 will rule the world in his lifetime. Here's their "tentative" time table from the horse's mouth...

"Ian Hickson (yes, Ian Hickson of Google fame), editor of the HTML5 specification, expects the specification to reach the W3C Candidate Recommendation stage during 2012, and W3C Recommendation in the year 2022 or later.[9] However, many parts of the specification are stable and may be implemented in products:"

Great, so we'll have Apple doubling down on something that is "partially ready for prime time" instead of working with anyone else to run RIA frameworks. Do you know who will work with them? Google. Can't wait to buy my G-Pad!
John Gag

John Gag wrote on 02/12/10 2:25 PM

I am so tired of Apple... My Google phone will have Flash soon enough and all my PC products work just fine. If Apple wants to talk about crappy products maybe they should look at iTunes! That virus of a program gets worse with every WEEKLY update that attacks your computer!!! I am a little worked up, time for a friday beer :)
Tony Garcia

Tony Garcia wrote on 02/12/10 3:59 PM

This is sort of off-topic, but I have to say that there was WAY too much made of the use of a porn site on Lee Brimelow's blog post. Lee was pressured by Adobe to apologize for it (and remove the image from the blog post), but I don't think it was necessary. People here in the US are are too sexually-repressed and religiously influenced to see the humor that Lee intended. I'm sure most people in Europe responded the same way I did -- with a chuckle.
John Mason

John Mason wrote on 02/17/10 3:08 PM

A technical post from one of the Adobe engineers about the Flash performance issues on Safari.

http://www.kaourantin.net/2010/02/core-animation.html
John Mason

John Mason wrote on 02/17/10 3:09 PM

A video interview with Adobe CTO Kevin Lynch about the Flash player and mobile devices

http://kara.allthingsd.com/20100217/adobes-cto-kevin-lynch-talks-about-apple-insults-flashs-future-and-more/

Write your comment



(it will not be displayed)