This weekend I was at FITC Edmonton, where I presented my Programming Art session for the last time. I’ll be working on something new for next year. It was a fun conference. Very relaxed, and for the first time ever, I actually attended every single session in the entire conference.
In addition to my own session, I was part of a discussion panel entitled “Staying Lithe in a Changing Rich Media Climate” along with Skye Boyes, Mike Chambers, Grant Skinner, and moderated by Owen Brierley. The description of the panel was:
BIFF, POW, BAM! “Holy Shifting Platforms, Batman!” Just when we thought the ubiquity of the Flash Player was strong enough to keep the evil chaos of various mobile at bay, on the eve of the launch of one compiler to rule them all, Flash developers everywhere get a punch in nose that shocked a lot of us. Much has been said about this. Now it is time to look forward. This panel will discuss the strategies we all need to keep our heads above the rising tide of increased challenges and varieties of platform choices. How does Flash fit into your future? How can we learn from Sitespring? Central?
It was rather fun to air a lot of the feelings we had about all the recent controversy over Flash, HTML5, iOS, Android, etc. But one thing Mike Chambers said blew my mind to some degree. It really changed the way I see Flash. Up until now, if you had asked me what Flash (on the web) is, I would probably come up with some kind of canned statement like, “Flash is a browser plugin that allows you to do vector graphics, animation, sound, and video. It’s very useful for creating online experiences, games, and Rich Internet Applications.”
But Mike gave a definition something like (probably paraphrased), “Flash is what drives innovation on the web,” and went on to explain that more. What I got out of it is as follows. This expands a bit on what Mike said probably, so I may be going beyond what he meant by it, but I think I got the spirit of what he meant.
The browser has certain native capabilities. These are ideally based on standards and don’t change radically over short periods of time. HTML, CSS, JavaScript, etc. evolve slowly. HTML5 won’t be fully ratified for another 11 or 12 years. This is a good thing. It gives a solid foundation and prevents complete browser chaos and anarchy. But it doesn’t really foster innovation. That’s where Flash comes in. Flash has an 18 month release cycle. It can try things out. Not all of those things work. If they don’t, it can fix them or even get rid of them in the next release. It can change and evolve rapidly, and innovate a hundred times faster than something like HTML.
Eventually though, the native browser capabilities will catch up to the capabilities that Flash has established. HTML5 may eventually be able to do many of the things which, up to now, were best done in Flash. Vector graphics, animation, video. And that is fine. That, too, is a good thing. It is expected – not something to freak out about or get defensive about. Flash has gone out into the wilderness and blazed a trail. HTML can come along a few years later and build the cities. If Flash stays where it is, sure, it’s going to be crowded out and its users are going to feel defensive and argumentative.
Flash’s job now is to be back out in the wilderness blazing more trails. As Mike also said (again paraphrased), “Flash will either keep innovating or it won’t. If it does, it will be fine. If not, it will die. We think it will continue to innovate.” Thus, what Flash is 10 years from now may be so different than what it is now that you may not recognize it. But think of it – if someone who was using Flash 4 back in 1999 fell into a coma and woke up in 2009 to see people creating Flex apps using MXML and AS3 classes in Eclipse, would they recognize it as Flash? I don’t think so. So I can’t imagine what Flash might look like or be used for in 2020.
Great article, Mike. Really helps put a new perspective on the Flash/HTML5 wars.
Sorry Keith, just realized I called you Mike. WOOPS! Must have been your Mike Chambers reference.
At the risk of igniting what is an increasingly tired debate, I’d nonetheless like to address this portion of your post:
“HTML5 may eventually be able to do many of the things which, up to now, were best done in Flash. Vector graphics, animation, video. And that is fine. That, too, is a good thing. It is expected – not something to freak out about or get defensive about.”
I wouldn’t say I’m freaking out about this but I think people are rushing to embrace HTML5/Javascript without considering the consequences. Some valid critiques of Flash (implementation) excoriate it as an annoyance and we know many people use tools to block it completely. And sure enough, when obnoxious banner ads are made with Javascript you will be able to disable scripting and turn those off. The difference, as I see it, is that with so much functionality increasingly tied to scripting we risk hobbling an entire site when we go after the annoying content.
Years of Flash development have taught thoughtful developers to limit its use to appropriate scenarios and to avoid building sites entirely in Flash unless absolutely necessary. We seem poised to learn those lessons all over again with Javascript and I fear the problem will be far more intractable given the more seamless marriage of Javascript and the browser.
Yeah, I agree with everything you say. We talked about a lot of those same things in the panel.
This is so true. jquery, ext-js and the like allow you to build webpages and RIAs by just using javascript. The moment javascript will be widely used to produce flash-like ads and/or (useless) animations some people will turn it off.
If you turn off advertising, you will turn off a good chunk of the web, as well as a bad chunk. Being a parent you quickly learn that you can still love something that’s annoying at times. Even my beloved BBC use Flash advertising (for international visitors) to offset the cost of creating good content. So next time someone moans to you about flash ads on every site they visit, remember to ask them if they could do without those sites.
amen and amen
That’s the problem with innovation, no one knows what it is until it’s released 🙂
To be honest I always looked at Flash like that in relation to HTML.
HTML is is web standard. And any standard is a base line for stuff it covers. Things that fall short should not be let in areas where that standard is a minimum. And HTML standard probably describes not a minimum but average desired level of functionality of the web front ends. Sadly not a minimum but average as browsers still fall short by not meeting it completely or interpreting some parts of it in their own way.
But that’s it. Nothing experimental or with tint of doubt of “is it needed” is added there. And standards should not be a playing and experimentation fields where things are tested. That should happen somewhere else and plugins is one of those things that is in HTML standard that allows extending functionality of the web beyond this average standard borders. And Flash is one of those who dwells in this pond. But there are others be it Unity, Silverlight or other less known things.
But also plugins are not only ones. Google with Google Gears and Firefox with its extensions infrastructure along with many other custom browsers or layers built over browsers also provide a space where experimentation, exploration and innovation happens.
So HTML is like town with its police, medics and optimized transportation while there is large wilderness of possibilities beyond that town and that’s where plugins and browsers/browser extensions hunt for new possibilities that if proven worthy with time will end up a part of HTML future standards.
For me to be honest this is a pretty ordinary picture of any innovation where there is solidified useful core and some controlled chaos of unproven stuff nearby.
Little addition, I was little bit too harsh on HTML. HTML along with other web standards still provide lot of room for innovation within the standard that is not standardized even though it probably should be with time.
I think best example currently is social movement of trying to build a social layer/web above the information web. And here Facebook is leading the charge right now. But there are many other sites in same space that rushing to conquered that new layer that starts to become as important as underlying information layer. And everyone does whatever they want with their APIs and other specifics. And that’s a chaotic hell… Hell that should be fought with standards. And there are movements towards them for various reasons be it OAuth or OpenSocial and who knows may be future HTML standards will be including innovations and proven stuff from those things too to make web more efficient and less chaotic in social layer.
It would be nice if Flash “innovated” some better performance and reliability. It’s not like it’s impossible. Look at SquirrelFox Extreme or V8 or Hotspot. One of the reasons I (and others) use plugins/extensions to block flash content is because it chugs CPU time. Video decoding is particularly inefficient compared to platform native technology like Quicktime on the Mac. I remember working on a project where doing some simple programmatic animation and color shifting on Flash Player 10 would throttle the CPU on a modern system.
And how about fostering innovation by opening up the platform a little more, say, perhaps by open-sourcing Flash Player?
everything is amazing and nobody’s happy.
I wish Flash was faster too but HTML5 is not a panacea for those problems. I did not see that it is faster. You will just get as slow banners and sites but on HTML5 when it will take those roles from Flash.
Java is open, Apple was supporting native version for Mac. Did it help? I honestly don’t know. Hope it was better completable to standard then HTML browsers are.
As for opening Flash Player completely. It’s probably harder or at least as easy as opening iOS completely. There are technologies there that Adobe licenses and not owns which can not be open in same way iOS probably can’t . But I am not very well informed here just heard things and did not dig much.
Then even if you speak about HTML5… It is standard so to say, Flash too has open standards about bytecode, SWF format and all and there are some third party experimental Flash players out there. HTML is the same. Standard is open but it does not say anything about openness of “HTML players”. Though here at least partially open browsers slowly wining mostly because of WebKit.
So why doesn’t Adobe open source the parts of Flash Player it owns and provide binaries for the parts it doesn’t own? Sun did the same thing when it created OpenJDK. I’m still baffled as to why Adobe doesn’t open source Flash Player. It seems like a no-brainer. It’s not like they’re selling it anyway.
Another thought on innovation. Simple, stable abstractions can provide a fertile foundation for innovation. Consider the Cappuccino framework for Web applications. It’s an innovation for creating Web apps but requires no more than the HTML and JavaScript that’s supported by today’s browsers. Same goes for another framework in this space, namely Sproutcore.
They actually did once with Flash 9 here
http://en.wikipedia.org/wiki/Tamarin_%28JavaScript_engine%29
Not sure why they don’t do it with new releases… I think if Adobe succeed at opening player more and harnessing community input about security, performance and features everyone would have won. Hope Adobe will be pushed more in that direction.
On innovation yeah but it still it is framed or even caged innovation in already standardized field without marches outside of it. I do agree that a lot of innovation happens inside standardized HTML field(say jQuery that tries to fix standard errors and problems without changing it) but I believe that things with biggest impact come from outside of it. For many things that HTML5 is Flash was for years and we can argue but I do believe that HTML5 based graphics innovations are based on vast experience with same things web had before with Flash. Now that experience gained and we know little bit better what works and what not some of it is included in standard baseline.
Same with Google Gears, some things in HTML5 were pushed in to it from Google Gears to make them native.
Those things are things where HTML is lacking, those are things non standard plugins tried, tested, polished. Now HTML5 can borrow and improve those by making them more native to the web.
In the end what I want web to be is to be inclusive and not exclusive + with more competition. HTML was not competing with Flash, Unity3D and other things and that’s why they gained so much traction. There is need for those things and HTML did not provide them. Now HTML5 wants to do this and that’s good and very promising. But that does not mean that plugins should be removed from standard. Let Flash, Unity3D HTML and others compete pushing each other to get better in a healthy competition.
That tamarin project is sure has no sound these days. Especially when adobe release their FP 10 and 10.1. I wonder if adobe is not completely suppport the project.
—
Video decoding is particularly inefficient compared to platform native technology like Quicktime on the Mac.
—
Here is a video of “stage video” (hardware accelerated video) shown during the MAX sneaks.
http://www.youtube.com/user/AdobeMAXEvent#p/a/u/0/geK7geL3I40
1080p video with vector overlays using 8% CPU on a Mac AIR.
Apple only recently provided the APIs necessary to provide the type of hardware accelerated playback.
mike chambers
mesh@adobe.com
How did the open source mplayer project and Microsoft Silverlight manage to play video so efficiently on a Mac?
They have worked on performance. While they still need to make lots of improvements, they are certainly trying. AS3 brought a world of needed performance improvements, instead of sticking us with AS2 forever. Now, the upcoming GPU acceleration will offload the CPU a lot; etc etc. Video decoding is also being improved. I worked with all the old versions; it was bad. The changes they have made and are making are quite welcome.
Fantastic way to think about flash, hopefully adobe understands this as well 🙂
To put a bit of context on this innovation angle.
Look at the API for the Sound object in HTML5, you have pause() and play(). That’s your Sound API… for the next 10 YEARS.
Want to add filters to an object? You have a “shadow”, and that’s it… for the next 10 years. I’m not joking.
You get very very _base_ level features, and that’s after a solid 3-4 years of growing pains while older versions of IE7-IE8 and Firefox 3 get phased out. And really for what, to do things that Flash could do easily 6 years ago? And the privilage of spending 4x as much doing it?
Canvas right now is near useless in Firefox, and Audio is very buggy in both Chrome and Safari. So even the most recent browsers are not really ready for primetime yet! Effectively the install base for reliable consistent HTML5 browsers is 0%.
Standards are good, but the browser world is the same crap-pile it’s always been. You have 5 companies all implementing a set of specs in their own way, there’s always going to be issues, and it’s always a painful place to develop within.
I think you’ll see that when this buzz for HTML5 dies down, most companies will realize that the bang for the buck is still very very firmly in Flash’s corner. You’ll see HTML5 take it’s appropriate role, with simple interactions, basic audio/video players, maybe the odd game.
Flash will still handle most of the really complex stuff like applications and interactive media sites.
HTML5 is not the end all and be all of Web standards. As far as drawing goes, SVG is a much more powerful and mature spec that many modern web browsers support. Of course, I’m excluding IE < 9, but at least it's catching up with version 9. For an example of browser drawn graphics, see http://protovis.org/.
I was hired about a month ago as an experienced RIA developer to create a next-gen RIA with cutting edge data visualization capabilities. I pretty much ruled out Flex or anything else that runs on Flash Player because it's too slow. There's also nothing comparable in power and speed to protovis for Flash or Java of which I'm aware. I know pre-fuse and flare came before it, but they appear to be more or less moribund. All of the new work (call it innovation, perhaps?) is going into protovis.
BTW, as far as Flash drawing goes, the last time I checked its API was pretty sad, and I'm very familiar with it. It's full of magic, special cases, and bolted-on functionality. I mean, just compared to Java2D it's woefully disorganized and underpowered. It could really use an overhaul. Can we draw dashed lines in AS3 now?
I’ve been drawing dashed lines for awhile; in AS2, let alone AS3. Even so, the drawing API has vastly improved. While it’s certainly not perfect (and I’m quite familiar with it’s flaws) it is fairly powerful when you know how to use it to the full; given the environment.
“Fairly powerful” is a matter of perspective, but I’d take the power of SVG over Flash any day. Cheers.
So is “pretty sad” and “full of magic”. Generally APIs are more powerful in the hands of a developer who has demystified the tool. But, each person certainly deserves the right to their own choice, for their own purposes.
My day to day work involves heavy graphics oriented programming; SVG has hardly the fraction of power or functionality to accomplish what I need, vs Flash. I’d be heavily surprised to see someone implement the same extensive rendering abilities in it that I have in AS3 at the same performance; even excluding the upcoming GPU accelerated features. If it could, we wouldn’t even bother with a plugin.
Even canvas seems faster at times, though still not as fast as Flash: http://www.eleqtriq.com/2010/02/canvas-svg-flash/
Michael, protovis seems nice, but since you also comment on CPU usage in Flash Player in another comment, I couldn’t help noticing that the animated example at http://vis.stanford.edu/protovis/ex/force.html also is pretty hard on the CPU, about as much as a corresponding Flash implementation would be, I believe, maybe more.
You also mention V8 in that other comment, that’s the JavaScript engine i Chrome, right? The site http://thewildernessdowntown.com is built for Chrome, rendered by WebKit and with JavaScript run i V8, I presume, and that also uses up as much or more CPU as a similar thing in Flash would do, as I experience it.
As we now see more and more examples of animated content on the web using other technologies than Flash, I think it will show that it is the stuff that Flash has been used for that is hard on that CPU, not Flash as such. Adobe gets a lot of criticism for the Flash Player being a “CPU hog”, but as thewildernessdowntown.com shows, doing the same kind of things in WebKit and V8, two pieces of technology that is often hailed as marvels of engineering, can hog the CPU as much.
> For an example of browser drawn graphics, see http://protovis.org/.
Open the first example, called ‘Force-Directed Layouts’, and please simply watch your CPU monitor.
You’re right, that example is pretty heavy on the CPU and it uses JavaScript and SVG. It still runs pretty smoothly on my machine. What about Flash? Give this a shot. Go to
http://www.allman.ms/protovis_tests/src/force_directed_layout/force-svg.html
and then go to
http://www.allman.ms/protovis_tests/src/force_directed_layout/force-flash.html
I strongly suggest you use Chrome. If you wait long enough, you will see something in the latter link. It took about 10-15 seconds before I saw anything.
Of course, the flash example is emulating SVG, but the rendering is done with its drawing engine and the simulation is computed in JavaScript. I doubt anyone will take the time to do a more apples-to-apples comparison, but if they did it would probably be fairer to compare a flare implementation to protovis, since protovis is basically the JS successor to flare.
Cheers.
You are right that true apples-to-apples comparisons are hard to make and rare (your links surely are not a good comparison). Here’s one that does a decent job:
http://peternitsch.net/demo/battery_test/gasket_html5.html
Hi Keith,
Nice post, but I am not very suprised about this perspective. Three years ago I read the great book “Information Rules” from Hal Varian ( http://www.inforules.com/ ) It is a economic book and describes very good the dilemma between the standards and company driven innovation. That book really helps me to understand the current circumstances better. I quite relaxed about the development of Flash. The standard approach have an inherent problem. Many people and companies are included in the discussion about a new version of a standard. It is really difficult to find a solution, which everyone can live with! That decision process needs time!!! A company driven approach (like Flash) has not this problem of finding a solution everyone can live with. The can just do it. That is the reason why Adobe can develop new things faster than the standard-based world ever can. It has to do with human communication. That is also the reason why this HTML5 against Flash war makes absolutely no sense!
The book is also very interesting to understand openness of a technical system. Especially, for this whole Apple thing. They close and control their system so strong, because that is the only effective and easy way to keep the system very stable. That is the reason why they have less user experience problems than windows. Windows is much more open-minded for other manufacturer. But that also increase this possibility that an error appears… It is more difficult to keep a system stable with more different entities.
Just my thoughts to this topic
@LSaridina:
Well as far as I know whole story kind of different. There were ECMA4 which is standard under which AS3 falls which also should have been next JavaScript iteration. During that time Adobe donated it to Mozilla. And then ECMA4 future of JavaScript was killed and that donation become mostly useless for Mozilla.
For me it seems it had more value in writing custom Flash AS3 compilers and compilers and probably partially alternatively players.
In the end I guess Adobe wanted it to become something like WebKit for future JavaScript but it did not play well. In the and those are big companies and they go open source only when they see it helping heir agenda be it Google, Microsoft, Apple or Adobe. Sadly often they don’t see how open sourcing could help them.
Also I wonder what development hurdles and licensed technologies leaks potential are there for Adobe to try to move towards WebKit like Flash development. May be those costs sadly overweight the benefits for Adobe. Though may be as WebGL/Unity 3D pushed Adobe to go for Molehill 3D for Flash may be pressure from web, HTML and other stuff would push them this direction too with time.
What Mike said just blew my pants away! I never saw it from that perspective.
Interesting thoughts, as usual.
I would add that within 3-5 years (if not sooner) the Flash publish settings -> formats tab is very likely to include a little “HTML5” checkbox.
Nice post Keith. Thanks for sharing. Chambers is one smart dude, that’s for sure! 🙂
what flash is doing , you could do it with java applets years ago.
So why applets weren’t that popular ? because flash was very easy to deploy , you didnt need to know nothing about classes , interfaces , and its event model was very simple to add interactivity.
To be fair , silverlight is in theory easier to manage than flash. But silverlight had no real tool for artists, and was marketed badly. But WPF is still here and strong.
HTML5 will be able to do most of what flash can do , no doubt about it.
But ! the problem with HTML5 is javascript and how javascript works. You just cant do a complexe RIA in javascript , you need to use Haxe or other solutions that compile in javascript.
Flash could give the same opportunities ( Haxe is ecmascript 4 , so i dont see why you could not export a subset of ActionScript to Javascript…).
So will HTML5 kills Flash ? If flash tries to go forward , to push the webforward , to do what HMTL5 cant do , the answer is No.
Flash succeeded because it was easy and futurist. So it needs to go on that path. It’s important it integrates well with devices and handsets too.
Camus, I agree with a lot of what you say, but a few things I have to comment on.
1. “HTML5 will be able to do most of what flash can do , no doubt about it.” I would say HTML5 will eventually be able to do most of what Flash could do a few years ago. There are already plenty of features in Flash that HTML5, even when it is complete, will not have. Furthermore, HTML5 will not be complete and ratified until 2022. This is NOT to say that it will not have all or most of its proposed features long before then. Many browsers already implement most of the features. But the point is that any NEW features beyond the HTML5 spec will not appear until after that. Even if we say that HTML5 will be everything Flash can do today, that’s all you get for the next 12 years. That’s the whole point of the post – Flash will hopefully continue to innovate over the next decade.
2. “You just cant do a complexe RIA in javascript , you need to use Haxe or other solutions that compile in javascript.” Plenty of people do complex apps already in HTML. There are plenty of frameworks out there that help you work with it more easily. I’m not saying it’s as easy or pleasant as working in ActionScript, but it can be done and IS done right now.
3. “Flash could give the same opportunities ( Haxe is ecmascript 4 , so i dont see why you could not export a subset of ActionScript to Javascript…).” Check out the MAX sneaks videos. Adobe is already working on a flash to js exporter.
“Plenty of people do complex apps already in HTML. There are plenty of frameworks out there that help you work with it more easily. I’m not saying it’s as easy or pleasant as working in ActionScript, but it can be done and IS done right now.”.
Believe me , even with Jquery you need to use a “compiler”, or your code is unmaintainable … Haxe embeds Jquery and any other native J framework very well. By the way , i use Haxe for my As3 code too !
I have been using Flash for rapid prototyping enterprise software UIs for over 10 years, a technique I invented. I actually discovered Flash as FutureSplash Animator in 1996, before Macromedia, before Adobe. Back then I did a lot of web animation for the studios in Hollywood. In the late 90s, early 00s I designed & built UIs with Flash, HTML, Javascript in many different combinations. I still use Flash in my role as a Sr UX Designer for everything from prototypes to animation to fully functional front ends. Everyone has been saying “Flash is dead” for as long as I can remember, and it never is, as long as there are professionals like me still using it in the field. Although I must admit, I am the only Sr UX Designer I know in Silicon Valley using it as a tool in my daily repertoire. But I do believe that the Flash Player really is the ‘key to the castle’ to the Web, for Adobe.
Mike, and others, have been saying that for a while. At a very high level I think he’s right. But the problem with describing a simple dynamic of plugin innovation/browser standardization is that there hasn’t been a steady state economic equilibrium on the Web. Instead there are have been major strategic shifts with rapid innovation in browsers and a long period of stagnation. Microsoft’s shift of internal resources to Avalon/Longhorn away from IE6 after defeating Netscape was a major change. Now they are shifting significant resources back to IE and we are seeing another major change on the Web.
Letting IE6 stagnate for so long gave Macromedia (and later Adobe) years of runway to grow Flash from a vector engine with scripting into a rich media application platform. But resources at Macromedia were always tight and so execution was difficult. For example AS2 was only syntactic sugar and lasted too long. Also, companies sometimes fall into the trap of trying to leverage their platform too early because they need revenue. Macromedia lost opportunities around FCS and Flash Remoting that way and leveraged the player to provide advantages that 3rd party developers don’t have. (Screen sharing, echo cancellation, etc.) Even though AS3 came late it was a major competitive success as was opening the Flex SDK. But it didn’t last long as significant performance improvements didn’t follow quickly. JavaScript in Chrome is now roughly as fast, if not faster, than AS3 – even when you use AS3’s types. Silverlight’s raw computational performance is, in my quick tests, roughly four times faster without threading than AS3. So while its true that standards take time, its also true that companies like Adobe require ongoing market success to fund innovation and remain aggressively competitive. The drive for revenue (and therefore platform control) can partially isolate a company like Adobe in comparison to relatively more open technologies. On the other hand more open but limited technologies can attract large scale experimentation that results in things like AJAX, libraries like JQuery, and Comet. So small improvements in Web standards may yield surprisingly rich results while deeper capabilities in Flash (3D and P2P for example) may not attract the level of attention they seem to deserve.
The introduction of Silverlight and more recently Microsoft’s shift to HTML5 in IE 9 mean that the Web is going through another dramatic change that will provide serious competitive challenges for Adobe. It seems likely that there will be very large investments by millions of developers and very large corporations in wringing every little bit of value out of HTML5. At the same time Apple’s decision not to really implement HTML’s Object tag has damaged Adobe’s cross-platform story – a key advantage of Flash and driver of platform revenue. So I think this is a dangerous time for Adobe’a Flash platform. Adobe needs increasing revenues to fund innovation on what is now a more complex platform that runs on all sorts of devices. If HTML5 is a truly cross-platform runaway success it may threaten Adobe’s economic ability to sustain Flash as a platform if Adobe loses Flash-related revenue.
So I think the problem with the plugin innovation/browser standardization dynamic is that there is no steady rate of progress on the Web and that innovation and competition is returning to the browser marketplace. At the same time the mobile space is exploding and I don’t think anyone knows what’s going to happen there. Adobe has done a great job with the Open Screen project so far and looks like they are well positioned to innovate on all three screens if they have the resources to execute.
One of the things I keep watching in all this is AS3’s performance relative to JavaScript. It’s probably not a good bellwether for anything, but I think Adobe needs to innovate there. If they can’t pull ahead of JavaScript’s performance in the browser then I think they’ve lost an important competitive advantage for the player. Anyway, as someone who enjoys using Flash/Flex/FMS/ColdFusion I wish them well.
“Flash is what drives innovation on the web,”
Flash is what drove innovation on the web,” It did at one point, but no longer does.
Before it was a leader in that. Now it is one of those who ides that. But it still does.
The thing that is evident here in these comments is people are adamant of working with their own set languages and platforms without taking a look at alternatives and having a proper idea of the true landscape of developments of applications on the web.
This is partly understandable as it is difficult to get fully acquainted with such a range of technologies in such a broad yet detailed enough way to get a true picture.
As people have said, flash is good in that it has low barriers to entry in terms of quick development and being able to use the authoring tool. It also makes animation very easy.
From looking at flex 4 when it came out, i was pleasantly surprised to see a really nice approach to gui design. Previously i had not considered flex, as it seems to be marketed as an internet application framework, but really it’s development style benefits the creation of any type of desktop flash application too.
Then looking at flex for mobile devices it was very refreshing to see how things had been thought through in order to provide a means to easily develop an application for multiple screen sizes. (The only problem here is vector rescaling cannot fully replace appropriately icons – see http://www.firewheeldesign.com/sparkplug/2006/April/icon_design_bitmap_vs_vector.php ).
People have said that the reason flash is maligned by some is its use for annoying banner adverts. While this may be true, if this was the only case i could cope with it.
The far bigger problem is that of reliability and performance within flash. I have found that it really is quite bad. Even from a user’s perspective you can see this – youtube flash video performance is woeful compared to that of native video players.
The hardware accelerated video and new stage video may be a nice gesture but it is sadly of no use to me as adobe (perhaps in conjunction with ati?) have decided they cannot be bothered to support graphics cards older than their hd 4000 series, so me with an x1950 pro is left considerably screwed. I seriously got far better performance when i had an 9600 running native video than i currently do in flash.
Will any flash content be accelerated for me? Or is it just video that will not. The thing is even without this video hardware help for video playback, the speed should not be this bad in the first place, so it almost feels like all this is doing is papering over the cracks.
Then there is from a developer’s perspective. Timers / setInervals in flash are extremely unreliable/inconsistent (if i remember, because it doesn’t factor in the time it took to run the code render the frame) and this has always seemed a bit uneasy for me. i suppose there aren’t many things that it uses for such precision.
There’s then the problem where input events don’t fire off or get received properly, due to a stutter in the player or something. This can be very frustrating in flash games – i’m sure many people have experienced it.
For an example ( http://gskinner.com/talks/as3workshop/ ) see slide 65 and move the mouse quickly from the left edge of the white square to the background or vice versa. Notice that the “last object you were over” caption still says white square instead of black square.
Then there is html5 + javascript. Sadly, i am not really that experienced in this area – certainly not in terms of development.
From what i’ve seen though, performance is not very good either although i am using firefox 3.6 so that can’t help. With the advent of newer browsers things should hopefully improve.
The concerns i have though are again cross browser compatibility is a pain at the best of times.
Also i don’t understand how a large scale application or project can really be made in javascript so that it is not messy and hell to maintain. Perhaps this comes down to my unfamiliarity with it but i am of the impression that javascript (and html5) is therefore best suited for small graphical niceties on a website and mini functions. With libraries like jquery and such being written, hopefully this shall improve but then again performance and maintainability are two big buts. All in all, this is still in it’s infancy in terms of contending for the same usage area as flash.
One thing that hasn’t been mention is that of javafx. Now i know that java doesn’t have a good reputation for some reason, but i feel that this is rather unjustified. Looking at the cpu usage of the demos on the main site, particularly that of the pacman one http://javafx.com/samples/Dukeman/index.html is very lightweight.
This is 1.3 too and to be honest start up time doesn’t seem that bad.
Looking at the roadmap seems encouraging – i guess we’ll just have to see how things unfold this year.
Certainly first impressions from those with an early access of 2.0 see positive http://www.adam-bien.com/roller/abien/entry/java_fx_2_0_the
Even normal old java applet performance is a lot lot better than anything i’ve seen though. Take these games for example http://www.jagex.com/ performance is worlds away better than anything i have seen in flash. (Ace of skies is actually a favourite!). Sure, nice stuff can be done in flash to make it lightweight but it always seems like they’ve had to fight with it. Flixel for example renders all your stuff into a bitmap object rather than having separate bitmap objects on the stage. This just shows you that flash must be so slow or why would they go to all that trouble to avoid using the helpful mechanisms it has put in place.
Basically, what javafx shall be for java is a collection of libraries that you can add to your application to allow the ease and niceties of flash like development, in terms of animation, flexibility and graphical user interfaces. I am hoping that it shall be like adding the niceness of flex and flash to java without a lot of the drawbacks of the flash player (mainly performance and bugginess). There have been signs of a development tool much like flash professional for javafx and hopefully this will be released along with the full release of 2.0 later this year – but maybe i am dreaming. Now i know the flash development tool may not seem that useful for application and game development but it does have its uses there if anything you are making requires frame by frame animation or nested movie clips, or even the ease of creating visually accurate tweened animation.
The reason i haven’t mentioned silverlight is that i haven’t looked at it at all really – however from what i heard microsoft appear to be dropping it in favour of html5 + javascript. Even if they weren’t, i would always be weary of microsoft’s cross platform support intentions for it in the long term anyway if it did get popular.
In summary it is best to not become too attached to a platform that you work on. Instead take a look at the bigger picture. From seeing how development is done within different platforms it can give you a completely new perspective. Before i tried flex 4 i could never dream that there was actually a nice way to create interactive animated interfaces (along with catalyst too, to help with precise animation tweaking).
Flash itself has a really interesting and helpful perspective when it comes to the whole stage and movieclip paradigm.
If all the platforms can look at each other and learn from each other it can only be a good thing.
For me, flash needs to greatly improve its performance, lightweightness and stability, where as javascript and html5 need to mature and improve performance and javafx needs to deliver the start of its “rebirth” this year to prove itself.
I know that java has never been popular with the “designer” internet crowd in the way that html5 and flash have all the hype but i would ask that people actually look into it at least when it is released to give it a chance with an open mind. Certainly it can do no harm. AS3 and java are rather similar in syntax after all.
The reason i am hopeful is that java is built on a solid language. It is trying to add nice ways of development with javafx – having looked at how flash has done this in the past.
On the other hand flash was originally built as an animation tool and for simple interactions. Javascript was mainly for simple browser helper scripts like form validation and rollovers not so many years ago. Yet over the years more and more has been added and the underlying core, of flash at least feels a bit of a mess. Sure it’s a hell of a lot better than actionscript 2 days, but i still get the impression all is not well – hence the performance issues, bugginess with simply user input and lack of far reaching hardware support.
For these two technologies, they will have to try and sort out the messiness of each other in order to sort out their performance issues.
For javafx, java itself is already a solid language and javafx itself merely builds on that to provide extra functionality / a means to develop in a more interactive ui / animation friendly manner.
It is a lot easier to build on something rather than try to sort out something that is messy and problematic underneath.
I have hopes for javafx becoming a good platform although i can’t imagine it will become that popular – i just hope that if i am correct on the former that i am then wrong on the latter.
That said, which ever platform is willing to step up to the plate it can only be a good thing. I just hope one of them will though, as at the moment flash really grinds down my computer – even if it is nice to develop with.
Er sorry, i didn’t quite realise how much i’d written.