Posted
by
CmdrTaco
on Monday May 10, 2010 @09:20AM
from the why-can't-we-all-just-get-along dept.

GMGruman writes "As the pro- and anti-Flash camps have hardened their positions, the editors at InfoWorld have come up with a four-point peace plan that would allow Flash on the iPhone while addressing Apple's very real concerns over performance, stability, and security. Readers can vote and comment on the peace plan, which InfoWorld hopes will result in serious talks between Apple and Adobe."

Say Apple releases new API's you want to use in your app. Here's what you do as an Xcode coder:

1) Download the new Xcode with new API's2) Modify your code to use new API's3) Recompile4) Submit to store

Here's what you do if you want to use new capabilities from your Flash app:

1) Wait for Adobe to download new XCode2) Wait for Adobe to use new hooks in code and expose them to you in new functions.3) Buy new version of Flash development.4) Modify your code5) Export as iPhone app6) Submit to store

I would rather have to code in Objective-C than wait for and have to buy a new version of Adobe Flash, just to get the capabilities made available by Apple's Xcode.

What if you don't need all of the capabilities of XCode? What if you just quickly need to create an informational app for a local college, which already has a lot of resources and animations in SWF format?

Hopefully a lot of people will continue to code in objective C. But that doesn't mean that everyone is pushing the metal. Sometimes you just need to get something boring and effective done.

I have a hard time imagining someone who has a workflow that includes large amounts of important content that pushes it out in Flash, and can't invest in taking that same content and migrating it to HTML5/CSS3.

It's important to note that the loss of profit may not be from the App store, but from the fact that people will have little reason to buy an iPhone if every app is available on every platform; Apple makes the majority of it's profit off hardware not software.

Even if Apple makes the majority of profit on the hardware the software is still part of the business plan. It might not be very profitable today but several years from now it could be and they want as little threats to it as possible as it grows, and flash is a major threat.

This is exactly why Apple are trying to get a stranglehold on the Apps market right now. They need a hardware exit strategy - for now they have desirable hardware, but elsewhere prices are decreasing, specs are increasing, and beyond that there's going to come a saturation point for these devices. Apple realise this and they're trying to steal a march on the software side of things because they realise it might one day be their primary business. Of course, the fact that it sells iPhones/iPods/iPads in the meantime is a massive bonus, but that's not the end-game.

Sort of like how they've gotten out of the desktop PC business, considering that specs are increasing, prices are dropping and there's a saturation point for those devices.

Except that they aren't a software company, they are a hardware company, as the licensing for OS X shows. There's no reason to believe that this will change in the iPad/iPhone space. These devices are in the infant stage now in their historical lifecyles, as are the wireless networks that support them.

The smartphone market is just beginning and assuming that it's all about faster CPUs and more megapixels in the cameras ignores what they may become in the future from an additional hardware perspective (picoprojection?) and availability of faster networks (4G and beyond). Apple has probably a decade or two left, easy, in the hardware department and plenty of ways to enhance the hardware to keep people coming back.

Plus, my guess is that Apple iPhone users aren't the kind of people shopping on CPU clock/pixels-per-inch/megapixels, so the fact that some HTC phone may have a better camera or faster CPU doesn't matter to them. And a phone, if you use it every day and carry it eveywhere, is kind of a wear item that people need replacing due to broken bits, scratches or other issues associated with carrying something around all the time.

Even if Apple makes the majority of profit on the hardware the software is still part of the business plan. It might not be very profitable today but several years from now it could be and they want as little threats to it as possible as it grows, and flash is a major threat.

It's about both. Apple wants to protect its profits, and having a closed HW/SW ecosystem supports that. I'd be great if SW becomes more profitable, but as long as it creates vendor locking its done its job. If it were easy to migrate from an iPhone to another phone then Apple would not be as easily able to keep its customer base (or get folks to want an iPhone vs a competing phone with the same SW availability); making the iPhone less valuable to carriers and putting downward price pressure; something A

Where's the option for "I support Apple not because I agree with their acceptance policies but because I honestly don't want Adobe's crapware anywhere near my phone!"After all, unlike my desktop where I can easily -remove- Flash or block it with browser plugins, if Flash is on my phone then they better make sure I can remove it!

The Apple/Adobe fight is about money and control. Apple wants to wall people into their garden and Flash is an impedance to that. Apples banking on their customer loyalty (accept that owning an iPhone/iPad == no Flash) and that HTML5 will replace Flash for video.

If this was only about technological/security hurdles it'd be done and done already. Apple and Adobe have the resources to get this working in short order. The issue is money. No amount of standards and compatibility will get past that.

HTML5 poses as much threat to Apple as Flash does. I don't see Apple blocking it, but encouraging it instead. I don't think it's about control only, but about, for once, Apple using its power to bully a good standard into the web, for a change.

Yes but you left out the other side.Adobe wants to keep making money selling Flash Tools. They do not want people to move off of Flash because they have control over Flash so they will always have the best tools for Flash development.Adobe will also keep updating the Flash player so you will need to spend big bucks to buy the latest development tools for Flash.Also Adobe can just kill support for any platform that it wishes at anytime. Even without killing they can lag bringing out an update to the Flash player for that platform like they have done to Linux and the Mac in the past. Not to mention the lack of a Linux Shockwave player.Also Adobe has failed to provide a good workable Mobile Flash solution. Flash-Lite sucks and Flash 10.1 for mobile is still not shipping "Beta==not shipping".So yes it really is all about money and control. The thing is it is about money and control ON BOTH SIDES!

Exactly. It's completely stupid to think Steve Jobs will read such an article and rethink his position on Flash. He doesn't want it. So it won't be happening. Period. I don't understand why all the tech sites are still so busy with this subject. Want Flash on your phone? Don't buy an iPhone. It's really that simple.

Want flash on your phone? Too bad because there isn't a full version of flash for ANY mobile platform, and the version that will finally make it, will only be available to a fraction of the users/devices of a single mobile platform at launch, and there is no timeline for when it will reach any other platforms.

They're attempting to do just that with Android. However, the ship date for Android Flash has slipped a few times already. Personally, I'll believe they can pull it off decently when I see it, and run it on my phone. However, I don't have high hopes for it, mainly because my current phone is a G1.

There's only a flaw in their plan if you assume their plan is to find a resolution to the Flash issue as opposed to, say, getting more eyes on their publication by posting preposterous nonsense that people will read more out of incredulity than interest. And here they are with a/. write up, so I'd say their plan is working pretty well.

It's all about not allowing unapproved apps to play on the iProduct. Everything else is mostly an excuse to hide the blatant fact. If it was truly about stability and performance, then iTunes among others wouldn't suck so bad.

Apple wants total control over the tools used to create applications on their devices. They can't do that with Adobe Flash. Peace is not possible.

Having flash in the locked down iPhone/iPad environment would be akin to having a dynamic programming environment on the iPhone/iPad. It would open up so many vectors for screwing with the security on the devices. I imagine it would be a great vector for hacks as well, especially given how homogenous the iPhone/iPad environment is.

Frankly, HTML5, css, and javascript allow you to do everything flash does. They don't control the tools there. I don't know, as a web developer - I'm all for the death of flash and old browsers. If the iPhone and iPod become pervasive enough to say, make it more valuable to code in HTML5 over flash, then companies with limited budgets will use HTML5. If enough people use HTML5, older standards incompatible browsers will be less useful. Think of all those companies running IE6 for business apps. If Apple had

1) Forget about it, it's their device and they'll do what they want with it, no matter if you like it or not.

2) Learn another language. WTH is wrong with developers these days? It's not that hard to learn another language! Makes me ponder if most the flash developers are actually programmers or just script kiddies.

Finally: I actually hopes flash dies, I hate the tech on my browsers and hate feeling forced to install it on every computer I have. Flash should die and Adobe should turn all their Flash authoring tools into HTML5 authoring tools instead. Heck, that would get them into the iphone too!!!

Flash is a god-awful piece of software, but the issue for many people is that it's the cheapest option to do cross-platform, dynamic applications. While the iPhone is a nice piece of kit, it doesn't have the levels of market penetration that makes it worthwhile developing your application twice, so developers are left with the choice to either drop iPhone OS support (which they'd rather not do because it's a nice marketing coup at the moment) or spending an extra amount developing an iPhone specific version

2)First, Flash is not just "another language". It's a completely different platform, with different concepts and APIs.

Second, it's not about being "difficult" to learn it. It's about being able to develop a single cross-platform application. By taking care of the device-specific quirks and APIs, Flash provides developers a common ground.The alternative is doing a Objective-C port for the iPhone/iPad and a Java port for Android.

The article has one good idea, create a flash standard, which I believe would allow others to write browsers with native flash support. This would be the same thing Adobe did when they let others write applications to display PDF.

This has to be more than just allowing flash movies to play. Adobe would have to allow people to write applications that supports all that is flash. This would clearly get rid of the major worry about Flash, that it is controlled by a single firm that could wipe our it's competitors simply by no longer supporting Flash on their products. Of couse, as Adobe is finding out, it works both ways. Apple is doing it's best to destroy Flash by not supporting it on the mobile products.

Why will Adobe not allow flash players? Well, because then we might get functionality that would be a detriment to major players like google. Users might have in browser control of browser cookies. Users might get the control the do with images, like automatically blocking any flash object below a certain size. Or, heaven forbid, user might get an off switch.

The author misses the real point here: vendor lock-in... Why would people even bother to buy an iPhone if any of the Google offerings allow them the same apps? If there's a really hot app that can only be had on the iPhone, then people will buy iPhones...
Plain and simple.

How do so many people seem to miss the rather glaring issue that Apple has no desire to be a slave to a third party development tool. They've stated as much and it is a very real and serious concern. They offer features to their customers but, if a third party provides developer tools (such as Adobe with Flash) and that third party decides to take their time offering support for those new features or to outright not offer it at all then those features do not make it to the customer. That is a serious concern. In an environment where manufacturers need to provide every advantage possible to stand out from the other offerings on the market, Apple would be hamstringing themselves if they allowed Adobe, rather than themselves, to dictate what features do and do not make it to their customers. Anyone who thinks, even for a second, that this is a trivial part of the equation is not thinking clearly about things.

I'm surprised that InfoWorld completely overlooked this very real and very significant concern. Ah, who'm I kidding?... I'm not surprised at all... sigh...

Apple would in no way be a slave to a third party. If Adobe lags on implementing new features, it is the developers who are out of luck. They would always have the option to rewrite their app in Objective C -- exactly as they do today.

There are several good reasons not to allow Flash, but this is not one of them.

Of course, if that were the real reason behind the no Flash rule, it'd apply equally to OSX. The fact that they're happy to let Adobe dictate these things on their desktop and not on their mobile platform would suggest alternative reasons.

"performance, stability, and security" is a factor no matter what. You can't be against Flash for those reasons but be supportive of HTML5. HTML5 has the very same "performance, stability, and security" issues as flash. HTML5 can kill a battery, kill stability and is only as secure as the person who is using it. (IE, easily socially engineered to be stupid in most cases)

Apple's new terms forbid applications written in any language that is not called C, C++ or Objective-C. For example, I work on the Free Pascal Compiler [freepascal.org] and added iPhone support a couple of years ago (it compiles straight to ARM assembler, no intermediate code or frameworks are involved). Most people that use it write their GUI in Objective-C and reuse Delphi or other existing Pascal code for their backend, just like other people would reuse C or C++ code.

But simply because FPC stands for Free Pascal Compiler rather than for Fast Progressive C, this way of working is no longer allowed. That just does not make any sense to me. Why on earth would the name of the programming language matter in any way? I could understand it if they would limit you to using their tool chain (although I'd still disagree with it), but limiting to a particular set of programming languages?

The fact that I can't even discuss this on the iPhone developer forums without first signing the new developer agreement (and thereby make it illegal for me to continue working on that project) only adds insult to the injury.

The developer agreement does not make it illegal for someone to work on other projects. It doesn't even make it illegal for you to install Pascal apps on your iPhone. It does mean that Apple won't approve Pascal apps on the iPhone, and you won't get them into the app store. But you are being a bit hysterical to think that joining the developer program in any way affects what else you do.

The developer agreement does not make it illegal for someone to work on other projects. It doesn't even make it illegal for you to install Pascal apps on your iPhone. It does mean that Apple won't approve Pascal apps on the iPhone, and you won't get them into the app store. But you are being a bit hysterical to think that joining the developer program in any way affects what else you do.

The new agreement [daringfireball.net] forbids using the SDK to compile programs that are not originally written in any of the approved languages:

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).

(emphasis mine). Of course, Apple cannot check what I do if I don't submit any apps to the AppStore, but I would definitely be in violation with the new SDK agreement if I first agreed to the new terms and then continued compiling and running Pascal programs on my iPod.

I'm sorry to hear that. I use FPC for my 'amusement' coding quite a bit, having been a huge TP fan back in the 80s and early 90s. FPC is some fun stuff.

Incidentally, the whole C++ library name hashing issue (that was my understanding of the issue), that prevented use of things like wxWidgets with FPC appears to have been conquered at some level. Or am I interpreting the Obj-C interface wrong?

Thank you for clearly explaining why this whole Apple's mess is such a bad idea, regardless of how evil Flash is.

Honestly, for a geek forum hell-bent on openness and other such stuff, it's as if the magic keyword "Apple" flips some switch inside the heads of those people. It's like "think of the children" for techies...

Who fscking cares about Flash in particular? At stake here is the freedom of development with the tools of your own choice. And mark my words - if this flies for Apple on iPod/iPad (and so fa

If you're generating arm assembly, can't you just dump that to C file and wrap it using the GCC inline keyword?

Unfortunately, the SDK agreement explicitly says that the code must be originally written in one of the approved languages (C, C++, Objective-C). And yes, technically this means that any use of inline assembler is forbidden (e.g. to optimize part of a 3D engine, even the rest is completely written in C), which does not make any sense whatsoever either.

...is a Flash runtime written in Javascript [github.com], using HTML5 to do the rendering. It runs purely in the web browser. It runs on the iPhone. It's still pretty basic, but looks promising. Running the demos [paulirish.com] in Chromium on Linux doesn't appear to show much difference in speed --- of course, those demos have been carefully chosen to work.

It claims to support SWF1 and a lot of SWF2. Right now I believe we're on SWF9, so there's a long way to go, but it does show that the approach works.

1. Apple allows Flash on the iPhone / iPad, with one caveat - there's a huge fucking OFF switch in the settings. When this is turned off, no Flash code can execute.2. If Adobe doesn't like that, too God damn bad. Get screwed with your pants on.

This way, the *user* gets to decide if Flash has all the problems that Apple claims it does, and if those problems aren't outweiged by the added functionality. If the problems are that bad, then very few people will use it, and Adobe looks like the goat for churn

1) some bunch of technically skilled people with a lot of spare time put together a proposal for a linux based tablet system2) those people ask for funding (for example on http://www.kickstarter.com/ [kickstarter.com]3) slashdot crowd starts donating money4) people start developing the device5) profit!

For a number of reasons, I'm running Red Hat Enterprise 4 on my desktop. Yes, it's not Windows or Mac, so that makes me an outlier. On the other hand, Adobe advertises that Flash is available for "Linux". If I want Flash, I have to dump RHEL 4 and load RHEL 5. One of the reasons I use the Enterprise editions is to *not* have to update my primary system every six months or so -- indeed, I'm waiting for RHEL 6 before I go through the process.

I'm an Arch Linux user, and besides high CPU usage, I don't have any real problems with Flash. No browser crashing, stability problems, etc. On the other hand, I would still prefer to use HTML5 for streaming video, for ideological and other reasons (multiple videos open, or running CPU-intensive applications as well as Flash video tend to really bog things down.)

One of the reasons I use the Enterprise editions is to *not* have to update my primary system every six months or so -- indeed, I'm waiting for RHEL 6 before I go through the process.

'Every six months'? RHEL 5 is three years old. It (and it's derivatives like CetOS 5) has reached the point where we can't even compile our latest code on it without replacing every library we use on the system. And you're running the version before that. Are you really surprised that Adobe isn't supporting your platform?

Sure the crashing is an issue and flash does suck and sure the gesture support thing is a bit of a problem.

But this isn't really about flash. Apple wants applications to be developed for the iPhone, not for the lowest common denominator. If flash (or any technology) is available on all phones then everyone and their brother will release apps using that technology and the phone becomes a commodity. New applications don't use the cool new hardware feature t

I've programmed in a lot of languages. I just learned Flash a few weeks ago because I needed to port an iPhone game to Flash. From a developer's perspective, programming in Flash is like programming with half a language that only has half a run-time library. That wouldn't be so bad if it was fun to program in like some of the more modern scripting languages, but it's not.

Regarding performance, I found that the only way to make Flash code perform well is to write spaghetti code. I had a collision detection routine running really slowly, and when I hacked together a profiler for it (which is not easy because the language has no high-precision timers), I discovered that the function call overhead in Flash is obscenely high. I had to get rid of all getter methods (i.e. make all my read-only member variables public), replace convenience functions like Math.abs() and Math.max() with if-then-else statements, and take my hit test function and copy+paste its contents everywhere I wanted to call it. (I didn't see any macro or inline features, and as much as I hate to copy+paste, the hit really was that bad.)

IMO, if Adobe can't fix the language, they should put a bullet in it. If they won't do either (and they've had years), then I have no problem with other companies attempting to put a bullet in it.

Google and Mozilla have been working with Adobe on a new plugin API to put Flash in a sandbox. The plugin API also auto-updates to the latest version of Flash at all times, to make sure people aren't running around with old versions that have known exploits.

Apple's hardware is getting faster with newer iterations. Assuming Adobe was willing to meet in the middle and work on performance and stability, I don't think this is an overtly complex issue.

Steve is known to hold a grudge a really, really long time based on reports from those around him, and I think he has had Adobe in his sights for a while. Now that he finally has a weapon, the popularity of the iPhone OS, he is going to take every opportunity to wield it against Adobe.

It wasn't too long ago that Adobe used to love the Mac platform, they would release most of their tools on the mac either at the same time as the windows release or often before it. However, a couple of years back things s

Compatibility and open standards are not the real issue here; the real issue is who will own the lucrative ebook market.

There are two competing standards for eBooks -- one owned by Adobe and the other while not owned by Apple it is at least in a version that is the more fully developed. While Steve may not feel the need to own the eBook standard, he sure as hell doesn't want Adobe to own it, either. Flash is but collateral damage in this war. The next killer app - which Steve desperately needs to justi

I don't think anyone will be required to buy a pricy developers license - Apple doesn't require that for any of their development environments now, so I doubt they will require it in the future. So far, on OSX and iPhone/iPad, Apple have made their environments free to use and cheap to release for.

The counterpart to Flash development in the iPhone world is AJAX and HTML5. That's free and you don't need to use the app store. It's called a Rich Internet Application (RIA) or a "web app". The so-called Flash replacement is a Javascript library that makes it easier to write web apps that look like native apps. That will actually help developers who don't want to pay fee or go through the app store. You pay $99 in order to develop native apps for the iPhone - that's different.

Actually, you pay $99 to release native apps for the iPhone. You can sign up and download the dev environment for free. It's not immediately obvious, but I have it sitting here in my downloads folder after a bit of circular link-following on Apple's site.

No it's not. I have the full X-Code package for developing on desktop OSX and iPhone, I downloaded it from the developer's area of Apple's website after registering for free. You only pay if you wish to release software via the App Store for the iPhone/iPad. $99 seems very reasonable to me as a fee for use of the libraries and access to the App store. Many development environments (e.g. Flash) require you to pay up-front whether you release or not.

Surprisingly, you are required to run OSX to run Apple's development environment, just like you are required to run Windows to run Microsoft's development environments. Code can be written for OSX using freely available tools and libraries on the OS of your choice, which will run from the command line or graphically via one of the cross-platform UI libraries. If you want to link against Apple's libraries you will need to use their OS, which I think is true of the Windows APIs too.

Actually, you don't. You can compile Apple's toolchain on any other platform you want. Their fork of GCC is open source (GPL), clang / LLVM is open source (BSDL), and even their linker is open source (APSL). There isn't much in the iPhone part of Apple's open source site, but the toolchain is. If you want to compile it for some other platform and use it for cross development, you can. They don't ship Linux binaries, but then Microsoft doesn't ship a Linux cross-compiler either, and you need to either use WINE to run theirs or use a third-party one.

Because it is the geek version of an 'inconvenient truth". Folks on here love to bash the iPad/iPhone/iPod Touch, comparing it's 'closed' system to a general PC, which is wide open. The argument makes no sense when it is taken for what it is: An appliance.

Apple and Flash Haters in general have very real arguments against the use of flash (for the record, as to performance, if Flash improved in that arena, I wouldn't see an issue from that side of the argument. I could simply make the choice to use or not to use). It is proprietary, it encompasses an framework within itself, and it is out of Apple's control. If Apple were to allow Flash 'apps' on the iPhone, and Flash introduced a security vulnerability across such a large scope of applications (and you know there would eventually be thousands of such apps), Apple would be totally at the mercy of Adobe, who has a terrible track record when it comes to security. In such an instance, it would be Apple who suffered the scorn, not Adobe. Why would any sane person want to put themselves into that situation, when they obviously do not need to? The lack of Flash has arguably not hurt iPhone sales in any significant way.

I also found this statement from TFA a bit ridiculous: "At InfoWorld.com, we believe such lockouts of technology, however well rationalized, could eventually lead to an Internet future of multiple, incompatible platforms that demand multiple proprietary technologies."

The simple fact is, that if a technology is good, and absolutely needed, it will be placed where demanded, or the vendor refusing to will simply shrivel and die. The market ultimately makes this decision for a vendor. Standards group typically end up incorporating technologies when evolving needs require them, although they may take their time, they do eventually get there. These standards don't happen in a vacuum. Prior to HTML5 and no viable alternative to PROPRIETARY Flash, there simply wasn't much of a choice. The market demanded the features that Flash delivered. Even though it is a proprietary technology (like the one the above quote is slamming), it became hugely popular. This in itself I believe was it's biggest downfall. It had no competition within the market, and Adobe became lax with it. They had the 90+ percentile numbers of multitudes of Windows users who were lapping it with nary a choice to the contrary. 64 bit OS's have been around for years, yet we are only now seeing betas of a 64 bit plugin? Smart phones have been around for years, yet we still have no production version of the client. The geek herds should be all up in arms that Flash is so 'last century', yet they are clamoring to get it installed (well at least some are) onto their Droid's, only to complain that it crashes, kills battery life, and generally sucks. Why so surprised?

I'm actually rather shocked that Flash's downfall is so tantalizing close considering it was an almost impossible 'ball' to fumble given the unbelievable good fortune Adobe has had and squandered.

The InfoWorld article misses the point. It is for me the consumer to decide, and I believe the Apple crowd has overwhelmingly already done so, and new the new directions like HTML5's capabilities are a reflection of that (note I'm not saying Apple is responsible for HTML5 or anything of the sort, but their refusal to 'sign on' to Flash due to it's very obvious shortcomings are being answered by new standards to address those concerns).

Thanks for clarifying. I was mistakenly thinking it was a general purpose computer because of the availability of 200,000 general purpose applications for it. After reading your post I realized that it's just a phone, nothing else, nothing more. It's just like my old Panasonic cordless phone on my desk. My bad.

"*Grrr*- look, there's thousands of games available for the Xbox, does that make it a general-purpose computer too?"

Are we talking about the original XBox? FUCK YES IT'S A GENERAL PURPOSE COMPUTER, given it had a goddamned x86 core and ran a modified version of Windows, or even Linux if you felt like doing some hacking. Shit you modify the firmware and you could use the original XBox for TONs of applications.

The new 360? Not so much. The PS3? Most certainly (if it's the old fat version.)

The only reason why it isn't is because it's artificially restricted from running arbitrary code installable by its user. So using that as a supporting argument for the restriction introduces a circular dependency.

Since Microsoft and Apple each own a sizeable amount of each other's stocks, and since Microsoft is a software company who don't really give a fuck what hardware you're running their product on, I can't see the benefit to this. Nay, the best outcome for Microsoft is everyone buying a Mac and installing Windows on it: that way their Apple shares value, AND people are still buying their product directly.

You've kind of answered your own question, though. The reason they might want Flash is that it's already used in so many places that if you have a definite requirement for it, and you want to be able to meet that requirement from your phone, you're not going to be buying an iPhone. Of course, at the moment that consideration doesn't outweigh the positives to Apple in not having Flash on their device, but if enough people complained or even started buying alternative devices, I'm sure they wouldn't be beyond