The Flash history lesson is cool. However, the idea that Adobe has "admitted defeat on mobile" is just plain wrong.
In spite of the massive hype differential vs. appcelerator and phonegap, Adobe's AIR is one of the best ways to build & deploy cross-platform mobile apps right now. That's flash, that's mobile, and it's a far cry from "admitting defeat".
Flash on the desktop browser is increasingly limited to a small set of niche uses. Flash inside a mobile browser was never a good idea, and it's dying. The decline of those two specific use cases should not be construed as a general death of the flash platform.
Adobe's AIR is one of the best ways to build & deploy cross-platform mobile apps right now
As someone who has built and deployed a cross-platform app on AIR, I must respectfully disagree.
AIR doesn't give you access to a lot of native features of smartphones. As the most glaring oversight, I had to do some deep hacking on AIR's launcher to support in-app billing. Phonegap's extensible plugin approach looks a lot easier.
And the user experience is different, too. After months of work, my first review rolled in: one star, and said simply, "AIR crap." And no wonder. Without so much as the ability to display my own splashscreen beforehand, AIR simply asks the user, "Hi, would you like to do a 16 MB download to support this app that you don't even know what it does yet?" I've had my friends give me funny looks at that prompt. "When I'm done looking at this, I can delete that, right?" one of them asked.
If you do Phonegap -- or heck, even just raw HTML5 -- I'm not sure your users even need to know.
Yikes - sounds very similar to trying to deploy Java desktop apps. Not a pleasant experience. Why don't they just bake the AIR runtime into the original download? Sure it would be bigger and you'd end up with duplicate copies, but almost anything is better than trying to get end users to download runtimes.
Well, 16 MB is a really quite a nasty large size for an app. For reference, one of the low-end phones I target has 180MB of internal memory. (And I don't think I can tell an app -- and certainly not an AIR app -- to install itself on the SD card, though a wizardly user certainly can.) You can get away with 16 MB in a graphics-heavy game, but something that's mostly forms and screens really ought to come in under a megabyte.
Phonegap gets to bundle the platform because their hello world is only 300k. I really don't think AIR could get away with that.
But I agree, the user experience might be better if that was an option.
You can bundle the runtime with your app to avoid this. Also trying to use a feature that exists only on one platform isn't really cross-platform, that said AIR does support Native Extensions to do exactly that. They aren't hard to write, I was involved in the beta program to help write the first ones.
That's good to know. I suppose my experience with AIR was about a year ago--right when they first came out with support for mobile--which is about two decades in phone years. And it sounds like my research wasn't complete.
Nonetheless, between a heavyweight and power-hungry executable, an expensive editor, and a scripting language and library for which the most complimentary term I have is "quirky", I really don't understand how AIR is considered even a serious contender in the space of cross-platform . . . platforms. Let alone the best.
I benchmarked AIR against Tcl/Tk on my desktop by implementing the same app in both - it used something like 80x the memory and 20x the CPU IIRC. It's not even a good GUI toolkit, let alone a good cross-platform one, compared to tech from the 90s.
That's a ridiculously biased comparison - of course tech from the 90s will use less memory and CPU, that was a higher priority in those days. A more relevant question is whether AIR was easier to develop in, or resulted in something that looked better.
Having worked in a few languages I can say without a doubt that MXML is one of the most fun languages I've used in a long time. How many times I've wished that HTML5 too had <HBOX> and <VBOX> implementations. They make your life so much easier (than floating DIVs, etc). The data binding of MXML and Actionscript are also one of the niftiest feature I've come in web development. It is like knockout.js only easier and implemented several years ago.
Even their web services like Adobe LiveCycle have been a breeze to use and were able to accomplish real-time collaboration in multiple Flash project with maybe 100 lines of total code. That's powerful.
Flash, esp. after MXML is an amazing platform for development but it is dismissed a lot by people who have never used it or maybe got biased using a poorly created end-product.
P.S. It's similar to how I used to think that Java was the worst programming language owning to regular "null pointer exceptions" and "slow loading" applets which I now clearly understand are not the fault of the language but the people who used it (esp after seeing awesome projects like Eclipse). Same goes for Flash. There are some super amazing stuff done in Flash, which is ultra fast, ultra robust and beats the pants down of any HTML5 application.
Funny, I walked away from Flash/Flex with the exact opposite impression. Data binding is good in theory but horribly slow in practice - any time something changes it dispatches a gazillion change events to be processed, and debugging problems with bindings can involve going really deep down the rabbit hole...
It's one of those things that seems nifty from a developer convenience point-of-view but results in poor user experience - pretty much every Flex app I've seen that made heavy use of bindings ran horribly slowly.
It's interesting, but a shame the article doesn't go deeper. They looked up a guys LinkedIn page and grabbed a paragraph from a 2 year old article about the other guy.
I'd love to know why Jonathan Gay made the switch to small business in agriculture.
I grew up cutting lawns, doing landscaping with my Dad. Now I'm in a 9 - 5 job, I often dream of simply escaping this programming world, growing something, and applying my IT skills to get the best of both worlds.
It feels like I'm missing the world, by being behind a computer 8 hours a day, 5 days a week. In the end, it all just doesn't seem very fulfilling.
Programming has always been a passion, and a hobby. I always wonder if I've made the mistake of combining it with a career.
I agree completely. I used to get excited when I saw a new framework or language out and would always download it, play with it, etc. Now I just think "another one? I hope I don't have to learn that one day."
Maybe I just need a break to get my enthusiasm back. But it's going to have to be a lot longer than two weeks. It's a shame, because I worked really hard to get into the software industry in the first place.
Flash still has a future in gaming. They now have hardware accelerated 3D and with AIR you can bring your high quality 3D games to the browser, mobile and the desktop.
That said, the Unity Game Engine can do the same thing and will soon support a full featured flash export option, so most people wont develop their games in Flash directly but as a browser gaming deployment option it will be around until WebGL and HTML5 is mature enough.
Won't there always be a dominant plugin? If it's not Flash, isn't there some other optional-yet-ubiquitous installable that gives certain sites an edge over the lowest common denominator of browser tech?
It's time for Flash to die now, however it had a good run. We've had usable video on the web for a decade thanks to it -- and even now, HTML5 still hasn't caught up. Flash did a great job of advancing the web while open standards caught up.
There's more to flash than video. The company I work for uses flash extensively for interactive multi-touch kiosks. Like those big maps in shopping malls.
As a Rails developer I was very opinionated when I came here. But seeing the incredible performance they get using flash while running stunningly complex animations and interactions, I quickly changed my mind. While I still think there's no place for flash as a replacement for websites it's still incredibly powerful for rich interactive multimedia - especially off the web.
As an OS X user, I literally cannot remember a Flash site (other than a video wrapper) that felt completely fluid. You never get 60fps because Flash mostly always insists on doing things on the CPU.
Dunno what things look like on Windows, but I'm hoping WebGL takes off - it really seems to be best positioned to do complex things without sacrificing performance.
I'm not sure it's entirely relevant, but here's something the very-very senior flash dev at work said about that recent Dart port of the Flash API (which he thought was neat).
>> "This little game was developed with Flash and later ported to HTML5 in only 6 hours. The new HTML5 version runs with smooth 60fps, which is almost impossible to achieve with the Flash plugin!"
> This is the kind of sentiment that shits me. Flash is measured by the worst of its developers.
> Flash is capped at 60fps in the browser so as to limit the carnage, but can run at 120+ on the desktop. If the dude can't get his example game running at 60 fps in flash it's because he sucks, not the plugin. /rant
Similarly, be prepared for a slew of super slow "HTML5" apps.
> I'm not sure it's entirely relevant, but here's something the very-very senior flash dev at work said about that recent Dart port of the Flash API (which he thought was neat).
>>> "This little game was developed with Flash and later ported to HTML5 in only 6 hours. The new HTML5 version runs with smooth 60fps, which is almost impossible to achieve
with the Flash plugin!"
>> This is the kind of sentiment that shits me. Flash is measured by the worst of its developers.
>> Flash is capped at 60fps in the browser so as to limit the carnage, but can run at 120+ on the desktop. If the dude can't get his example game running at 60 fps in flash it's because he sucks, not the plugin. /rant
As far as I understand it, the API[0] author highlighted that the HTML5 port was consistently over 60fps (or constantly at 60fps if capped), whereas the Flash version was consistently under 60fps, and not even reaching the limit, hence no 60fps capping could be coming into play.
> Similarly, be prepared for a slew of super slow "HTML5" apps.
Inevitably, bad code will come. Flash on the web had one advantage: it was dead easy to block.
Just wait until the ad industry has caught up on to HTML5 and when they'll produce massively CPU intensive banners and other crap with HTML5. Its for the same reasons the the Flash player CPU utilization was capped in browsers, the same thing will happen for HTML5.
I don't know. I can write an application in flash and it will run on IE, chrome, Firefox, whatever. A lot of companies still use IE. I can also compile that down to run on ios, android, or blackberry (not that I'd want to). I can do all that from basically the same codebase with an ecma script language (as3) that I find much better for large scale projects than html5 (by which people actually mean js)
Flash is dying I guess, but it will be a long time until it actually dies, and that's good by me because html5/js still has a lot of catching up to do.
As an aside, I'm curious how many flash haters out there have actually written flash applications. Its really a good tool for a lot of applications, but the haters never really provide any specifics on what their problem is besides referencing poorly written apps that crash your browser, of which you'll find plenty of those in any language.
> As an aside, I'm curious how many flash haters out there have actually written flash applications.
In my experience, the folks who are most vocally anti-Flash have never written a line of code in their life. I've never seen a reasonable justification for the amount of hate it receives. If anything, Flash deserves high praise for playing such a key role in the evolution of a media rich internet, despite its flaws.
I don't think the haters realize how good it actually is compared to the historical alternatives. It makes me physically ill to think of a universe where RealVideo became the dominant format for streaming media.
I think most of the hate Flash receives is from the people whose browsers it frequently crashed. There was a period of many years where the Flash plugin was very unstable, and it was both normal and expected that opening a flash-heavy page might crash your browser.
Flash is hated cause of ads. Simple. I can't tell you how many times my browser (over the years) crashed due to some Flash ad. Not to mention the extra time it took to load the page.
Is that Flash's fault? No, of course not. Lazy programmer/graphics artist who didn't bother to streamline their code.
Flash lost the PR war. It's done. At least for the masses.
Could you elaborate? What justification would I be ignoring? Closed source runtime? Bad flash programmers? Plugin hate? Anecdotal "flash always breaks my computer" type stuff?
Re: second point, I disagree. Being better than alternatives makes something very good--better than everything else in fact. What you're saying is good is actually some kind of fairy tale perfect that doesn't exist and never will.
I mean, hey, use whatever you want, but have you ever written a flash application? And if so, what are the key problems?
My main complaint about Flash is how it completely breaks the normal web experience.
Want to middle click a link? You can't, it's Flash.
Want to run a spellcheck on that textbox? You can't, it's Flash.
Want to search the text? You can't, it's Flash.
Want to increase the text size (with reflowing)? You can't, it's Flash.
Want to use a screen reader? You can't, it's Flash.
Want to link to a particular page? You can't, it's Flash¹.
(And this is not even talking about more geeky stuff like Greasemonkey, blocking code without blocking text and images, etc)
Sure, there weren't any real alternatives for advanced stuff like animations. But you know what? It would have been better to have no way to do that stuff if it kept all the stuff that could already be done with HTML/CSS in those technologies.
¹ Yes, I know this and probably other issues can be fixed if only developers do such and such. That's irrelevant. I know, you know, and Adobe definitively knows that bad developers are everywhere, and Flash makes it a pain to do basic stuff that comes by default in standard web tech, therefore making sure we would be flooded with broken apps.
My main reason for supporting the removal of Flash is Adobe's lack of support for Flash on non-Windows platforms especially mobile. It took them ages to come up with a decent Mac OS version. And they already dropped further development and support for mobile. Did they ever get their mobile version working 100% correctly?
I think it was clear that Flash was going down years ago, but the fact that they've decided to drop support for the fastest growing computing segment should solidify the fact that everybody needs to move away.
HTML5 is pretty sucky in places but has the backing of several big players, it's open and works well on pretty much all platforms and it's being actively worked on. If Google, Mozilla and Apple give up, we just take the software and move on. Is there a downside to this scenario that I am missing?
Flash solves the problem of cross-platform development really well vs other platforms. You don't have to worry about making conditional statements for
specific operating systems or browsers. I feel the rapid deploying of browsers is just increasing the fragmented world of html + js. There are just way too many different implementations of html to make it enjoyable coding on.
And also, the way flash handles making animations and anti-aliasing almost makes my very non-artistic feel
somewhat versatile when tackling those things.
I feel the rapid deploying of browsers is just increasing the fragmented world of html + js
Not in my experience. I've recently finished writing a fairly large and reasonably complex HTML5 app and getting it to work across standards compliant browsers Chrome/Firefox/Safari has been absolutely painless. In over 6 months of development I have (without exaggeration) spent no more than 8 hours fixing cross browser issues and this includes cutting edge and vendor prefixed stuff.
I think that flash still has its place... it's still way better at doing things like client side image compression/encoding and has very sophisticated binary manipulation capabilities (if you need those).
It really is a technology of the gaps, and the number of gaps that it can exclusively fill is rapidly dwindling.
Please can you direct me to an open source HTML5 (or not) alternative to Flash for video that supports advertisements and DRM? Flash can't (and will not) die until such a thing exists. It isn't time for flash to die until there's something to replace it.
Open source and DRM are fundamentally incompatible—if neutering the DRM is a mere recompile away, what good is it to the sorts of organizations that require DRM?
DRM'd media is encrypted and cannot be "neutered" if you don't have the decryption key. [Well-designed] DRM relies on secret keys, not secret source code.
Here's the problem: either you have the decryption keys and can get to the content, or you don't and can't. If you can watch a movie on your computer, you already have everything you need to pirate the movie.
Which, of course, is true for any cryptography, regardless of the openness of its implementation. It may be harder to keep the keys obscured in open code, but then the keys usually don't stay secret that long anyway.
XOR is the best DRM. Since all DRM is breakable since you need the decryption key to play the content, the purpose should be to trigger the copy-protection-protection stuff in the DMCA, and XOR is the simplest way to do that.
It's actually coming. If you go to about:flags in chrome, there's a flag called "Enable experimental Encrypted Media Extensions on the video elements.".
Your bank account details don't reside in a published, yet controlled space on the internet?
I know you're not trying to flog your effort (monetary savings in this case) on a pay-to-view basis, but why (beyond the impossibility of securing the rights) are people who wish to try and sell their effort to those willing to pay, and attempt to restrict those who are unwilling to pay for their effort, somehow intrinsically wrong?
It will (eventually) if it's not included in browsers/OS by default. It'll essentially be relegated to RealPlayer's market if that's its only differentiating factor, and advertisers won't put out content for a plugin that can't reach audiences.
It'll be a long time yet though, that's certainly true.
Great to see that the original FutureSplash authors are doing well. Flash is a great example of how far software can diverge from its original audience and goals.
Regardless of Flash's future on the web, it is still excellent for animation and Adobe seems to be refocusing back on this market, which is much closer to Adobe's core competency. My most fond memories of Flash are back in the v3 and v4 days (you could barely write loops in Actionscript) but it was so much fun drawing and animating with a tablet and making cartoons. Then MXML and RIA's came along and we all know what happened next.
People who say "Flash is dying!" don't know what Flash can actually do. Flash is active technology. If you think Flash is obsolete and outdated, STOP USING ALL OF THESE IMMEDIATELY.
- Most PC browser games
HTML5 is not ready to handle rich games for many practical reasons. You may not have an interest to games, but browser games have a big market and very lucrative.
- Quite a lot of iOS/Android apps
Using AIR to develop crossplatform applications. Currently HTML5 solutions such as PhoneGap have a major performance issue because of the lack of iOS JIT. AIR compiles ActionScript codes to LLVM and compiled code runs relatively fast (and I think it's a clever and balanced way to develop applications on low perforamnce smartphones. C++ is inefficient to develop, and JavaScript is too slow).
- AAA console games on Xbox360/PS3/PC
Using Scaleform to redner 2D user interfaces. Do you know the title screen, game menues, HUDs and so on are actually SWF? Game artists author them with Adobe Flash CS!
- Streaming video sites
Hulu never exists without Flash DRM streaming.
- Many kiosk terminals
Using Flash for their UIs. Both Flash runtime and the authoring tool (Flash CS) are needed. Indeed HTML5 is coming but HTML5 can only replace runtimes.
Certainly Flash has many problems but it's not so bad technology overall. And it will used for relative long time (I guess 5-10 years or so). Flash has many reasons to be used widely.
And you must admit that HTML5 is improving rapidly because it is trying to overcome plugins like Flash. Flash is a very good stimulation for browser vendors. Because of this, I can say so-called "plug-in free" is not a good idea. Copmpetiton is healthy (WebGL developer also is saying so!).
Actually, there is a great demand for Flash animators to develop recent social games. Currently Japanese major social game company GREE forcuses Unity and AIR and they are saying HTML5 doesn't meet their needs for now. Of course that will change in coming 2 or 3 years though (looks like iOS 6 has some important improvements. Web Audio API, requestAnimationFrame and multitouch bug fix).
By the way, this author Scott Handsaker made this Flash grave picture? Soft of obsessive. I look down on the guys like this. They don't have respect for important technologies.
Sorry for my poor English, but I can't stop saying something for the current situation. Flash is a poor and underestimated technology.
Being a flash game developer from the very first day of my game dev days, it really feels sad to see how flash is being "overcome" by HTML5 and stuff. :( But I'll still be a Flash game developer always :D flash FTW!
Interesting read. Ironicly had they both gone into the field of selling flash expliots then they would of made more money form that than they did from flash. It's a mad World.
Though I can't help but feel they are both grounded people doing what they like and for that there probably happy people.
In spite of the massive hype differential vs. appcelerator and phonegap, Adobe's AIR is one of the best ways to build & deploy cross-platform mobile apps right now. That's flash, that's mobile, and it's a far cry from "admitting defeat".
Flash on the desktop browser is increasingly limited to a small set of niche uses. Flash inside a mobile browser was never a good idea, and it's dying. The decline of those two specific use cases should not be construed as a general death of the flash platform.