« Get off the cross, we need the wood | Main | Test »

Excuse me? Why does God need a Starship?

With all the Sturm und Drang and whiny-assed bitching and emo tween "I'LL NEVER TALK TO YOU AGAIN, NOW I'M GOING TO MY ROOM AND LISTENING TO LINKIN' PARK! THEY'RE THE ONLY ONES WHO UNDERSTAND ME! I HATE YOU ALL!" crying going on, a question occured to me:

What's the Delta?

Let me explain for the few uninitiated. Adobe, over the last few months, has made a rather large deal about their Flash cross-compiler for the iPhone. (they can call it whatever the fuck they want, but really, it's a cross-compiler.) It's their attempt to get Flash stuff on the iPhone as "native" applications, and yet another attempt at "build once, runanywhere". Cool right? Solves a problem, right? Then mean old Steve Jobs and Apple go and change the developer agreement to ban it. Well, not specifically Flash, but potentially a whole bunch of thing, like MonoTouch et al:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Ouchies.

Predictably, John Dowdell lets loose with the aforementioned tweet about how if Apple people want to work for an ethical company, Adobe's always hiring, and Lee Brimelow, another evangelist on the Flash team lets loose with a longer screed that's basically a bunch of damned crying and whining. (To their credit, the other people affected by this are acting like grownups, even though they have to be really pissed, and you know something? I really commend them for keeping their shit together. Good on you guys, even though you're getting screwed, you're handling it well.)

Now, first, for the bobblehead twins to act like Adobe is some great bastion of moral superiority shows how either ignorant or short-memoried they are. Adobe is the same company who has:

  1. Mislead and blatantly lied to their Mac customers about why Acrobat's integration with Office:Mac is purest shit, and since Acrobat 5 has had exactly one minor improvement

  2. A member of that team attempted to tell me that the LiveCycle servers were certified on Mac OS X Server. He was really fucking unhappy when I provided a long list of links showing him to be completely full of shit.

  3. Adobe threatened to sue Microsoft if Microsoft provided native PDF generation in Office 2007. For the very short-memoried, here, and here. Evidently, you're allowed to use your own PDF renderer only if Adobe says it's okay. Gee, that sounds a LOT like what Adobe is bitching at Apple about, doesn't it?

  4. Finally, one just for Lee and John. Hey guys, if you're so fucking ethical, how come you don't publish the entire Flash spec, the way you keep saying you do? It couldn't be to push third party players into a ghetto, so yours looks better, could it? No, of course not. I'm sure you just keep 'forgetting' to mention that the ENTIRE spec isn't published. That's it. Simple mistake.

So there, now that we've established that Adobe, like Apple, Microsoft, Google, IBM, and everyone else is a rapacious, unethical $BIGCORP, let's move on, hmm?

The real question here is again, What's the Delta? Or, what are the differences between what you get in the Flash cross-compiler and what you get in the iPhone SDK from Apple, and what kind of delay will Adobe have in adding new features, so as to keep parity with the iPhone SDK.

Disclaimer: I'm being kind of lazy here, I've not bothered to look up what the current differences are, mostly because that shit's still under NDA, and I couldn't talk about them anyway. If anyone who does know and can talk about them authoritatively wants to get ahold of me, I'll be happy to listen. (Yes, I actually will listen. Ask Eric Wilde or Barry Hills, I listen. I won't always agree, but I'll listen.)

Now, a lot of you may be wondering "so what if there's some feature that you can't get from the cross-compiler?" Well, so lotta what. When someone who isn't a geek, (read: the vaaaaast majority of iPhone/iPad customers) downloads and installs an app, they expect, and reasonably so, that it's a real boy. That this application has the same ability to support the same features that every other application can. That's not to say it will support everything. A flashlight application doesn't really need to multitask, but that the developer of that application can add in every appropriate feature that they have access to. Accelerate. Copy & Paste. In-app SMS. Whatever it is. What they are not expecting is that their application will be some kind of limited half-app because the dev used the Flash cross-compiler. They won't care about those limitations. What they'll know is their application sucks, and they'll tell the dev, (maybe) and all their friends, (definitely) that this application is a piece of shit and you shouldn't use it. If they paid for it, they'll be really pissed.

So, that's a real issue. Now, it's not an issue on the Web, because we have different expectations. I don't expect the same features out of a Flash or Web application that i get in a full on Mac OS X or iPhone binary. It's a limited environment, (browser), and some things just aren't going to be there. I'm fine with that, because my expectations are appropriately set. When I buy or download an application to my iPhone, (and i use a lot of IT applications that are not free or $.99 applications. I pay actual money for that shit.), my expectation is that I'm getting a real boy, not a stringless puppet. If the paint flakes off and I start seeing the wood and the joints, I'm going to be pissed off, because even though my expectations were set correctly for the platform, I, literally, did not get what I paid for. I didn't get a real application, I got an almost-real application.

That's a real problem, no matter what guys like Dowdell, Brimelow, or even Shipley say.

Now, again, let me be clear: I do not know what, if any differences exist in the CS5 Flash Cross-Compiler for the iPhone. This is, to be accurate, speculation. Even if I did know, I couldn't talk about them yet. NDA. So, if someone who can speak authoritatively and publicly about the differences, if any, wants to, I'll be happy to chat. But it'll have to be on the record folks.

So, we have one potential problem. One potential delta, or difference, between the Flash cross-compiler and the iPhone SDK. Now for the other problem: what's the delta on new iPhone SDK features. If you're using the iPhone SDK, when Apple ships a new version of the iPhone OS and the SDK, you have access to new feature immediately. In some cases, you may not have to change a lick of code to implement them, in others, you'll have to change your code, but in either case, your delta is zero. New OS and SDK ship, bang, you have access.

With a third-party cross-compiler, there's a delta. You have to wait for Adobe, or whomever, to analyze the new features, as implemented in the released OS and SDK, (using betas for this is a really, really bad idea), figure out how to implement all those new features if they can, then actually implement them. That's assuming they can implement them all at once. I wouldn't make that assumption. The delta is unavoidable, and depending on how hard the implementation is, can go from weeks or months, to years or forever. Some things may never be implemented.

If that happens, then you will forever, for-ever have a series of applications on the application store that will be second-class citizens. They'll be Jimmy-in-the-box, the train with square wheels. They'll be the misfit toys. Who wants that shit, and worse, who wants that shit without clear labeling?

Then again, why would you use an application if there was clear labeling? Why buy from island of misfit toys, when the continent of real toys is right there? So, in many ways, cross-compilers are a lose-lose for both customers and devs. Adobe wouldn't lose, they get to crow about Flash applications on the iPhone, which is all they really care about. If they don't work as well, or they never have some features, why would Adobe give a fuck? They get their PR juice, they get to show how Flash lets you go everywhere.

Meanwhile, Apple, customers, and devs do have a real problem.

This has always been an issue with cross-compilers. Ask the longer-time members of the Mac BU how that VS cross-compiler worked out for Word 6? Ever seen that Java application that worked just like a native application with 100% platform fidelity? No, you have not. Nor shall you ever. Cross-compilers force compromise, and for a platform like the Mac, that's acceptable, expectations are different. I have command-line only applications, Java applications for running network gear, etc. But on the iPhone, if it's not a web application, then it's an app. Period. No conditionals.

Given the cross-compiler problem, I can easily understand Apple's decision. I think it sucks for a lot of people, but I understand it. I think Adobe's reaction, to date, is bullshit, and they better get a fucking adult talking, quickly.

Do I agree with Apple's decision? I don't know yet. But I definitely understand it.

Categories:     Adobe
Posted by John C. Welch at 09:00 | Permalink



Comments

Warning for Notes users: The commenting system uses HTML.
I know this will be scary for some of you, especially Notes fans. However, open standards, rah-rah.
If you want to use less-than or greater-than signs, or other similar characters that HTML reserves,
you'll simply have to learn to do it the HTML way. Luckily, HTML is kind of popular, no matter what
your re-educators have told you, and you can easily find help on the intertubes.
digital.forest Where Internet solutions grow

There, a PayPal Button.

Bing
About the Author
How I do stuff on this site
Family
The Artwork of Melissa Findley
Diane Francis @ the National Post Eric Francis @ the Calgary Sun

BUY MY BOOK! BUY MY BOOK!
Non-DRM eBook PDF:
Get it direct from Peachpit!

Kindle Version:


Dead Tree Version:


Apple Amazon Links
Mac OS X Server 10.6 Snow Leopard

Mac OS X 10.6 Snow Leopard

Mac OS X 10.6 Snow Leopard Family Pack (5-User)

Amazon Book Links
Legacy of Ashes: The History of the CIA

The Donnas: Bitchin'

Wizards at War (The Young Wizards, Book 8)

The Demon's Sermon on the Martial Arts

The Collected Stories of Arthur C. Clarke

JavaScript and Ajax for the Web, Sixth Edition

Awakening Warrior: Revolution in the Ethics of Warfare

FOB Links

Mac Web Writers

Techie Links

Review Victims