Hacker News new | past | comments | ask | show | jobs | submit login
Flash: 99% Bad (useit.com)
137 points by gorm on Aug 26, 2011 | hide | past | favorite | 103 comments



I do a lot of Flash development. I would love to switch to HTML. I can't wait. I will probably be forced to quite soon in order to support mobile devices.

But.

I'm going to miss so very many things:

1. A decent display architecture. Every display object has its own matrix transform. All of its children exist inside that space. Position your elements exactly how you want them. If you want markup-like UI layout, you can use MXML. Their display system is quite elegant. I will miss it a lot.

2. A complete development environment. Write code in Flash Builder 4. Generate art assets in Flash CS5. Save. It works. It's fast. All you need is two programs (maybe three if you want Photoshop). This is huge for me. The thought of re-rendering all of my art assets as thousands of flat bitmaps makes me shudder.

3. Performance. Yeah, yeah, everyone hates Flash because it destroys your battery, but it can actually pull off some very impressive feats. When I switch to HTML, I will have to prune back some of the cooler features I have, simply for performance reasons.

4. (nearly) Identical performance across browsers and OSes.

5. A decent language for large-scale development. Actionscript3 is actually a really lovely language. I wish I could write HTML apps in AS3. It has real namespaces. It has real classes and real inheritance. It has static typing (but it's flexible enough that you don't feel trapped into endless boilerplate ala Java). It has a sane definition for the 'this' keyword. Javascript is a lovely language, but it's a nightmare to write a nontrivial app with it.

6. Display bling. Want a drop shadow around any shape? Done. In HTML, all you get are square drop shadows. Blur filter? Done. Dynamic masking? Done. Efficient alpha transparency for any object? Done. Obviously, if you go crazy with these you quickly eat up all your processing resources, but if used wisely they are very fast and look lovely.


I also worked for Adobe doing Flex work, and I agree on all of your points. Some of the new techs are still rough (like Spark and Flex themes...) but overall it's very powerful and nothing can compare yet.

This article was also from 11 years ago and other technologies haven't caught up.


I think the point is more that 99% of the time websites shouldn't be doing the things Flash does well.


While I agree with you whole-heartedly, I am starting to suspect that ship has sailed.

The only weapon I feel I currently have in that war is iReader or Readability. I have given some consideration to "mining" .swf objects, but it is not currently a big enough pain point to further pursue that effort.

Oh, I take that back: the "mobile" version of many websites is also nice since they are (usually) more content-oriented and less dancing monkeys. I fear that, too, may change but for the time being it works well.


#1 and #6 are increasingly solvable using CSS and they are, of course, completely possible using SVG or canvas depending on what else you're doing. The libraries need some serious work to be more consistent - after battling font embedding inconsistencies and bugs I really wanted to use CSS.

I liked a couple parts of AS3 but … the toolchain so horribly broken that at this point I wouldn't consider Flash unless Adobe gives me a free upgrade from CS3 to something where the "debugger" doesn't crash frequently and things like breakpoints actually work. I'd tend to think $800+ should get you remotely near feature-comparable with current browser debugger.

Basically this is a long way of saying that point #2 is a huge drawback from my perspective because Flash is integrated but none of the individual components are as good as what competition's producing in the open world and Adobe's been very slow to try fixing years of platform neglect.


I've been playing with SVG in Google Chrome and found some very ugly bugs. So, I realize that the HTML5 is not there despite the hype.

For example I draw an object SVG and when I move it I have trailing bitmaps and flickering.


That is probably the most well articulated defense of flash I've ever read.

But also I think people in general need to understand that there is a difference between building a multimedia application and a website. Its a trade off, if your app is a game or supposed to be some psychedelic experience by all means use flash.

But if building an informational website, throwing in a scrolling banner with flash is probably a misuse.


With respect to your first point: have you had a look at CSS Transforms, specifically the matrix() transform function? You can use Transformie[1] for IE compatibility. Additionally, within a div with position: relative, all child elements can be positioned just like Flash's x,y coordinates. Just apply position: absolute to the child elems and use top: and left: in place of x, y.

[1] http://transformie.com/


Agreed. Going from Flash to Canvas/JS, I miss blending modes the most. Bitmap methods like .paletteMap and .threshold come second.


I understand why people are still up in arms, because it must be annoying (at the very list) to see eleven years pass without fixing this. However, I find it even more annoying that after eleven years people haven't learned that you can't solve the problem by yelling at people "BAD BOY! FLASH BAD!"

I know really well what the allure of Flash is. I tried my hand at developing casual Web games and that's done in Flash. The following are the reasons, in what I believe is the order of importance:

1) Adoption: When it comes to users, everyone and their grandmother has Flash. Even if they don't, getting it and installing it is usually really easy. When it comes to development, you find that casual Web game portals (such as Kongregate, Newgrounds and Armor Games) are Flash-oriented and you even have sites like Flash Game License and Flash Game Art.

2) Ease of Development: I've seen games that were obviously made by people who have a considerable talent for art and so little talent for coding that they should have a court restraint to keep them away from development tools. Guess what? They work anyway and are popular. Yes, you have to learn ActionScript, but that's pretty much all.

3) Good Free Toolchain: You don't really have to shell out 600 dollars for Flash. You can get your stuff done for free, using FlashDevelop and Flex SDK.

Anyway, my point is that it's widespread, it's easy and it gets shit done. For those who think nagging is the solution, for those who rubbed their hands when Apple said it wasn't going to support Flash, here's the crucial question: can you show people an alternative that satisfies their requirements as well or better?

In this case, Adobe is the metaphorical Microsoft: their stuff is out there and they make it easy for people to use it. As the history has proven, the solution is not to call people sheep because they use Flash; the solution is to provide the metaphorical Mac and metaphorical Firefox and metaphorical Ubuntu -- stuff that's so good, that people will switch in droves without looking back.


There are a couple reasons Flash was well ahead of both java and html for many years.

1. Creating Hello World was dead simple. Just like photoshop, it was as easy as selecting the text tool, typing out what you wanted and hitting publish. Instant visual feedback for what you were creating.

2. Flash swf startup is measured in milliseconds, java applet startup is measured in seconds. Sun never seemed to care about "visual java" and they suffered for it.

3. Single vendor control. For years Macromedia and Adobe were giving devs and designers the apis they wanted, rather then being stuck in design-by-commitee hell.

4. Many new devs don't realize this, but even as recently as 2005 there was a significant amount of online geeks that were very anti-javascript. If you wanted to build something interactive, Flash was always your best bet for the first half of the decade.

5. Absolute layout. While html developers were complaining about box models, flash developers were building things to look exactly as they wanted them to.


Re point 1: see http://www.tumultco.com/hype/ for html+js+canvas equivalent (nearly).


4 I still disable js by default. Even still it usually doesn't add much to my browsing experience. It could, but I've rarely met a web designer who actually cared about the user's goals - almost every one of them was intent on using their favorite flashiness with no regard usability.

4.1 Who blocks JS without also blocking Flash?

5 This is what I'm talking about. Flash devs were busy building exactly what they wanted while HTML developers - by virtue of not using absolute layout, etc, were delivering what users could actually use.


To all of those who believe that html5 can replace flash for web games have a look at :

http://armorgames.com/play/12141/kingdom-rush

and some other games on armorgames or kongregate and stop propagating rumors about HTML5 replacing flash for games. The performance of HTML5+JS is not there yet, unless you talk about tic-tac-too games and the like. If flash is going to be replaced by something it would be by unity3d not by HTML5 or might be chrome native client. Adobe would be smart to secure this game thing because ads, video, etc, will probably be less and less. I'd love to see a cheap flash console where indies could publish games and sell games.

That said I'm happy to see flash beeing kicked out of website design, when flash is mixed with html it sucks.


Agreed.

When it's as easy to write your game in HTML5+JS as it is in Flash then people will switch, and not one minute before.


I don't know why it would be considered more difficult to use canvas/dom for rendering + JS. I've been working on a simple JS (well, CoffeeScript really) game, and it hasn't been very difficult at all. But then again, I do lot of JS and never touched flash.


I guess most of the reasons people mention here can be summed up as platform maturity. People might hate Flash, but when it comes to game development, it's a lot more mature than Canvas+JS.

Here's another example of that maturity: on Flash platform, you have three big game engines -- PushButton Engine, FlashPunk and Flixel Perhaps there are more, but these three are pretty damn good. When I google for "javascript game engine", the top two (distinct) results are Crafty and gameQuery. Crafty looks decent, but not quite up to PushButton's level. The second engine, gameQuery is pretty much inferior to all three Flash engines I mentioned: the API is very limited and the performance of the demo is abysmal.

Mind, this isn't a 100% fair review, it's not an in-depth comparison or anything like that. It is, however, the "first glance evaluation" you'll probably get from any Flash game developer who's wondering whether they should switch to HTML5+JS.

I'm not saying we should just give up and use Flash forever and ever. I'm trying to explain why HTML5+JS is not a mature game development platform yet.


I should point out that the things provided by Flex engines like FlashPunk are builtin in HTML5's DOM, for the most part. The boilerplate of an engine isn't really required.


That's true, to a certain degree. DOM might cover the object placement, the scene graph and perhaps collision detection.

On the other hand, I'm pretty sure DOM doesn't provide a boilerplate game loop. It might sound trivial, but sorting and linked lists also sound trivial and you don't see people reinventing them on a daily basis either.


The problem is that the HTML DOM is just to slow for any game that has some action going on. And as soon as you switch to using the canvas to render your game, you're back at figuring out and implementing stuff like object collisions yourself.


People often fail to draw the distinction between the developent tool and the platform when talking about Flash. With the tool anyone can knock together interactive animations with nice transitions and cut-n-paste bits of ActionScript from the web to tie it all together. I've seen non-programmers produce decent work this way. There's a lot of trial and error involved, obviously, if you don't really know how to program.

I usually program in Java but I'm using Flash (the tool) to throw together the GUI for a game I'm making. I find it's way more productive to develop the GUI visually rather than positioning and tweening things with code.


In Flex you have the ability to work with a structured hierarchy of display objects - each with their own transformation matrix. Flex pretty much handles all of the relevant transforms when you are doing event handling.

Of course, ultimately you can do all of that in a canvas but it is an awful lot easier in Flex.

Also, don't you have to manage the redraw of areas yourself with canvas?

[NB I hate what people do with Flash as much as the next person - but the actually tool is actually a pretty decenlt development environment (I just used the command line Flex compiler)]


Every time this discussion arises I use this example: http://www.audiotool.com/

I think it's one of the best Flash examples out there.

Ofcourse you can do this already in Javascript and support only some nightly build browsers. But I think it will still take a while before this will be mainstream in Javascript.


Your game wont work on my Windows and IE... flash does though.


IE9 implements hardware accelerated canvas (and is as fast as Chrome in my tests).


Your flash games won't work on most phones, though.


You mean they won't work on iOS phones, that's like 2% of the web browsing market. Not to mention iOS HTML5 support is shit.


Just because Flash is available for Android phones doesn't mean people have it installed.


there are a number of projects that fix this. explorercanvas from google, which can be autoinstalled and doesn't require admin. then you have the SWF converters, and the live shims.

IE not implementing the tag isn't a big deal, since they expose the drawing (directx) interfaces anyway

I got a press release yesterday that said jquery was now more common than flash across the top websites. the 'flash is everywhere' argument is a bit 2004 and isn't true anymore . javascript is everywhere


"I got a press release yesterday that said jquery was now more common than flash across the top websites. the 'flash is everywhere' argument is a bit 2004 and isn't true anymore . javascript is everywhere"

That's not the same, though. Of course JavaScript is everywhere- it always has been, because it comes with browsers. The point is that Flash is also everywhere, because everyone has it installed.


explorercanvas from google, which can be autoinstalled and doesn't require admin

I think you mean Chrome frame here? explorercanvas is an implementation of Canvas on top of SVG for IE.


That is what I meant, couldn't edit to fix the mistake


If flash was just unstable, unbelievable demanding on system resources and a user experience mess that would've been fine. What you are missing is that flash is not much more than a cross platform security hole and an open door to a large percentage of all general purpose devices in existence (only surpassed by PDF, but luckily there are non-adobe readers for PDF).

Any alternative to showing videos on the web will obliterate the need for flash for pretty much all users, and it's hard to imagine any alternative actually being worse for that (but deciding on format sure seems tricky).


The security liability Flash presents is an important and under-appreciated issue today. I guess it wasn't on the radar so much when Nielsen wrote this article.

I didn't know until today that this spring's RSA hack used Flash:

http://news.ycombinator.com/item?id=2927996


The guys that did the RSA hack would have found another attack vector even if Flash wasn't installed. Maybe they would have gone for a Java applet based attack, or perhaps in the future they'll target WebGL. The more complex your browser's capabilities are, the more surface area you have exposed to attack. Even if you reduce that surface area considerably, for example, by switching over to text only browsing for all of your employees, a motivated attacker would probably just find some way to cause a buffer overflow in the browser's text parser... Where there is a will, there is a way.


The guys that did the RSA hack would have found another attack vector even if Flash wasn't installed ... The more complex your browser's capabilities are, the more surface area you have exposed to attack.

Perhaps, but interestingly enough the attack wasn't against a web browser, but against Excel running a Flash applet. Maybe that path was chosen because it's less carefully examined by security policy and security software; I don't know.

In any case, it's certainly true that this pathway wouldn't have been available if not for the unnecessary use of Flash in places where it doesn't belong, i.e., Excel. Which ties into the theme here rather nicely; Flash used unnecessarily is worse than Flash eschewed entirely.


3) Good Free Toolchain: You don't really have to shell out 600 dollars for Flash. You can get your stuff done for free, using FlashDevelop and Flex SDK.

Interesting, I always assumed you had to buy the full Flash IDE to do anything. Granted, I never really looked into it at, but I wonder how widely known this is? Am I just ignorant? :)


It's been a few years I've worked with Flash so I can't recall all the details, but we were doing nightly Ant builds of Flash projects with their SDK.

We only used the official Flash IDE for building animations, for programming, it all too easily allows for code to be flung everywhere and creates debugging nightmares (Flex and Flex Builder is a slightly different story).


I don't think it's widely known outside the circles of Flash game development. Most people who develop Flash games do it as a hobby and/or out of passion. Sure, you can make some money out of it, but if you want to make money, there are better ways to do it. I guess that's why it's a lot more important for us to find a free alternative.


It's pretty widely known. FlashDevelop is very popular, and then on top of that there are other non-Adobe IDEs as well.


FlashDevelop is a widely known alternative, just that it is available only for Windows and not the MAC.


FlashDevelop is the IDE though, the important bit is the Flex SDK which is Java based and runs on virtually anything. Write your code in TextMate or Sublime Text or vi or emacs or whatever and then compile it with the Flex SDK.

FlashDevelop is great, but it isn't an essential piece any more than Eclipse is an essential piece for building Java apps.


You seem to be ignoring the fact that Flash doesn't work properly on Linux, Android and iOS. Unless Adobe does something about it soon, Flash is going the way of the dodo.


Part of the problem is that people want Flash as a way to run games and websites that were built for the desktop in mind (the other one is video, which I think we can agree has been proven to be able to exist without Flash). How many games on Kongregate require a keyboard? How many websites that require Flash do it for nothing more than flashy graphics and sounds (restaurant sites, I'm looking at you) or ads?

It's nice for people to want their favorite Flash-based sites/games to work as-is on their phones and tablets, once you get down to it though, those sites/games just won't work well without major overhauls, and so instead of rewriting to Flash (with all its usability problems), why not give your users a better experience in a web-native or device-native form?


Please define "properly", at least regarding Linux. There is a performance hit under Linux, sure, but beyond that?

I'm using Linux myself full-time, but for flash games I might even consider Linux irrelevant if there is no way of getting good performance. The by far biggest part of the audience still uses windows and that probably won't change for quite a while.


The general issues I've had:

Flash is installed outside the package management system (particularly on distros emphasizing Free Software: Debian, Ubuntu, etc.). This has improved through packaged installers (the plug-in's still fetched from outside of repos), but only in very recent times.

Flash content fails to load at all. I actually have this problem on several platforms, presumably because I limit JavaScript execution, and many sites now rely on third-party scripts for content generation (hello, Gawker, yes, you).

The player is very resource-heavy. I'll browse with several score tabs open. On a sufficiently beefy box, that's tenable, but with flash, memory and CPU utilization go through the roof.

The browser plug-in crashes, frequently requiring a browser restart to restore it. Given that Flash is virtually always at best ancillary to my browsing session (where I use it it's almost exclusively as a video player), my preference would be to have an external video player (I have several excellent free ones at my disposal). The crashes are addressed in Chrome as tabs and plug-ins run as separate threads/processes, but this still affects Firefox/Iceweasel.

There are numerous security and privacy issues with Flash, for which we're wholly dependent on Adobe to please, eventually, maybe address these.

64 bit Linux support was a long, long, long time in coming (and IIRC it's still weak). Until Linux itself got 32/64 bit library support sorted (again, only in recent years), this was a significant PITA.

Given Nielsen's criticisms (which address Flash as a website UI element, not such things as Flash video and games), yes, Flash is at least 99% bad. Most use is still advertising (yuk) and idiotic slideshows (infuriating). Its valid uses (videos, maybe games) would still be better addressed through standalone utilities rather than in-browser plug-ins, IMO. I use my browser for work and information, not entertainment. I keep a lot of state in my browser sessions, and they tend to live for days if not weeks.

All in all, as a Linux user, up until 2008/2009, Flash was sufficiently a pain in the ass that I'd generally just not bother installing it. I install it now (it's gotten easy enough) but block the hell out of it, with my rare use-case being YouTube videos and the very occasional informational graphic which makes valid use of Flash.


Flash works great for me on Droid X and HP TouchPad (only devices I own). You seem to be ignoring the fact that older (and even current) browsers, tablets, and phones have varying support for HTML5.


What kind of marketshare is that though? Especially since the mobile platform invariably replaces Flash apps with native apps rather than HTML + JS ones.


Your points are valid and I think the article is referring to websites created in flash not games. For now, I think using flash for games is okay.


Many of the comments here are along the lines of "But we can count on Flash to work long into the future" or "The alternatives don't work well yet." Both of which may be true.

But that is very much beside this article's point, which is kind of surprising - it's a very clearly written article.

Web designers mostly should not be doing the things that Flash/HTML5+Canvas make possible. Gratuitous animation and sound, non-standard UI, and the breaking of web fundamentals are not strictly Flash problems, but poor design practices that Flash does (and which HTML5+Canvas probably will eventually) seem to encourage.

Nielsen's point isn't that Flash is bad, per se. The problem is: unless you're producing a piece of pure entertainment (games, Homestar Runner, etc) then deciding to use (or emulate) Flash is, statistically speaking, almost certainly a design mistake. A big one.


Look, if you hate Flash because it eats at your CPU, or it broke into your house - be angry.

The author explains that Flash breaks 3 fundamentals:

   * it encourages design abuse
   * it breaks with the Web's fundamental interaction principles
   * it distracts attention from the site's core value.
Guess what else breaks these fundamentals? Everything. Not just Silverlight or JavaFX. These technologies have accessibility API. People just don't implement them.

Anyone who implements a fancy custom scrollbar, forgets an ALT attribute, or doesn't properly wrap their label tags is breaking these fundamentals all the same.

It's not like I don't agree that Flash could be better, but this argument could be applied to just about any technology at any point in time.


Thank you. I keep pointing out that these complaints can be applied to Canvas just as easily. When it takes over, will these people hate Canvas with the same passion?


If people create whole websites within Canvas? Then probably.


I'm meaning more the annoying banner ads. Most Flash designers do not create entire websites in Flash anymore, that's a special case situation these days.


Have you read anything from Jakob Neilson before, he would agree with you. If it were up to him the Web would like pretty much exactly like his article.


A major one not mentioned - flash hijacks your keyboard input, preventing you from navigating around and out-of on pages which are flash-infected.


Now I think about it, the other thing that does this is PDF files. Which are also a gift from Adobe. I loathe Adobe.


Not in Safari or Chrome. More a fault of the Acrobat plugin I'd imagine.


Safari with the native PDF renderer still steals the two finger swipe that does the "back" function from browser navigation. The must be a "good reason" as this irritant persists into Lion.


Only when you click to focus on it.


Depending on your OS and browser, sometimes all you have to do is mouseover it to lose all focus, both keyboard and mouse. This used to happen to me a year or two ago, with Firefox and Linux I think.


I saw an interesting stat the other day:

According to this "built with" site, use of SWFObject (which is pretty much what 99% of flash devs use to detect + embed their swfs) is starting to decline among the "top sites":

http://trends.builtwith.com/javascript/SWFObject

I'm the original creator of SWFObject, so I've looked at that chart a bit, and I've never seen the usage go down in the few years since that site's been tracking js usage.


I figure the success of browser-Flash will depend on touch parity between desktop & devices.

Flash is a complex experience to create and generating two forms (mouse & touch) confounds the universal cutting-edge innovation expected from Flash.


Does this include SWFObject2? (I think the current version is 2.2)


That's a good question. I suspect it does, as v2 has been out a long time.

They may just look at file names, like swfobject.js, or look for "swfobject" in the file path.


What I find more interesting is that the people who usually love to hate on flash are the same people who break these rules when building poorly constructed "html5/css3/javascript" (buzzword overload) sites. There aren't a ton of them out there yet, but the number is growing. Nielsen's points are valid, but they aren't all flash-specific; I've seen these same principles violated in supposedly "standards-compliant" sites as well.

I think this bigger problem is a lack of true experience/interaction design knowledge. If you are only focusing on the visual aesthetic, and not spending time on thinking through the total experience, chances are you are going to make most of these same mistakes. The technology you choose is less of an issue, the real problem is how you employ that technology. That said, I always try to avoid flash unless it has a very specific benefit over css/js, thankfully I haven't needed to build something in flash in quite a long time.


I also notice that a large number of these complaints apply to mobile apps. For example, the difference in back button use between iOS apps and websites is marked.


Yeah, it really comes down to implementation. I especially love the mobile apps that don't let you use your back button past their home page. Once you are there, that's it, you're locked in!


Do you mean mobile web apps? Or are you referring to Android apps and the Android hardware back button? Your comment is really baffling.


Yes, OK, everyone hates Flash. However, as others have said, Flash won't - and can't - disappear until Canvas development has the same almost-zero barrier to entry as Flash, and until every potential end user has a modern browser.

Another significant limiting factor is the simple fact that there are still things that you simply cannot accomplish outside of Flash. Specifically, I'm talking about camera and microphone data access, which can't be done via HTML5 without calling a Flash or Java applet.


the first implementations of input video and audio will be out soon. the delay was about how to handle security and privacy issues, and how it will be implemented (eg. first it was devices tag):

http://www.whatwg.org/specs/web-apps/current-work/multipage/...


Wow, I remember reading this article when it came out - ELEVEN YEARS AGO. Now I feel old.


I'll bet the Flash you made 10 years ago still works, and I'll bet the JS game you made doesn't.

I'll wager the Flash you make today will still work in 10 years, and I'll wager the HTML5 won't.


Just cruising around the websites of local stores in my town, their websites that were made 5-10 years ago still look the same as ever, and for the most part still function the same as ever. (The exceptions being when they relied on third-party includes that have since gone out of business.)

HTML5 is just HTML, and unless that fundamentally changes, it should work "forever." JavaScript too, again, unless you're linking to frameworks hosted by companies that later go out of business. JavaScript usually adds, but rarely takes away.

The look of your HTML site 10 years from now may look more outdated than your Flash site does, but as long as we're all still around, I'd wager that they'd both still work, provided Flash player is still a thing.


HTML5 is just HTML, and unless that fundamentally changes, it should work "forever."

That is, if you don't use the bunch of temporary CSS properties browser vendors are supporting (-moz-, -khtml-, -ms-, -o-, etc) that people often assume to be "ready" but that will be deprecated in the future.


I am just asking a small question: are the complaints here not present with html5 canvas element?

For me blaming a technology, when the issue is people, is not very effective.


Yes, this annoys me as well. Don't like splash screens and advertisements in Flash? Well you're definitely gonna hate them in HTML5 because they consume more CPU and will be more difficult to block.


It's a good question. E.g. Flash has support for accessibility, but this gets trumped by developers ignoring it.


Why is this being dug up again? Not that I condone flash.


Hoping to get feedback on the current validity of the statements in this article.


Well it seems like "Flash" could be replaced with "HTML5" and most of this article would still make sense - many points are arguable whether they apply to either though. Most of these are caused by poor developers rather than the platform itself.

* Gratuitious animation

* Granularity of user control

* Non-standard GUI controls

* Back button

* Moving text is harder to read for users who lack fluency (haha this one made me laugh)

* HTML5 content tends to be created once and then left alone

* HTML5 content is typically superficial

* HTML5 is typically created by outside agents who don't understand the business


Well, HN programmers eat him up so he's still the same.

For designers, including Flash devs/designers, he's also still the same (a fanatical old coot determined to prove '96 browser text is superior to multimedia).


Eh. Flash is great for games or cartoons or grooveshark-style sites. It's awful for restaurant webpages, but who cares? Also, people who haven't worked with flash are probably unaware of how much better actionscript is than javascript.


Why are we even discussing an article from 2000? This is so irrelevant to todays Flash, and todays digital landscape? And what would the web have looked like before jquery, html5 etc came to the fore? We needed Flash. And could YouTube and Google Maps have ever taken off without it? I'm all for the demise of Flash and the rise of open source, but everything has it's place, and it served and still serves brilliantly for sites made by the advertising industry.


Google Maps does not require Flash.

I don't have Flash installed at all, and Google Maps works just fine without it.

Youtube also doesn't require Flash to download the videos. I use a number of youtube downloader programs to get the videos, and then use a native video player to watch them. Of course that's not how most people watch youtube videos. But there's really no reason why the service couldn't have been built around an some open downloading/streaming technology instead of Flash.

"it served and still serves brilliantly for sites made by the advertising industry."

Yet another reason to avoid Flash for end users like me, who hate ads and despise the advertising industry.


Is it me or did Nielsen add an update on top of the article when he was hired by Macromedia, or something like that?

The way I recall it, it said something along the lines of "OK, Flash is not very good, but now we are working to address the issues mentioned on this article". I checked in archive.org, but there are no copies of the page there.


After this article the Nielsen Norman did work with Macromedia on developing Best Practices. http://www.internetnews.com/dev-news/article.php/1178941

Jacob Nielsen later added the summary findings: http://www.useit.com/alertbox/20021125.html


I agree with the article (and always have done), but it's always bothered me that useit.com is a website devoted to usability and it looks like this...

http://www.useit.com/ http://www.useit.com/alertbox/


Use It is widely regarded as Spartan and perhaps ugly, but it is eminently usable. I bet most readers get in and out with more recall of key appreciated content in less time than the ever-so-popular "5 wordpress plugins to make your site shiny" style of bloggers.

And I bet Jakob N has 1tested this question extensively as well.

Oh and on his home page I stumbled on a link to a page with his own (better) explanation: http://www.useit.com/about/nographics.html


It's not the lack of graphics that I find unwieldy, it's the fact that the content seems dumped onto the page with only a cursory thought towards hierarchy. I look at it and see an impenetrable wall of content, which I personally find difficult to sift through.


Jakob Nielsen understands usability better than most (and I love him for that) but not multimedia: The proof of this not only how well Flash has done during the past ten years but how much HTML 5 looks and acts like Flash to the end user. The flying type has won...


I've been a flash/flex guy for a number of years. For however many rough spots it may have the cross platform nature of flash/air is something that shouldn't be ignored.


Flash is substantially fixed. If you haven't used Flash lately, I encourage you to read the API docs for Flex and have a play around with the Free compiler. It's become very easy to mix standards-compliant markup and Flash in a manner which degrades gracefully/enhances progressively.

IMO, the problem is developers. Because of Flash's origins as a tool for designers to make animations, most ActionScript is atrociously bad. The lion's share of Flash is created by people who really don't know how to program. When you have a community where knowing what recursion is marks you out as above-average, it's understandable that the core technology gets a bad rep. The problem is self-reinforcing, as good developers want to use the new shiny HTML5 and don't want to tarnish their CV with Flash development.

A huge spectrum of really high-quality web apps are reliant on Flash. Streaming video is the obvious application, but projects like SoundManager2 are still reliant on Flash for audio in HTML5 apps. It's a very nineties word, but Flash is still the bottom line when it comes to multimedia. Products like Google Street View or Turntable.fm just aren't plausible without Flash and won't be for the forseeable future. Given the glacial pace of the W3C on HTML5 and the likely slow uptake of newer browsers, we're stuck with it. I don't see that as a wholly bad thing.


It is not Flash's fault (just like wordpress modules poor coding is not PHP's or Wordpress fault). It is how it used.

I am glad in fact flash exists. I actually can install Flash Block kind plugin and 99% of "design mess" disappears.. If there would be no Flash, all these "designers" star put introduction pages with HTML5/Canvas/etc. And this is harder to block. =)


The only things I see Flash being useful for these days are video in older browsers and copying text to the clipboard via a button.

Sure, there are Flash games and ads, but I think Unity is a much better game development plugin and many people block Flash ads these days.


There are hundred of thousands of Flash games on the web. None of the issues raised by the article apply to them.

Though I hate Flash websites as much as everyone else, the title is misleading and harmful for game developers.


You'll eventually regret flash when all those banners will be replaced by their HTML5 equivalent ;-)


Flash is great if used well.

Eg: check out www.pinklab.com -- I defy you to replicate this site in html5.


I would have appreciated a NSFW warning.


AS true now AS it was then.


In the 11 years since this article has been published, Flash has changed, HTML has changed, and web developers' philosophies have changed.

I don't like the tone of the article, but I have to hand it to Nielsen for creating something that likely had some impact on the web. In the hall of fame of inflammatory, overly-broad titles, I think it'll be next to Djikstra's "Goto Considered Harmful".

> First, Flash encourages gratuitous animation: Since we can make things move, why not make things move?

Good taste has prevailed. Once ubiquitous "intro animations" have almost disappeared, as have <marquee> and <blink>. Hype http://tumultco.com/hype/ and Sencha Animator http://www.sencha.com/products/animator/ are powerful animation tools that export HTML5/CSS3. We will have to hope HTML5 and Flash designers continue exhibiting restraint with gratuitous animation.

> Second, one of the Web's most powerful features is that it lets users control their own destiny.

It's hard to address this issue, since I'm not exactly sure what Nielsen is specifically objecting to. I think it might have to do with McLuhan's "Hot" and "cool" media theory where certiain media encourage participation instead of hijacking attention?

> Third, many Flash designers introduce their own nonstandard GUI controls. How many scrollbar designs do we need?

"Aristo" http://cappuccino.org/aristo/showcase/ "mocha(ui)" http://mochaui.org/ "Dijit" http://dojotoolkit.org/reference-guide/dijit/index.html

... the list goes on. There's nothing wrong with custom UI, so long as it conforms to users' expectations (a tall order). This issue is still in the hands of developers.

> Breaks Web Fundamentals

> The "Back" button does not work.

In the hands of developers. Many ajax-y sites have this problem now (see Twitter). Many libs exist for both JS and Flash devs to fix (or not) this issue.

> Link colors don't work.

a:link {color:#000000;} a:visited {color:#000000;}

> The "Make text bigger/smaller" button does not work.

This is a browser issue. All elements should magnify when a user Zooms In/Out (fixed on some modern browsers).

> Flash reduces accessibility for users with disabilities.

<img src="image.gif" alt="" /> <canvas>...anything...</canvas>

> The "Find in page" feature does not work.

Still true.

> Internationalization and localization is complicated.

Local websites must enlist a Flash professional to translate content.

Nearly all serious Flash projects separate content into XML or JSON files (especially if the website content will need to be translated). Some AJAX-driven sites do this as well.

> Also, text that moves is harder to read for users who lack fluency in the language.

In the hands of developers.

> Distracts from a Site's Core Values

> Frequently updating content (Flash content tends to be created once and then left alone).

Not true now (or then).

> Providing informative content that answers users' key questions at all depth levels (Flash content is typically superficial).

This is a great example of why I object to the tone of the article.

> Identifying better ways to support customers by task analyzing their real problems (Flash is typically created by outside agents who don't understand the business).

I'm trying to understand the implications of this statement, but I'm baffled. Maybe it made sense in 2001 when HTML sites were sometimes cobbled together by a favorite nephew close to the company. Either way, web development is sufficiently sophisticated/complex enough now to require developers to know what they're doing. This sometimes means hiring an agency/production house.


This Article is not like wine, it doesnt get any better eleven years later. Compared with wine this article is plonk.


Food: 99% bad




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: