So, for reasons I’d rather not get into, I had to break down and install Flash Player in Safari today. (OK, I’ll get into it briefly… due to a rather obscure bug, Chrome — my preferred browser — has been crashing repeatedly on me whenever I try to upload a file. Long-term solutions aside, I had an immediate need for a way to use a Flash-based file uploader, so I had to install Flash in Safari.)
On the final page of the Flash Player download process on Adobe’s website, they offer a series of helpful screenshots to guide the most novice of Mac users through the process of locating and running the installer. Only… no, wait. Those can’t be real Mac OS X screenshots. The fonts are all wrong! So is the anti-aliasing, if you want to get really geeky about it. They’re mostly Arial, with the trademark overly-hinted anti-aliasing of Windows. Strangely though, it looks like the text label under the disk icon in the first screenshot is in Helvetica.
The real telltale sign for me though was the white mouse pointer arrow. Mac OS X has a black arrow. (The Mac has always had a black arrow, and Windows has always had a white one… presumably one of Microsoft’s infringement-suit-skirting superficial changes to the GUI in the early days of the Mac/Windows rivalry.)
I have come to expect subpar user experiences from Adobe, a company whose products I once loved so dearly. But this really takes the cake. I can’t even quite comprehend how screenshots like these were produced. It’s impossible to get results like this on a real Mac. Do they have some weird proprietary in-house Mac emulator that runs on Windows? (Actually, that might explain a lot.) Did they actually meticulously create these “screenshots” in (the Windows version of) Photoshop? Or do they have a Windows application specifically designed to generate fake Mac screenshots for all of their documentation? I’m at a loss to explain it, but there’s no way it wasn’t significantly more work than simply, you know, taking screenshots on a real Mac.
See for yourself… (Note: The image is slightly scaled down here to fit the page. Click it to view at full size.)
My Subaru Outback is due for service. Time to schedule an appointment. This is the kind of thing I just love to do online. No human interaction necessary!
Unfortunately, my dealership (who shall remain nameless, although I am happy to tell you that their shoddy website experience, which I am about to detail for you, was delivered by auto dealership web development behemoth Dealer.com) has not made the online scheduling option easy. And by “not easy,” I mean “practically impossible.”
First of all, for no good reason, the scheduling interface is built 100% in Flash. I’m pretty sure this scheduling system predates the iPhone, and Flash was at the time a de facto standard, but I’ve been building web applications since 1999 and there was never a time when it made sense to build a system like this in Flash. I deliberately don’t have Flash installed, except the version built into Chrome, so I couldn’t even load it in my browser of choice (Safari). Strike one.
I don’t think so.
Switching over to Chrome, I was able to go through most of the appointment scheduling process, picking the service I needed done, etc., until I got to the point of actually scheduling it, where I was stuck in an endless loop of picking days that were marked “available” on a little calendar overlay, only to get an error message stating “Not available due to shop capacity.” Over and over.
All but giving up, I spotted a curious item at the bottom of the page:
Ooh, this looks promising! Except… wait. How can clicking a link on my computer download an app to my smartphone? Maybe I should visit this site on my iPhone and then tap the link. Except… wait again. This part of the interface is in Flash, so I wouldn’t even see the link on my iPhone. So, what happens if I click it, anyway?
Are you kidding me? We are now at a place where I am interacting with a Flash-based web app on my computer, having it send to my phone an SMS message containing a link to the dealership’s mobile website. I’d even prefer a QR code over this convoluted mess. Strike two.
This is not how you do the Internet.
So I just decided to go over to my iPhone and try loading their website directly. It “smartly” (using the term loosely) redirected automatically to a separate iPhone-optimized version of the site, which I can only assume must be the mobile site the SMS would have linked to. (That is a reasonable assumption, right? We shall see.)
Here’s what I found when I navigated through the iPhone-optimized site to the service department’s page:
That “Service” button calls the service department. The “Contact Us” button is a link to a general-purpose email form. There are no other options.
“The mobile site will let you create, modify, and cancel appointments.” That’s what the SMS form promised. I decided (solely for the purpose of this blog post at this point) to fill out that form, but have the link emailed to me rather than sent as an SMS message. Not surprisingly, the email ended up in my junk folder. Also not surprisingly, the link goes to a different site than the version my iPhone was automatically redirected to when I tried to load the dealership’s main website. (So this is three separate websites they have now.)
I loaded this other mobile site on my iPhone, and it works!
Except, no, wait… it doesn’t:
Except, no, wait again… despite that weird error message, it actually does work:
(How many “except waits” is that now?)
But since it apparently only lets you edit existing appointments, not make new ones, I guess it really doesn’t work, after all. Also, don’t ask me why the iPhone version of the site doesn’t even have a link over to this version, but I guess ultimately it doesn’t matter anyway. Strike three. And four, five and six. In fact, let’s just call the game. And I’ll call the dealership.
There has always been a lot of temptation to use Flash to do things that couldn’t be done with web standards, especially when the standards weren’t up to Flash’s capabilities. But succumbing to that temptation led to two trends that were profoundly harmful to the open web, and the effects of which we are — and I am literally — still experiencing today.
Bad UX as standard practice
First, since the sky is the limit when designing Flash interfaces, it created a feedback loop where designers took excessive liberties in experimenting with how basic interface elements like scrollbars and buttons should look and function. Then, project stakeholders who didn’t have the requisite background to make informed UX design decisions made demands that further pushed how these elements look and function. And since Flash had so few constraints on interface design, designers could accommodate those expectations, and the situation spiraled out of control.
Flash as an industry
Second, as Flash grew in popularity it created an entire industry of Flash developers. Suddenly you had people whose livelihood depended upon building interfaces in Flash, regardless of whether or not Flash was really the right tool for the job. And as someone who has always favored open web standards, my perspective is that Flash is only the right tool for the job when it’s the only tool for the job. Even if standards couldn’t do something in quite as… ah-hem… “flashy” a way, if they could do it at all they should be chosen over Flash. I recognize this is a bit subjective, but one thing I can say about it with objectivity is that favoring web standards over Flash for a system like the one I’m describing here would almost certainly have obviated all of the problems I encountered this morning.
A metaphorical lesson to all technology workers: when your only tool is a hammer, every problem looks like a nail. Diversify your toolbox. It will serve your clients better by ensuring that you’re using the best tool for the job, not just the tool you know best. And it will serve your career better by not limiting your job options.
Future-proofing the web
There’s an even bigger reason now that having built this kind of system then using web standards instead of Flash would’ve been a good idea. If this site’s forms had been built with semantic HTML, it would be a comparatively trivial task to build new CSS with responsive web design techniques, allowing a single site to deliver the complete user experience on any device, rather than having to pay for and build three separate, wholly inconsistent, and all inadequate websites. By supporting and adhering to standards in the past, we could (and did) build websites that still work fine today. And by continuing to adhere to standards today, we can build websites that will still work fine tomorrow, even if we don’t really know what tomorrow’s devices will look like, or how we will interact with them.
Caveat emptor. This is going to be a really long post. But I’ve been saving this up for a long time, and hopefully I can purge myself of it in one sitting. Also, I apologize for that vaguely vomitous metaphor, but it fits my feelings about Flash. And, perhaps, by the end yours as well. So if you have a strong stomach (and care at all about this crap), read on. Otherwise, see you next time.
OK, so I’ve chimed in on the whole Apple vs. Adobe, no Flash on iPhone OS situation before. (And, if you care to scroll back through my history of mostly beer-fueled tweets about the Minnesota Twins, you’ll find a few choice 140-character missives on the matter from me on Twitter as well.) But up to now I’ve never made a clear — or, failing clarity, at least a verbose — argument for why I so strongly dislike Flash. The time has come.
I am well aware that Flash means different things to different groups of people. Essentially, as I see it, there are three main groups of people where Flash is concerned: pro-Flash designers/developers, anti-Flash designers/developers, and users. I don’t bother to distinguish between pro- and anti-Flash among users, because ultimately I don’t think most users (unless they’re also in one of the other two groups) give a crap what technology is behind the content they’re consuming on the Internet. They just want it to work.
So, with this in mind, I’m splitting this post into two sections: my arguments against Flash from the user perspective, and my arguments against it from the designer/developer perspective. I don’t bother representing the third group, because there’s really no part of me that supports it. I have reluctantly used Flash for a few, very limited purposes in recent years1, but I am actively striving to eliminate even those rare instances of it from my work.
But enough about my work (for now). Any web designer or developer worth their hourly rate knows the user comes first.
Part one: the user’s perspective
1. Flash-based designs look bad. I know I’m not an ordinary user, given my professional background, but I can spot Flash-based content in an instant, and it’s always a turn-off. There’s just something… cheap-looking about most of it. More often than not, I notice that Flash-based content has bad text rendering (both because of kerning and leading issues and because of Adobe’s abysmal anti-aliasing technology, far surpassed by the built-in anti-aliasing of plain HTML text in modern Mac web browsers and Mac OS X itself). And beyond the text, most Flash content I see has cheesy, cookie-cutter animated effects. It’s not as objectionable as a PowerPoint presentation, but it’s almost as immediately identifiable, and equally uninspiring.
Now, it’s true I’ve seen some excellentFlash-based web design. But it’s definitely the exception, and it’s rarer as an overall percentage (or at least feels that way) than first-rate design is on non-Flash sites. Plus, since I can never entirely turn off my professional perspective, knowing the drawbacks that an all-Flash website brings, my experience even of these best examples of Flash-based design are tainted beyond redemption.
2. The most high-profile use of Flash is for ads — and annoying ones at that. OK, there’s a lot of Flash content out there that’s not ads. I’d like to believe that ads make up a minority — hopefully a small one — of all Flash content on the web. But I think most of the interesting Flash web design is never seen by most people. The only Flash-heavy content that draws a lot of traffic is either online games (some good, some… meh), kids’ interactive sites (probably the only use of Flash I unabashedly support), and promotional sites for blockbuster movies and console video games. Of course, the number one use of Flash these days is probably to watch video online, from sites like YouTube, Vimeo, Funny or Die, Hulu. Flash-based video is everywhere. But that’s changing.
So, set aside the sites that require heavy-duty interactive content or (for now) video, and what are you left with? Where else does the average Internet user encounter Flash most often? Ads. Annoying, intrusive, obnoxious ads. I realize perfectly well that unless a website is actually selling stuff (including, potentially, access to the site itself, and good luck with that unless your content is either targeted at highly-specialized professions or X-rated), the only viable revenue source is advertising. But websites that operate on an ad-based business model walk a fine line: the ads need to be attention-getting enough to encourage the user to click on them, but they can’t get in the way so much that people stop visiting your site altogether. As a user, when I encounter a site with an over-abundance of intrusive ads, it’s a double negative: not only do I think the site’s design is too annoying to deal with, but I automatically assume its content must be crap, not worth wading through the ads to get to anyway.
3. It’s a plug-in. A plug-what? A what-in? This is beyond the level of most users’ interest in their computers. I just want it to work, I don’t want to fiddle around with downloading extra crap, especially when the installer was written by Adobe. (See, it’s hard for me to divorce my mind from my professional experience, even for a few minutes.) Once it’s installed, you’re done forever (or… well… until a new version of Flash comes out), so it’s easy to forget about it, but get a new computer and it’s either not installed, or you’ve purchased a PC that’s not only preloaded with Flash but 3 dozen other crappy OEM add-on applications that you’ll spend a week trying to get rid of (or, more likely, leave on your desktop gathering metaphorical dust along with 100 other icons, including every Word document you’ve ever created, forever).
Flash filled a niche, but web standards have caught up (or are well on their way to doing so), and a proprietary add-on just isn’t necessary in the way that it used to be. And, of course, on any device running iPhone OS, it’s not even that. It’s this.
4. You can’t “deep link.” I realize that to anyone who doesn’t know what a “plug-in” is (as I joked about in the previous item), the concept of “deep linking” may cause a spontaneous mental breakdown. But just because the average user doesn’t know what “deep linking” means doesn’t mean they don’t want to do it. The best example of this (though sadly I don’t have an example of it at the moment) is the scenario of a Flash-based photo gallery. Want to send your friend a link to the 14th photo in the gallery? Too bad. If you copy and paste the URL from your browser into an email, they’re going to be taken to the first photo, or, more likely, to the obnoxious crap you didn’t bother watching when you first landed on the site, because the designer at least had the courtesy of including a “Skip Intro” button.
It’s possible now to work around some of these limitations, but in my experience most Flash-based websites don’t.
5. It’s sometimes used when it’s not really needed. This is closely related to the previous item, and is probably more of a complaint I have as a developer than as a user. But there are just some sites that don’t need Flash. Or even if they do, the whole thing doesn’t need to be in Flash. If Flash were restricted to the parts of the site that require its capabilities, and things like the main navigation and text content were in plain HTML, then deep linking and a host of related problems could be alleviated.
7. The security and privacy settings you don’t know about, but should. There’s a reasonably good chance you’ve looked at the privacy settings in your web browser’s Preferences dialog box. But have you seen this screen before?
I’m not claiming the sky is falling or crying wolf. I don’t personally know of any major security exploits that have come out of this particular capability of Flash. But what happens if there is an exploit? There’s no one who can fix the problem but Adobe, and no alternative means for you to access Flash-based content. If Internet Explorer has a security exploit, you can always browse the web with Firefox, but despite some noble open source efforts, there really is no alternative to Flash. Adobe has an absolute monopoly on Flash-based web content.
8. Performance. Flash is notoriously much slower on the Mac than it is on Windows. Always has been, always will be. Apparently, according to none other than Steve Jobs himself, it’s also the number one reason Macs crash. I don’t doubt it, though I haven’t experienced it myself, mainly because I avoid Flash-based content as much as possible. But even though it performs well on Windows (largely due, I suspect, to more direct access to the system’s hardware — another security concern, incidentally — on Windows compared to the abstracted hardware access the Mac grants applications), it’s a resource hog everwhere else. I already talked about Flash’s performance issues on mobile devices. The upshot is that Flash seems to be pretty bloated and inefficient, and since Adobe won’t let anyone else look under the hood, I suspect there’s a good chance that it is… perhaps even more than anyone thinks.
In other words, if there’s a better way to do something, use it. Dump Flash.
Part two: the designer/developer’s perspective
1. Flash created a rift in the community. You don’t say! Just as there’s a big wall in the corporate software development world between .NET and Java, there’s a huge wall in the web design/development community between those who use Flash and those who don’t. This may stem in no small part from Adobe’s (and, previously, Macromedia’s) marketing tactics. There are almost unlimited options available for free (or at least cheap) IDEs for web and application development (or you can just use Notepad), but the only way2 to create Flash content is to pony up.
The result of this — and I speak from my own experience, which was a contributing factor in which side of the fence I fell on — is that designers who were given Adobe Creative Suite had Flash on their desktops, and developers who did not have CS were shut out. Flash, with ActionScript, became a gateway drug for designers looking to get into programming. Adobe capitalized on familiarity with their applications’ user interfaces, and a generation of Flash evangelists was born.
Or, on the other hand, you had developers or, like me, designer-developers who happened to fall just slightly more into the “developer” column, who were maybe given a copy of Photoshop, but encouraged not to use it. There have been periods over the past decade where I have been receptive to the idea of getting into Flash development, but was denied access to the necessary tools. It doesn’t take too long playing that role — in the context of all of the criticisms I’ve already levied from the user’s perspective — before you just decide it’s a piece of crap; you’re better off without it; and you’ll do everything you can to prove that standards-based alternatives are better.
The war between Apple and Adobe over Flash support on the iPhone OS has brought the situation to a head, with the Flash development community up in arms over Apple’s war (in which they are at least collateral damage, and at worst Adobe mercenaries), and the standards community cheering what they see as the overdue demise of public enemy number one.
2. Flash developers use it unnecessarily. There’s the rift in the community again. Because Flash developers were often weaned on Adobe Creative Suite and don’t know how to program in anything other than ActionScript, nor often how to build a simple web page in HTML/CSS, and because it’s easy for them to dazzle clients with a Flash-based site, it’s often tempting to just build an entire site in Flash. It looks impressive, the client thinks they’re getting what they want, and the check’s in the mail.
The problem is, although you can build an entire website in Flash doesn’t mean you should. In addition to the aforementioned mobile devices, Flash content is invisible to screen readers, meaning visually impaired users can’t access it, and, probably more important to the client’s bottom line, to search engines. As far as Google is concerned, that whiz-bang all-Flash website you just created for your client may as well not even exist.
Again, there are ways around a lot of these limitations, but I can think of a better one: just don’t use Flash.
And so on. I had a few other items on my list of complaints from the developer’s perspective, but they’re mostly facets of these same points: it’s a closed system entirely dependent upon one company; it’s expensive; it’s increasingly unnecessary as web standards evolve; it encourages bad user experience (UX) design; it distracts designers-turned-developers from learning web standards; etc.
Arguing for or against Flash is a lot like arguing politics and religion. It’s a polarizing issue. Everyone who has any interest in the debate also has investment in a particular perspective — baggage and biases they may not be fully willing to admit even to themselves, much less throw into their arguments. And a lot of it isn’t entirely rational.
As Upton Sinclair famously wrote, “It is difficult to get a man to understand something, when his salary depends upon his not understanding it!” It’s also easy to use that argument when you’re entirely convinced that it’s describing the other person’s position. I’m sure there is more behind most pro-Flash arguments than a vested interest in the ongoing potential for work developing for the platform. But from my perspective, it’s difficult to see.
2 OK, owning a $700 copy of Adobe Flash isn’t the only way to create Flash content. Knock yourself out. Adobe will be standing by to take your order when you get back.
I’m sure I’m not the only child of the ’80s who watched Johnny Dangerously several (hundred) times as a kid. One of my favorite characters was Roman Moronie, whose command of the English language — well, more specifically, English profanities — was tenuous at best. I’m sure he would be highly offensive to a particular nationality or ethnic group, if it were possible to tell where he was actually from. (That mystery itself being a joke in the movie; at one point a newspaper headline reads: “Roman Moronie deported to Sweden — claims he’s not from there.”) Yes, I was a big fan of ’80s Michael Keaton movies that, in retrospect, are somewhat problematic. Johnny Dangerously, Mr. Mom. I think I partly liked him because I thought maybe he was related to the characters on Family Ties. OK, I was old enough to know better than that.
What does this have to do with Apple vs. Adobe, or anything for that matter? I’m not sure, but I do know that their battle has escalated to fargin’ war!
Steve Jobs fired the first metaphorical salvo last month with his Thoughts on Flash. I thought he nailed it, as expected. Of course Adobe can’t let him win, so yesterday Adobe retaliated with their “We [heart] Apple” / “We [heart] Choice” ad campaign and an open letter of their own.
The idea that Flash is somehow open — or that Apple is somehow trying to “close” the web — is both disingenuous and misguided. My natural inclination is to blather on ad nauseum about such things, but as I’m home with a sick kid today (which is to say, there’s enough nauseum in this house already), I’ll let some more pithy writers say it for me.
First, an excellent and concise response from Jim Whimpey in Brisbane, Australia (by way of John Gruber in Philadelphia):
Adobe: not open, claim to be.
Apple: not open, don’t claim to be, contribute heavily to that which is truly open.
Update: Over on the Macworld website, the Macalope has some choice words on this topic. It’s worth reading in its entirety, but here’s my favorite bit, dissecting excerpts from the Adobe open letter:
If the web fragments into closed systems, if companies put content and applications behind walls…
You mean like the wall of a lousy runtime environment that would just as soon crash the Macalope’s browser as play back a Daily Show clip? The wall of a development environment controlled by one company that makes some pretty good coin off the deal?
Oh, no. That’s not the wall you were talking about. Sorry. Go on.
…some indeed may thrive — but their success will come at the expense of the very creativity and innovation that has made the Internet a revolutionary force.
The Internet is an open range where anyone can compete in any way they like. But Adobe didn’t make the Internet. In fact, they tried to wall off a section of it. Apple, on the other hand, made its own walled garden with a scenic view of the Internet.
Did you hear the one about the guy who bought a Kindle on the day the iPad was released? Of course you didn’t, because no one is buying a Kindle today!
Well, I’m sure someone’s buying a Kindle. I’m not sure why.
Waiting for the second generation
I can understand why some people wouldn’t want an iPad. I’m not buying one today. I didn’t buy an iPhone until 9 months after it was released. I probably will own an iPad eventually. I would definitely wait until the 3G models are out; I would probably wait until a future version is available with a built-in camera, and after prices come down so at least 32 GB of storage is available for the same price as 16 GB today.
Most of the critics (including Walt Mossberg and David Carr on last night’s episode of Charlie Rose), while generally lavishing high praise on the device, cite a common (small) set of complaints: lack of a camera for video chat, the awkwardness of holding it for long periods, and no support for Flash tend to be at the top of the list.
I can certainly agree on the first two points: a camera (or two — one on each side) seems like such an obviously necessary feature that I can’t believe it won’t be added to the second generation model; and although I’ve yet to touch an iPad, much less hold one, I can already imagine that I would quickly tire of propping it up and that two-handed typing while balancing it on my lap would be frustrating. But it comes with a nice case with a built-in prop (as demonstrated by David Carr last night on Charlie Rose), and more accessories will certainly be coming soon from third-party manufacturers.
There was an inadvertent demonstration of the potential physical awkwardness of the device last night on Late Night with Jimmy Fallon when the host and Joshua Topolsky attempted to play a game of air hockey with the iPad placed flat on Jimmy’s desk: with its curved aluminum back, the iPad was prone to skating around on the desk as the two slid their virtual paddles around on-screen.
Charlie Rose loves the iPad. He called it a “game changer” at least 3 or 4 times last night. There’s been some dispute over the iPad’s potential impact, but I think those who are criticizing it on its technical specifics — the lack of whatever they deem it to be lacking — are completely missing the point. I read something recently (which I’ll link to if I manage to track it down again) that was talking about how the upcoming Windows Phone 7 interface would have been just as revolutionary if it had come sooner; the implication being that the major factor in Apple’s success was timing. To me, this so profoundly misses the mark that it’s hard to even take seriously. As much as I hate to use the word “paradigm,” Apple changed the paradigm with the iPhone interface. There wouldn’t be a Windows Phone 7 without the iPhone, nor a Droid, nor any of the other major advancements we’ve seen in “smartphones” since the iPhone was released in the summer of 2007. Yes, there were smartphones before the iPhone and they did a lot of the same things. Yes, Android was being developed for a number of years before the iPhone was released. But the iPhone changed both the perception and the reality of what a smartphone can do.
This is what the iPad will do, for a market — netbooks, or whatever fills the void between phones and laptops — that is even more anemic than the cellphone market was a few years ago. The hardware physically fills that niche perfectly, but the UI is what’s really revolutionary, creating a whole new, far more intuitive, natural, and fun way for people to interact with a technology device, with an underlying system that is more stable and worry-free — it just works — than any computer before it. And just think about the amazing things the 150,000-plus iPhone apps can do today: not even Apple envisioned all of the ways the iPhone would so quickly come to be used by people of all ages, for just about everything. This is what the iPad will do.
I didn’t want one, until I did
Most people see the iPad primarily as a device for consuming media, and to a large extent that’s true. The most strident complaints about its limitations seem to be coming from those who create media, and I can understand where they’re coming from… to an extent. But the iPhone has become a powerful tool for creating media, with its camera and photo manipulation apps; with creative drawing tools (good enough to have produced several New Yorker covers to date); and with a vast array of music creation apps, turning the pocket device… the freaking cell phone into both a musical instrument and a recording studio. Just imagine what the same kinds of innovative thinking can do with a more powerful processor and a much larger screen. You might never find Adobe Creative Suite or Pro Tools on the iPad, but that’s old world thinking. If you let go of the familiar (and far less intuitive to non-techies) trappings of mice and windows, of plugging in peripherals and navigating hierarchical file systems, and embrace the potential of a new way of interacting with a computer, a new world will open up to you.
Over the past several years, I’ve read numerous articles lamenting the fact that for all of the advances in computer hardware technology we’ve witnessed in the last quarter century, the basic GUI concepts have not evolved one bit from the first Macintosh Apple unleashed on the world in 1984 — and its concepts were largely the same as those developed experimentally at Xerox PARC in the late 1960s. When will we finally have a new way of interacting with computers? And where will it come from? It’s not much of a surprise that it came from Apple, and it’s here today.