Some of these are really welcome changes for me (native JSON, bezier curves, TLS sockets, DisplayObjectContainer.removeChildren).
And yet...
And yet I'm still planning on switching my web app to HTML5.
This is coming from a guy who's sunk over two years of development into Flash. It's not because the runtime is buggy and/or crashy (it is, but it's not that bad). It's not because it's so much easier to develop in HTML5 (I will dearly miss AS3 and generating art assets in Flash). It's not because HTML5 has more useful features than Flash does (Flash has more, and they're implemented more reliably).
I'm doing it because Flash doesn't run on tablets [1]. And that's what my users want. I don't have the time to develop three native clients for iOS, Android, and Windows 8, so HTML5 it is.
I will miss Flash dearly. I'm praying that between some combination of backbone.js, easel.js, raphael.js, and inkscape, I'll be able to build something as expressive as my old system.
[1] Those new Android ones included. I've used those tablets that "support Flash". It's a nightmare.
Is it really easier to develop in HTML5?? I haven't looked into it lately, but it was a nightmare last time I checked. Compatibility problems, massively different performance across browsers (so you have to go lowest common denominator), every guy and his dog coming with his own layer of abstraction and libraries to make for deficiencies that simply don't exist in AS3...
I'd be interested in looking into it again if you can truly achieve the level of compatibility, penetration and dependability (performance-wise) that you can achieve with flash. Any pointers will be appreciated.
I was originally in your shoes, but after my first real attempt at writing a game in js/html I came to the conclusion it's still a ton easier in flash.
If you are talking about something more static (e.g. a non-game application or a fairly static game like a match-3) it's probably less of an issue.
Yeah, it's easier -- but flash games are rather pointless. Does anyone actually make money selling flash games? You'd be better off learning Cocos2d and developing something that actually makes money, such as an app.
I hear FarmVille makes some money.
And game development for iOS and Android is perfectly viable in flash since AIR 2.6 and specially 2.7. There are a few features that are ok in PC that kill the performance in mobile, but for the most part you can make anything you want with flash for mobile and have good performance. Talking form my own experience.
I agree that the app store has more potential for making big money, but there is also a good chance you'll make very little (http://www.dilbert.com/2011-02-12/).
Of course you don't really need to choose, you can make your game for both flash & mobiles :)
I guess crashing isn't a feature. I'm not trying to be a troll, but let's be honest -- There has never been a version of Flash that hasn't piece a complete piece of garbage when it comes to stability and performance.
If Adobe "got it" this list of "What's new" would include words like "removed" and "deprecated" and "eliminated." Those words don't appear once. They've just thrown more stuff into the kitchen sink that was already overflowing.
They have amazing developers, but there is a reason Flash is the beast it is, and this isn't moving it in the right direction in terms of delivering a stable, secure and fast experience.
I'd disagree. I've come to realize that crashing is usually either the developer's fault (e.g. trying to do something that doesn't make sense) or the browser's (with Firefox I'd get crashes constantly, since their sandboxing actually breaks the plugin more often than it protects from it; with Chrome, using the same version of the plugin, I get none).
Still, if you look at what they've done in the past couple of years you'd see a lot in trying to revert that situation. Forcing a maximum tick rate of 60hz (was 120), dropping memory use and performance (tick rate goes to 2hz when hidden on a separate tab, or out of the screen); coming up with new browser APIs so the browse can control the plugin performance; and on and on.
They do deprecate a lot over the years. However, is "eliminated" something people really want? The platform prides itself in the fact that SWFs that worked for Flash 2 still work today, despite the changes in the language and virtual machine. So unless it's a change of security policy, nothing breaks or is "eliminated"; as a developer, I find this to be a good thing as I don't have to have a client coming to me after 6 months complaining about something not working anymore.
Flash is a platform that allows people to do a lot. Including shitty binaries. And there's not much defense against it.
And personally I still have my browsers crash more because of shitty HTML/JS than Flash. YMMV.
Crashing in a managed environment like Flash is never the developer's fault. These issues are either introduced by the browser vendor or Adobe.
It's worth noting that Adobe is very reluctant to deprecate API's. They've historically preferred (with AVM1/AVM2) bundling new VM's into the player over deprecating features. And any deprecation must be version-specific, and tends to be more for API consistency than anything else.
What really disappoints me is Adobe's reluctance to support really neat Labs projects like Alchemy. Want to run C (or any language which compiles to C, like haskell!) in the browser? It's been possible since Flash 9, way before NaCl. Official support is coming soon but it's a bit too bad it took so long.
Haskell doesn't really compile to C, unfortunately.
The (deprecated) via-c backend of GHC compiled to something that looked like C, but depended on a horrible Perl script to post-process the object output.
It does have an LLVM backend these days, though, maybe that can work?
Agreed. But most of the crashes I see are of the former type (I.e developers fault).
I honestly can't remember ever seeing a Flash crash actually bring down the the browser. Maybe I've been very lucky.
I see that I'm getting down voted for calling 'ED' out on his sweeping statement where he did not define what he meant by a "crash". Note that for many users a "crash" is when what ever App/game/web-page they are running stops with some error and they can't continue. My basic point is that many (most??) of these, in my experience, are down to developer error.
Many developers seem to have an irrational "hate-fest" going against Flash. For sure there's a lot wrong with it but, for me, all to often "its not the tool but the craftsman at fault".
People are definitely referring to Flash taking down the browser (or crashing the plugin in Chrome and Safari, which have plugin sandboxes). Personally, I've seen "Plug-in Failure" several times even though I rarely visit sites that feature Flash. Steve Jobs wrote that "we know first hand that Flash is the number one reason Macs crash."
It isn't irrational. It's quite simply that my laptop fans run loudly when I'm using flash, draining the battery while not using flash doesn't run my fans or drain my battery. It's a pretty simply complaint. Flash is a power and resource hog for very little upside.
For me there are many real world cases which can't be handled without showing the user a fatal error.
E.g. - the developer asks for an runtime created asset that doesn't exist anymore or there's a condition under which a block of code runs forever (actually in this case the flash runtime stops after 15 seconds of activity and allows the user to kill it but it's still a "crash" insofar as the user is concerned.
But Flash often crashes way worse than that; it segfaults, or raises a structured exception. It used to take browser processes with it, before Chrome made it popular to have plugins in their own process.
I suspect Flash's (lack of) stability was one of the reasons for considering this design decision in Chrome.
No doubt this is going to be the most fucked up flash version ever... I can not wait to read about the sploits because the one thing you did not read about is the new 'executable stack protection' mechanisms.
I am just saying the 1980's called and they want their software back...
My experience doesn't match your statements at all. I run a Flash website (it's a game), and Flash is pretty much rock solid for me. My site has been up over 3 years, has over 80k lines of Actionscript, and I can count the number of times I've seen Flash crash on one hand. Even if you include reports from my users who have Flash crash on them, the number is less than 20. That's probably not too far from any software - including browsers themselves.
I'm not a huge Flash fan or anything; I don't care much for Actionscript as a language and I'm constantly looking at switching to HTML5, which I'm sure I'll have to do eventually. But Flash crashes aren't really an issue for me at all. I wonder if your poor experiences in Flash are created by the developer of those specific Flash applications that are crashing.
Personally, I think the Flash 11 features are amazing and, even if Flash may be losing relevance, I think Adobe's going in the right direction with it.
Thats somewhat anedotal for one website / flash game.
My own anecdotal experience from coming across flash sites while browsing for the last 11 years (that I remember) and spending two years developing flash sites, is that it has always been slow and crashes often. And most importantly the stability hasn't seemed to improve over time like everything else on the internet.
Any stats on how many people avoid your site because it's flash? Or perhaps people that avoid your site because flash eats up their power. While you might have a successful site, that doesn't mean it's a good technology. You also can't necessarily tell when someone using your site has a crash.
Flash is the de-facto standard for web-based gaming, so I don't think any significant number of players on a desktop computer avoids it due to it being Flash.
"There has never been a version of Flash that hasn't piece a complete piece of garbage when it comes to stability and performance."
YMMZ. I'm using Chrome right now and I'd say despite playing lots of Flash games and watching players that use Flash, most of the crashes that happen are due to the browser.
Cross compiling would be a horrible idea in my opinion. The end result would be horrific code that ran slowly. The platforms are too different to be ported automatically. There've been attempts in the past, but the cross browser support and performance are usually not that grand.
Adobe is however working on a html5 builder called edge - http://labs.adobe.com/technologies/edge/
Looks pretty good from the face of things, and to be honest I think this is the right direction for them to take.
I'm wondering how would HTML5 video support audio, webcam feeds, and a plethora of other features that Flash has had for years but that are barely on the HTML's radar.
Having a time machine is not the same as "getting it".
That’s a minority of use cases. Flash can stick around as a bridge technology for a few years to cover those. The majority of stuff that’s today done in Flash can easily be done with plain HTML, CSS and Javascript, often not even the newest variety.
Adobe has been working on a variety of HTML5 tools, so we can presume they "get it".
It must cost them a fortune to support Flashplayer (which they give away for nothing). I'm sure they'll drop it the moment there's enough HTML5 penetration on par with Flashplayer's capabilities.
It must cost them a fortune to support Flashplayer (which they give away for nothing)
The cost of supporting the free Flashplayer is paid for by the lock-in that this enables. Afterall, Dreamweaver doesn't have the kind of market dominance that Flash Professional has.
Yes, however, the desired "lock-in" is to the tool, which sells, not the Flashplayer. People are used to developing with Flash Professional and have AS3 codebases, etc. If Adobe successfully targets HTML5 instead of Flashplayer, these people can (and in all likelihood will choose to) continue to use FlashWhatever Professional and even their AS3 codebases.
The player is merely a medium, though by authoring it, Adobe can advance the state of the art more quickly than the browser makers can agree on anything. This does make Flash Professional a more compelling environment.
But let's pretend for a moment that 95% of browsers got feature-coherent on the level of Flash. Why would Adobe care if the player were "all browsers", instead of Flashplayer?
Would they care because if they were targeting all browsers, they'd be effectively targeting a level playing field in terms of the base technology? Would it end up like Dreamweaver, which also targets a common base technology?
I'm going to argue "not necessarily, and in this case, no". And the reason is that anyone today can target Flashplayer. The playing field is already effectively level on Flash. Tons of software outputs SWFs. There are even Flash Professional wannabes, but they're not as good as GIMP is compared to Photoshop, and we know where that thread leads.
Speaking of that, consider Photoshop. It is hugely popular in spite of the fact there is zero infrastructure lock-in. Literally bazillions of programs can view and edit Photoshop-produced files. It's thriving while Dreamweaver, relatively, stagnates.
Dreamweaver's lack of dominance, IMO, is likely related to other factors. (I'm not sure why, but I don't know any professional web developers that use it.)
Iff Adobe could get Flash-quality and quantity on 95% of browsers using HTML/CSS/JS, I'll still bet you a pint they stop work on the player. Chrome 14 just added audio synthesis, so we're getting there!
Adobe's not going to stop working on the Flash Professional-style tools, though, even if it is outputting HTML. People buy Flash Professional for the features it provides both to the designer and for the end result. No one actually cares if there is a plugin in the middle or not.
IMO the big differences between flash/photoshop and dreamweaver is that people look at the output.
Few people stand up and complain about the poor bytecode in SWF or the poor encoding inside PSD files, while _everybody_ used to complain about the code produced by dreamweaver and how much better it was to write HTML/CSS/JS by hand.
Probably once web devs stop looking at the "generated assembly" tools for programming at a higher level will be more successful.
ActionScript 3.0 is what JavaScript should be. Actual classes, typed variables, and a platform that works the same in every browser.
Contrarian view but I see flash improving its lead on html. Adobe doesn’t have to deal with a bureaucratic standards body and can act decisively when making platform changes. Ex: I’d like to see MS, Mozilla, IE, Chrome, Apple, Opera all agree to implement similar features in Flash 11 (and work the same in each browser). Then I’d like to see them agree on new feature sets when Flash 12, 13, 14 come out etc.
I just don’t see how five browser vendors can equal the agility of one flash vendor. Too much red tape in the html congress…
Yes, Flash is proprietary and it doesn’t work well for mobile. All I can say is that I’ve been burned one too many times by IE not showing CSS table borders on empty cells (last time I checked IE8 still requires that damned ampersand in each cell!). I’m fed up with browser incompatibility. All of the JavaScript frameworks (and now with Google making Dart) confirm that JavaScript is inherently outdated and broken. I gave up on html for Flex and am not looking back.
As an HTML/JS developer I really appreciate these powerful features that HTML5 will never have, and wasn't designed to have.
People who say "use HTML5 instead of Flash" obviously have limited experience in actually building HTML web apps and sites.
Ever tried making a javascript pre-loader? Not gonna happen. There's no jquery.bytesLoaded to the rescue. Even before the web-app has loaded, HTML is struggling to stay in the same game as Flash or native apps. Pre-loading sound files and other assets and relaying the bytes loaded to the user as a progress bar just isn't possible in HTML. You might be able to cook up a half-baked progress loader in JS, but it will suck, I promise.
It's obviously true that for SIMPLE things like menus and other interface features, HTML5 is the choice. But when you start getting seriously rich and multimedia heavy, then you need flash or native apps. And I prefer the Flash development and deployment freedom over native app lock-in any day.
Flash should be allowed as an optional plugin on iOS devices, simple as that. Then people who want it can have it, and people who cry about Flash can turn it off and stick with their iTunes account.
Strangely enough I've seen a few preloaders working just fine. Are you aware about <progress> element in HTML5, XMLHttpRequest Level 2, Progress Events?
The most interesting thing about Flash 11 is the Stage3D and how it compares against webgl. It looks like IE10 won't support webgl (at least the version in WDP doesn't), and webgl penetration on the mobile platform hasn't gone very far yet. This will make Flash 11 very attractive to developers who want accelerated 3d content. Although, the very fact webgl exists (and has implementations) means it definitely isn't out of the game.
There are 3 free implementations of WebGL, and I think Opera support is on the way. If there's a WebGL game that you want to play, you can install Opera, Chrome, Safari or Firefox.
As for mobile, neither Apple nor Microsoft will support it. Flash will be around for years, but platform support is on the wane.
By default, Safari does not support WebGL. With Safari 5.1, you need to enable the Develop menu in Safari's preferences and then select Develop > Enable WebGL.
Developers who wanted 3D content on the web have used Unity3D to achieve this. With the release of flash 11, developers who didn't explicitly need 3d web content may decide to throw it in, as they 'get it for free'. This is only considering that flash 11 will have a large penetration rate as people update. For the people who really want 3D content, the ease of development for each platform will probably be a deciding factor (obviously webgl isn't the most viable option for now, but that may change).
I'm very surprised to see native 64bit linux support as one of their first bullets. It may very well be too little too late though. As of late, the only thing that I've used flash for has been to supplement my <audio> tags.
The native JSON / jpeg-xr / LZMA support will certainly make flash feel somewhat more lightweight, but I don't think it'll be enough to make it not feel bulky.
Currently html5 audio is a bit limited, especially when you want to play multiple sounds and on time (html5 audio doesn't have latency guarantees). Of course, the web audio api is designed to fix this, firefox also has their own solution. The fact that this won't work on every browser (like iOS or android), means it isn't much of a solution for now.
Dip into Chrome for a couple games and to skip QuickTime bugs affecting YouTube/Vimeo (QT loads the whole stream, then drops and begins re-downloading if I pause and resume).
Now that the rdio client is Flash-free it’s pretty easy for me to live without Flash.
When I upgraded to lion I decided to not bother installing flash on firefox
The only time I switch is to watch youtube / vimeo or a news video, very occasionally youtube gives me a html5 video which is nice, I dont understand why the rest dont already support html5
For those who want to take melling up on this challenge (and I would encourage it because it's an eye-opening experience to see much your favorite websites depend on Flash, or not), this extension is a nice bridge.
Flash embeds aren't loaded automatically. Instead, a placeholder appears instead. Clicking on that placeholder loads the Flash file, so you can selectively choose which Flash embeds to see.
Chrome has an inbuilt plugin blocker, that does the same as flash blocker. You may need to activate it in about:flags to see the option in the plugin settings. An advantage is that it doesn't depend on javascript, so it is friendly with the javascript blocker in chrome, if you are feeling very paranoid.
going on 8 months without flash on any of my home machines. i prefer it, i find that the content from flash websites tends to be poor quality or unneccesary distractions, my internet is better without it.
So what? I've been Native App-free for months now. I encourage everyone to go without using native apps for a few weeks. Unchain yourselves from Apple's closed, flash-hating club.
Note: "High-efficiency SWF compression support: Developers can now take advantage of LZMA compression for their SWF files. LZMA compression can reduce SWF size by up to 40 percent, enabling users to benefit from richer experiences with shorter download times and reduced bandwidth consumption."
If I understand correctly, they must have used the code developed by Igor Pavlov, the author of 7z, who made it LGPL. LGPL means his code must be in a separate DLL, can anybody confirm that?
This one states the contents of the sdk is in public domain. It seems to apply only to the core lzma compression/decompression code, not to the full 7-zip util (which, I agree, is covered by the GPL).
One would have to check more precisely, but I suppose the Adobe guys did that.
And yet...
And yet I'm still planning on switching my web app to HTML5.
This is coming from a guy who's sunk over two years of development into Flash. It's not because the runtime is buggy and/or crashy (it is, but it's not that bad). It's not because it's so much easier to develop in HTML5 (I will dearly miss AS3 and generating art assets in Flash). It's not because HTML5 has more useful features than Flash does (Flash has more, and they're implemented more reliably).
I'm doing it because Flash doesn't run on tablets [1]. And that's what my users want. I don't have the time to develop three native clients for iOS, Android, and Windows 8, so HTML5 it is.
I will miss Flash dearly. I'm praying that between some combination of backbone.js, easel.js, raphael.js, and inkscape, I'll be able to build something as expressive as my old system.
[1] Those new Android ones included. I've used those tablets that "support Flash". It's a nightmare.