Adobe, Apple, and Flash
daringfireball.net
daringfireball.net
As Gruber says, when people say Flash support, they basically mean Youtube. Once Youtube goes native, all the other sites need to rethink their usage because Flash is no longer necessary on phones, tablets etc. and indeed, even for platforms that support it I can see Flash blockers and selective Flash usage becoming popular for battery life reasons alone.
He doesn't say this at all. He says "Flash is the way video is delivered over the web". Video is only delivered by Flash, but that doesn't imply that Flash only delivers video.
Games are a huge source of Flash usage on the web. 75M people played Farmville last month alone. That's not an insignificant audience. Gruber points this out in the article, along with the reason why Apple doesn't care about Flash games.
I don't disagree that smaller sites will probably take the lead of larger sites regarding front-end technology switches. But I believe this follow-after will happen more because HTML5 is the "cool new thing" not because Flash has somehow overnight become obsolete.
On a phone or other slow-ish device, I cannot imagine how it could even hope to run.
Look at the Palm Pre - a very good example of trying to run non-native code all over the place in a mobile device, and the whole thing grinds to a halt. Multi-tasking on the Pre is a bit of a joke because of it - sure you can do it, but not if you wanted some semblance of snappiness in your UI.
if you program a simple particle generator with say a 400x300 display, flash is a TON faster than canvas\javascript.
Can you post numbers by any chance (I'm genuinely interested - in my experience chrome and safari were sometimes several times faster than ff with canvas)?
And a precious few people are capable of creating good Flash content that is optimized and does run fast. Look at this for example:
http://www.rockonflash.com/demos/pv3d/macworld/demo/as3/inde...
1. This is clearly demonstrated when you play a video "natively" through flash on OS X. Watch as the < SD resolution video immediately hogs an entire core of your CPU; in fact the lagging starts almost from the moment the flash object is initialized! Even a trivial operation like clicking fullscreen on a YouTube video locks up the entire host process and beachballs Safari for 5+ seconds as it sits there with it's thumbs stuck up it's arse, causing you to miss whatever was playing at the time.
2. Ok, so now try playing the same video through XP etc on VMWare or Parallels on the same machine. What's this? It's perfectly responsive and uses a small fraction of the CPU power? Apparently it is ≈5x less CPU intensive to emulate and deal with the overhead of virtualising an entire PC, it's CPU and associated operating system than it is to run the same thing natively on the host OS. *Note that due to limitations inherent in virtualisation, there is no access to any kind of video acceleration whatsoever, let alone assisted h.264 decoding. You have a framebuffer and that's about it (and even that highly abstracted, double buffered, composited and managed by Quartz as with every other window on the system)
3. My original MacBook which I still use has no hardware assist (GMA950) - yet QuickTime manages playback of fullscreen or windowed 1920x1080 h264 at around the same CPU usage playing a fucking YouTube video. 4. Flash video on the mac has always been excruciatingly slow, even before h.264. I remember seeing iMac G3 600Mhz's struggling to maintain even 15fps with postage-stamp sized h.261 (which is what YouTube used to use) just 5 odd years ago. A G3 600 is several orders of magnitude more powerful than what is required to playback video of that complexity. A G4 867 can do 640x480 h264. Clearly something is very very rotten in flash, and getting more offensively pungent by the day. Which now brings me to:
What in the everloving FUCK could their code possibly be doing?!?!
I think their programmers have quite clearly gone insane and subscribed to (or invented?) the Rube Goldberg school of software engineering - I don't see any other rational explanation.
I'm quite certain we could have cured cancer while making SETI look like the equivalent of someone with a funnel stuck in their ear and pointed at the sky, what with the aggregate difference in CPU cycles of mac flash vs windows.
Meanwhile, if Adobe can't even manage to lie effectively about the reasons why their own software is so utterly broken, I'm not holding my breath for a resolution. The first step to fixing a problem is admitting you have one, though if you ask them it's all Apple's fault.
To think that people want flash on the iPhone. God almighty, haven't we all suffered enough?
Before flash video hit, the installed-base wasn't that impressive/threatening.
Flash video took off because of the enormous install base, and the ability to control presentation.
This is hilarious.
A google answers query from 2005 puts Flash penetration at 98.2% (http://answers.google.com/answers/threadview/id/561724.html)
The article introducing the groundbreaking sIFR library from 2004 cites the reasoning for using Flash as high penetration (http://www.mikeindustries.com/blog/archive/2004/08/sifr).
Macromedia in the year 2000 puts their penetration rate at ~90% (http://web.archive.org/web/20001109224100/http://www.macrome...)
There is simply no evidence that points to video causing Flash to become a standard plugin.
There's no excuse for Flash to be so bad.
edit: for a better, in-browser example, tried Unity lately? In-browser GPU accelerated 3D graphics. And it's never crashed any of my systems, in any browser. ( personal favorite: http://blurst.com/ )
edit again: hah, check this out. Note the "helloracer.com" link in the top article, and that Unity works on the iPhone. http://drawlogic.com/category/unity3d/
With things like version 9, Adobe were much more upfront. There was a puff blog touting how 9 was much faster on the Mac because they were no longer doing some ludicrously expensive font-checking in the middle of (what should have been) very tight loops.
Which do you buy: Adobe can't make Flash reasonable on the Mac because of mean ol' Apple, or they choose not to because of (understandable, given how Apple treats them on things like Carbon) institutional bias towards Windows and a nasty, hairy codebase?
Granted, it's not "true" h.264 hardware decoding, but it's better than pure-CPU-through-Flash, and as far as I can tell they have yet to take advantage of it, and have been exceptionally late to the game no matter what.
So, in general I say... go away Flash and browse without it enabled. It's very, very rare that I need to access a web site's Flash.
Bloated, gif-based animated ads and/or HTML5 <canvas><audio><video> animated ads would take their place. (With, in many instances, much worse performance).
Flash isn't the issue; CPU-pegging animation, and ads, are the issue. The Medium != the Message.
Users of FlashBlock, ClickToFlash, and platforms that don't support Flash (such as the iPhone) already know what would happen, and they like it.
I make games in Flash and performance is frequently an issue I and others battle against. The point at which Flash performance begins degrading is stupidly early.
Otherwise, it'd be Javascript + <canvas>, which so far is pretty darned fast, but not too friendly to ad-servers. Not Flash-fast, but speedy, and quickly getting faster. If JS+canvas gets more popular, you can bet that JS will get WAY more attention in this area.
Youtube HTML5 - 15-20% CPU
Youtube Flash - 20-25% CPU
.flv in Totem - 2-3% CPU
Clearly, there is optimisation work needed here.
(And there's no move towards parallel execution of in-page dom-touching JavaScript yet - web workers can't do it. Concurrency is such an issue that you can't even pass a function into a web worker in case it has bound variables - it's separate-script-and-message-passing only.)
http://crash-stats.mozilla.com/query/query?product=Firefox...
I think that plugin instability is a big problem overall, probably just as big as the 32/64-bit plugin divide, which itself was a serious blocking problem on 64-bit Linux for a while.
I know there is a 64bit version now, but I got genuinely fed up with them, so I deleted the plugin and use swfdec for youtube and just don't care about the rest. Can't say that I'm bugged much, my browsing experience actually improved.
The main reason I boycott flash is still, that it is by no means sustainable and it inhibits the progress of the web a lot (get the feeling of a hamster in a hamster wheel, solving the same damn problems over and over again). It must simply die.
The last thing I tried was that I installed click-to-flash. I haven't seen one of these crashes since. I thought for sure there was no possible way it could be flash since the mac usually does a pretty decent job of managing hung apps without bringing the whole system down, but for whatever reason it really looks like flash is causing this. I suspect it's some odd problem with my flash installation or configuration.
As to the "flash where flash is useful", hopefully JavaScript + the canvas will eliminate the majority of those cases. There are still some cases where flash is significantly better, but they're pretty rare. Most of the time I highly suspect it's popular because of the nice editing tools, not because the producer(s) wanted to target Flash.
But that always seems to be the way one technology gives way to another, because it improves on various aspects that were lacking in its predecessor.
I think an apt comparison is RealMedia versus RTSP audio streaming. RealMedia had a significant market share (for the time), but the mishandling of the product led to people finding/building/demanding better tech.
It's arguable whether Adobe is mishandling Flash at the same level, but Flash could easily go away in favor of HTML5 and Javascript.
The only thing lacking right now is the tools, and the Flash IDE would not be difficult to improve upon. On top of that, there's already precedent in the Palm Web OS IDE. Make a similar kind of interface for building easily deployable standards-based web applications, and Flash could end up as a bad dream faster than you think.
The only people who would want flash to stick around would be flash based ad providers and flash based games. Movies and other formats are easily dealt with using HTML 5.
I think it would be best if Apple created their own flash implementation, yet Adobe probably wouldn't want them doing that.
I'm confused... If hardware decoding were simply a matter of using the QuickTime APIs, why doesn't Flash just use those?
Even if it were technically possible for Flash (as a plugin) to call out to QuickTime this way (and it may well not be), it is undesirable from Adobe's perspective to depend on code they don't control for something so central.
> MacBook = content creation tool. iTablet = content consumption tool. I doubt we'll see any writer's apps. No terminal app, of course.
http://twitter.com/jmartellaro/status/8041600445
I think that's dead-on.
Market cap of adobe as of writing is 17.82 billion. It's been rumored for a while and might make a lot of sense (or none at all).
Besides, Apple has been a member of MPEG-LA for a long time, and has 1 patent in the h.264 pool: http://www.google.com/patents/about?id=VNKRAAAAEBAJ&dq=7...
Also, has Gruber ever linked to/acknowledged Hacker News before?
"Were Flash Lite to gain momentum, it might make Adobe the Microsoft of mobiles, and Flash Lite the new Windows. That also makes it obvious why Apple wants to choke Flash to death before it falls into position as the new lowest common denominator in proprietary platforms on a new crop of mobile devices...
And you thought the iPhone was just Apple's way of muscling into the mobile business! No, it’s really a proactive battle against a wide swatch of proprietary platforms promising to plague a new wave of mobile devices."
http://www.roughlydrafted.com/RD/RDM.Tech.Q2.07/879DD82D-559...
Now, talking like Theora doesn't exist is evil. However, Apple and its fans don't have much choice: Apple is a licensor of some patents on h.264, and hardware acceleration isn't available for Theora in the Iphone. A world without Theora is in their best interests.
The eventual format will probably be determined by Google (with YouTube). Will they chose a non-encumbered format, or will they choose to support the Iphones ? I don't know.
Even worse: While I'm sure it's possible to create optimized flash-content that is not too taxing on the hardware, I'm not quite sure that the various ad agencies take their time to optimize their output for small devices. Why should they?
So flash-ads would probably really diminish the overall browsing experience - just look at the flash-enabled android phones out there: The moment you hit a page with flash ads on them, they slow down to a crawl.
Would you want to have that experience on your iphone?
After two years of heavy iPhone use, I might (direly) miss background applications or real over-the-air podcast download but I certainly don't miss the flash support. At all.
I'd expect a tablet to be more like a "real" computer than a phone. Where (i)phones would be real computers, too, except they are tied to app stores, which limits their use as real computers.
It sounds like you should probably just tune out anything new from Apple and save yourself the time.
Sadly I'm getting to that point. I love my MacBook Pro and Mac minis, but I left the iPhone for Android, and am expecting the tablet to be another piece of excellent engineering deliberately crippled by Apple's marketroids.
I bought a Mac mini to try to debug the problem, but without dev tools I was at a loss. After sharing my frustration amongst my circle of friends, a guy that did a lot of OSX work decided to take a look with some debugging tools.
From what I recall, he discovered that Flash was making a perfectly valid call to an API method that should have been deprecated. The bug report was filed with both companies and I can only hope that one of them paid attention. The hack to get it to work on OSX/Safari wasn't pretty.
Here is the spec for flash player 10. http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10...
There are a lot of open source flash projects. Here is a nice list I found:
If this is true, is the reason these games are built using Flash just a matter of the quality of tools available to game developers? If there were an open-source equivalent to Adobe's Flash developer tools, who's output was HTML5, would Flash developers switch?
- we give a site a SWF and that's it, they have the game. HTML5+CSS+JS+images+sounds+music+a flash bridge to handle audio, etc is a mess by comparison to "a swf".
- distribution is critical to the business of making Flash games, when you see a game on whateverwebsite.com that begins with the logo and branding of for instance www.armorgames.com, that's because Armor has paid the developer to brand that game with his site. This alone is a massive industry that includes many amongst the most-trafficked sites on the met.
- power and functionality, every generation of the software Flash gets noticeably better. Massive progress every other year, that allows developers to do things like use webcams for player movement, audio and visual sound effects, graphical work, only some of which right now is still years from being viable across the board in HTML5/CSS/JS. New versions also enjoy rapid adoption rates by ocnsumers.
- truly cross platform, even if it sucks a bit on linux or whatever, we as developers don't have to do anything at all to accommodate anyone at all ... we write once and that's it. The fantasty with html/css/js etc standards making this a reality for that platform have historically and currently not worked that well, the most obvious example being video codecs for html5, where you'll now have to sniff the user's browser and serve them alternate content.
http://www.zeldman.com/2010/02/01/flash-ipad-standards/
In particular:
"Developers who supplement Flash with HTML5 may soon tire of Flash - but Adobe has a brief but golden opportunity to create the tools with which rich HTML5 content is created. Let’s see if they figure that out."
You wont find any platform that is so well equipped for rich experiences as the Flash Platform. HTML5 is no where near that.
A lot of developers hate flash, but the rest of the world loves it.
For IE compatibility, experiment with Raphael: http://raphaeljs.com/
Also is it possible to streaming the animations in SVG?
Currently the HTML5 canvas is just, well, a plain canvas.
1. Write new authoring tool that outputs numerous fors and setTimouts
2. ...
3. Profit!
I have really been impressed with how well Windows does 64-bit. The 32-bit layer just works.
Also, Apple is always a pain about anything GPU related. Usually you have to buy through them at an absurd premium, then you are usually dealing with an older opengl version. They are not the platform to use if you are interested in having decent graphics acceleration.
Sometimes. First of all its a bummer Apple only sells Intel. AMD makes quality chips. 64-bit means better performance sometimes. Usually you take a hit because of larger pointers. LLVM can do pointer compression, it'd be interesting to know if Apple uses it widely. 64-bit really is awesome when you want to use lots of memory. Otherwise 32-bit is perfectly fine.
I've been a 64-bit enthusiast for quite sometime and I can pull up plenty of Gentoo posts from back in the day advocating the wonder of registers. Not all algorithms magically improve in performance when they are available unfortunately.
Also, no mention of my GPU argument? I'm sure you won't say there is more performance to be had there.
Apple has pulled it off beautifully: one version of the whole OS, Universal Binaries for everything, uses whatever kernel is most appropriate because it can run 64-bit processes on a 32-bit kernel, everything just works.
You hate there being a whole separate version of the OS, far out. I think the needing universal binaries is a little silly. The fact is Windows biggest strength is its gigantic amount of software available for it and it doesn't require rebuilds all the time. Stability can be a good thing.
I find Apple constantly releasing upgrades a little ridiculous. It's nice to know my PC will be able to run just about anything without need to spend $100 every 2 years.
Snow Leopard didn't cost anywhere near $100. I paid about $30 for it.