I am an unabashed partisan of the Web — its architecture, culture, and content. I’m proud to have played a very small part in shaping bits of the machinery and having contributed probably too many words to that content But as for HTML5? It’s a good enough thing to the extent it turns out to work. But nothing terribly important depends on it.

Let me start with some anecdotal evidence.

Item: I got mail from really well-known Web technologist — his competence is not in doubt — making his first foray into mobile development. He wrote: “I’m trying to avoid appstore hell by developing rich HTML5 apps, but the performance on iPhone is shoddy whenever network IO is going on, and I seem to be able to crash the browser on our departmental Nexus One with such frequency it's not even funny. I think I've got a lot of optimization to do to my app to dial down network access, but I just wondered what the jungle drums say about HTML5 as a sensible approach for delivering apps in 2010.”

Item: The HTML specification process is controversy-laden, immensely ambitious, and is attempting to boil at least one ocean. There is no guarantee of success, no matter how you choose to measure it.

Item: Apple and Adobe get into a major public pissing match; the club each side is bashing the other with is prominently labeled “Open” and “Web”.

Item: Ben Ward writes Understand The Web which rambles all over the place, has an egregious grammar botch in the first sentence, but makes some really important points.

What’s The Web? · I wear my biases on my sleeve as one of those who helped write The Architecture of the World Wide Web. The Web is a tripod, depending critically on three architectural principles:

  • Pieces of the Web, which we call Resources, are identified by short strings of characters called “URIs”.

  • Work is accomplished by exchanging messages, which comprise metadata and representations of Resources.

  • The representations are expressed in a number of well-defined data formats; you can count on the message data to tell you which one is in use. It is essential that some of the representation formats be capable of containing URIs. The “Web” in WWW is that composed by the universe of Resources linked by the URIs in their representations.

That’s all. You notice that there’s nothing there that depends crucially on any flavor of HTML. Speaking only for myself, an increasingly large proportion of my Web experience arrives in the form of feed entries and Twitter posts; not HTML at all, but 100% part of the Web.

On Flash · This may be a side-trip, but anyhow: I entirely loathe Flash but by any definition it’s part of the Web. It works just fine as a resource representation and it can contain URI hyperlinks.

What’s not to like, then? Well, the user experience, which in my experience is fourth-rate for anything but games; No “Back” button, feaugh. And of the course the fact that it remains essentially proprietary.

So, I use a Flash-blocker every day, and I am not a friend of Flash inside Google, but none of my arguments have anything to do with being part of the Web, or not.

Native Applications · A large proportion of the native applications on iPhone, and on Android, and on Windows, and on Mac, and on Linux, are Web applications. They depend in a fundamental way on being able to recognize and make intelligent use of hyperlinks and traverse the great big wonderful Web.

Those apps that are not so enabled are in general the worse for it.

So whatever you may think of native applications, please don’t try to pretend that they are (or are not) necessarily good citizens of the Web. Being native (or not) has nothing to do with it.

Why HTML5 Then? · Obviously, there are two reasons for all the white heat and white light around HTML5. First, HTML-based software has historically provided a better user experience compared to what went before. Everyone in our profession knows that building a good user interface is maddeningly difficult. The discovery, in the early Web browsers, that reasonably-typeset text which embedded simple forms and hyperlinks, and came equipped with a “Back” button, hit the biggest 80/20 point ever in the history of User Interfaces, couldn’t have been predicted by anybody; but it’s as true today as ever.

Second, writing software is slow and expensive; HTML5 offers the promise that you can do less of it, go faster and cheaper, just because it works across many platforms.

And Your Point Is? · HTML5 promises to broaden the class of application problems you can solve with HTML, providing a good user experience while saving time and money. But that’s all; it’s not better because it’s “Web Technology”, it’s better because it’s better.

Except when it isn’t. Right now, there are certain classes of applications, particularly on mobile devices, where you’re going to get a better result by building a native app. Maybe even by building two or three native apps, for iPhone and Android and webOS. This is entirely orthogonal to the “Webbiness” (or not) of the technologies.

And another point: building a really hot HTML5 application that takes advantage of the nice new features is not exactly easy. Even assuming that you’re using one of the dozens of clever toolkits, it’s still not a slam-dunk. In fact, compared to the level of support and tooling you get from XCode on the Apple side or the various pieces of Android IDE-ware, HTML5 development is a major pain in the ass.

Let’s Do Scenarios · What’s the best thing that could happen? Some widely-interoperable dialect of HTML5 becomes broadly usable quicker than expected, and we get decent tooling around it quicker than expected, and the nature of the devices evolves slowly enough so as not to outpace heavyweight browser technology. In this world, software user experience is on average better and development cost is on average lower.

The worst thing that can happen? HTML5 is holed below the waterline by some combination of interpersonal toxicity and corporate land-grabs and intellectual-property litigation; doesn’t become a really appealing application platform for a few more years.

But the best case doesn’t help the Web, as such, all that much, and the worst case doesn’t really damage it. Because every interesting application, more or less, is already a Web application.

Once again, HTML5 isn’t better because it’s a “Web” technology. It might prove to be a user-experience and developer-productivity win. That’d be nice. But I’m neither holding my breath in anticipation nor losing sleep over delays and obstacles. The Web will do OK.



Contributions

Comment feed for ongoing:Comments feed

From: William V. (May 06 2010, at 13:53)

Still not convince there isn't a difference between Flash + Native Apps, on the one hand and HTML + RSS/Atom on the other. In the sense of how much they *contribute* to the Web.

Sure, native apps are *on* the web, but by and large they only benefit their individual users. HTML, RSS and the like benefit everyone by being crawlable, mashupable (huh), bookmarkable, etc. And also they are necessarily open-source which helps build expertise (who didn't learn HTML via view-source?)

[link]

From: Jochanan (May 06 2010, at 14:09)

95% of the controversy—if that's what you want to call it—over Flash and HTML5 relates to media delivery and how it's done. Rich user apps, while are of equal or higher theoretical import, are almost entirely eclipsed in economic terms by media delivery. Apple and Adobe wouldn't be in this kind of fight if Adobe's control over the end point of things like porn, tv shows, music, sound clips, etc. wasn't being challenged.

[link]

From: jared Tame (May 06 2010, at 14:15)

i also wrote on this, in response to joe hewitt's complaints: http://jmtame.posterous.com/re-the-web-sucks

[link]

From: David Stammer (May 06 2010, at 14:16)

I don't see Flash being very relevant for much longer. We redid all of our previous Flash stuff to Javascript based animations in the DirtyPhoneBook Dashboard and it works pretty well. There's no real reason to support Flash anymore when you can do practically anything with Javascript and sometimes with CSS3 animations.

With the most important mobile platforms like iPhone and iPad not supporting Flash, I also think the HTML5 future is obvious

[link]

From: Robert O'Callahan (May 06 2010, at 14:25)

By your definition, a Web browser must also be a Web app, since it deals in URIs and Web resources. But most Web developers would not think so, so I think you're defining "Web app" in a way different to most people's expectations.

Key features of Web apps that native apps don't have:

-- they run on different Web browsers and platforms, due to the magic of standard formats and APIs

-- those standards provide a lot of control over apps to the user's browser and the user (enabling, for example, Flashblock!)

-- Web apps are addressable by URI, so you can link into them as well as out of them

That means native apps can't be as "Webby" as HTML5 apps.

[link]

From: brian gillespie (May 06 2010, at 14:33)

It was nice of you to make a grammar error in the second sentence of your post. Helps me weigh the value of your opinion vs Ben Ward's.

[link]

From: Mark Phillip (May 06 2010, at 14:35)

"Well, the user experience, which in my experience is fourth-rate for anything but games; No “Back” button, feaugh."

Seriously? You lose all credibility when you make a statement like this.

[link]

From: radley (May 06 2010, at 14:46)

It's easy to dismiss Flash if your background is in programming. But Flash is entirely relevant (and dominant) from a content and publishing perspective.

This new battle is really between engineers and creatives, not HTML5 and Flash. Engineers seem to think that by applying the word "standards" to their views they're free to ignore and override anything borne of the creative industry.

Might be wise to look on the other side of the fence before making the same mistakes and assumptions of your peers.

[link]

From: John (May 06 2010, at 14:47)

Isn't the point of HTML (whatever flavor) to build an easy-to-implement content delivery system that anyone can connect to and use with common browser software?

What am I missing here?

[link]

From: Jay Fienberg (May 06 2010, at 15:09)

One subtlety to all this depends on how finely you'd like to be able to hyperlink. Native apps, Flash and HTML each emphasize different opportunities for linking out and in to text, video, audio, app tasks, etc.

For example, the Twitter hash tags work better as links, in and out, in some native Twitter apps, then on the Twitter website. Linking out from a point in a Flash video seems more do-able at this point than from HTML5 video. Linking into a section in an HTML5 web page is more do-able than linking into a section inside a Flash object on a web page.

I think HTML5 and beyond should keep making better ways for linking to be part of the "standard" web browser. But, the standard web browser is going to be continue to be augmented by other apps that surf the web via URLs delivered or derived in ways more diverse than HTML.

[link]

From: May (May 06 2010, at 15:26)

Thanks for this balanced view! Nice relief from ideological hyperventilation and egregious grammar botch ridden pieces available elsewhere.

I know Flash devs are attracted to HTML5 already, for the love of tinkering with new technology... which might help scenario #1 become reality. Expect a few silly blinking CPU hogging annoyances along the way, but it'll be good for the web in the long run for sure.

There'll always be a demand for flashiness and we know prohibition didn't work. If you want to kill Flash crank up browser performance a few notches (currently still not satisfying, sorry @see http://craftymind.com/guimark2) and outflash Flash.

@William

Flash pieces these days are crawlable, mashupable and bookmarkable.

Open-source? Please view-source in gmail. Modern web apps are obfuscated, nothing to be learnt.

[link]

From: Michael Martin (May 06 2010, at 17:09)

Well as you describe someone has to take the reins (ie Google) as if solely left to the W3C they are already proposing to resolve standardization in 2022.

,Michael Martin

[link]

From: Ian Hickson (May 06 2010, at 19:06)

Which ocean?

[link]

From: Mike (May 06 2010, at 20:00)

The whole Flash/NoFlash thing is not a battle between Engineers and Creatives (as mentioned in one of the previous comments). You might see it that way, but what it really comes down to is a battle between those who really do understand the web & how technologies work, and those who picked up a "Learn Flash in 24 hours" and became professional Flash developers.

For those pro Flash developers, a web without Flash is a frightening place. They don't want to learn Javascript, CSS3 and HTML5 - they *like* their comfortable Flash development environments. To them, Flash is a critical tool that puts bread on their tables. They don't see the problem with giving one single company the keys to the content of the internet... even though these same developers complain about Apple's locked-down App Store environment.

Meanwhile, those folks out there who really *grok* the way the net works see Flash for what it is: an increasingly irrelevant proprietary tool whose market is slowly being eroded by newer technologies. They recognize that this has happened before & is the natural lifecycle of proprietary technologies on the net (remember when you needed RealPlayer to view *any* video on the Internet?) - who even bothers with RealPlayer anymore?

We're going to ask the same thing of Flash ... sooner rather than later.

[link]

From: Peter Keane (May 06 2010, at 21:41)

@Ian Hickson not sure which ocean Tim Bray refers to, but two-way communication (WebSockets), web storage, and structured data in HTML (including 'micro' in the name just makes it *seem* like less of an ocean than it is) for three.

[link]

From: Den (May 06 2010, at 22:43)

I am glad that mobile browsers are step ahead in HTML5 support. A lot of benefits for us, as developers. Check out for example Geo Messages http://servletsuite.com/geomessage

it is HTML5 only and it was no way to do that before

[link]

From: Sam Johnston (May 07 2010, at 00:03)

Hopefully we won't have to endure another major, long overdue overhaul of HTML (thanks in no small part to strategic missteps ala XHTML), rather adopting new tags as they are defined. In fact an IETF Internet-Draft style process for maintenance (e.g. defining <video>) could work quite well here.

[link]

From: Loren (May 07 2010, at 02:13)

Radley's comment was spot on. The whole Flash vs HTML5 issue has more to do with perspective than technical merit. The people that say "nobody" uses Flash live in a very different world from the people who actually do use it. Programmers consider very different use cases from the content creators.

The issue is that the web is only concerned with data transactions on resources; native apps care about the part in between each request. As much as HTML5 improves, it will never give you as much power as a native interface. Not in every case, anyway. And because it can't fill every use case, this means there is room for things like Flash.

[link]

From: Aniket Ray (May 07 2010, at 02:44)

You say that a large part of "web" should happen in native applications separately for Android, iPhon and WebOS.

I think you should consider that many of these applications actually make more sense to be flash applications than anything else. If they become flash applications people across different platforms (say even blackberry) would be able to access them and would maintain the "openness" of the web.

[link]

From: Héctor (May 07 2010, at 02:53)

As somebody else already said:

"Flash pieces these days are crawlable, mashupable and bookmarkable."

It's been that way for some time. With SWFAddress you can add browser history support to SWFs, among other common things.

I don't use Flash for web developing, but all developers I know that do so, make sure to make their sites with support for these things.

[link]

From: Izzy (May 07 2010, at 04:42)

Methinks you have produced a flacid "counterintuitive perspective" article with a tagline that will be taken completely out of context. Now that this "fragment" has been spotlighted by The Code Project news, I hope you are prepared to be branded as the guy who said HTML5 is unimportant. Kind of funny that you bag on Ben Ward for "rambling" in the middle of this vacuous flappage. Maybe you deserve to be misquoted.

[link]

From: Robert Young (May 07 2010, at 05:37)

-- The discovery, in the early Web browsers, that reasonably-typeset text which embedded simple forms and hyperlinks, and came equipped with a “Back” button, hit the biggest 80/20 point ever in the history of User Interfaces, couldn’t have been predicted by anybody

That's just a flat out LIE (or incompetent memory, which would be worse). You web Kiddies (recognizing that Mr. Bray, per se, is of a more advanced age) refuse to accept that what is herein described is what *nix/database/VT-100 coders had been doing for more than a decade before. And more than that, they had a character mode interface, while the browser was/is a block mode interface from the 1960's mainframe world.

[link]

From: RazorX (May 07 2010, at 07:51)

The biggest enemy for HTML5 is not Flash, it’s the browser. HTML5 will suffer greatly over the next 5 years while it patiently waits for people to upgrade their browsers. Right now the HTML5 non-capable browser share is IE6, IE7, IE8 for 47.89% | Firefox 3 for 3.80% | Firefox 2 for 1.31% | Opera 10 for 1.42% all of which totals: 54.42% of the global browser population that cannot utilize HTML5. The share of HTML5 capable browsers is still a minority in Firefox 3.6 for 15.66% | Firefox 3.5 for 11.46% | Safari 4 for 5.09% | Chrome 4 for 6.46% which totals to 38.67%.

The historical numbers and updating patterns show that people are “very slow” to upgrade their browsers and because of that, HTML5 will be slow in its deployment from developers. Even when IE9 eventually comes out it will take years for people to upgrade their browsers to it and HTML5 needs the 47.89% IE group to upgrade to IE9. The problem is this, even though IE8 was released in March 19, 2009 (still a solid year later) only 24.67% of the global browser share is owned by IE8. And 23.22% still use IE7 and IE6, which were released almost 4 years ago on October 18, 2006 and almost 9 years ago on August 27, 2001 respectively.

So because HTML5 is solely dependent upon people upgrading their browsers, it will literally take another 5-6 years before developers will have enough of an HTML5 capable browser share before they can really start coding for it. And five years from now the Web and Flash will have grown into something entirely new! At the moment there is not a single HTML5 web site that can even “half way” compare to the functionality of a Flash site and being able to play simple video and audio is hardly anything to shout about. The problem is that professional developers are not going to deploy HTML5 code when less than half of the browser population can’t even see or utilize it. Scream all you want about HTML5 being the future or even a Flash killer, but the future will demonstrate that the speed of HTML5 to the game will be too little too late.

[link]

From: Carson Chittom (May 07 2010, at 07:52)

@Mark Phillip: You wrote, "'Well, the user experience, which in my experience is fourth-rate for anything but games; No “Back” button, feaugh.'

Seriously? You lose all credibility when you make a statement like this."

Mr. Bray's statement, on the contrary, seems self-evident to me; your obvious and vehement disagreement makes me wonder if there are data I've overlooked. Please elaborate on your position.

[link]

From: len (May 07 2010, at 07:53)

"This new battle is really between engineers and creatives, not HTML5 and Flash."

Almost. It is between the vendors of new technologies and the financiers of existing content. Money gets spent on new tools precisely to obsolete old content by ensuring new content is desirable. Thus, "It's a fine piece, Mr. Claus, but it has to run on this new iPad my daughter just HAS to have." Adapt or die.

IOW, one view of some whose life style depends on churn in technical tools is "if you want cheap lifecycle, sculpt granite." One does wonder if there is some point at which economies begin to strain under the load of maintaining any product where obsolescence accelerates by feedback of technological churn. How much novelty is affordable?

[link]

From: zoobab (May 07 2010, at 08:07)

The standards bodies behind the Web Standards (W3C) has for a long time being infiltrated by large corporations, who are pushing for software patents on a global scale.

They are responsible for the patent mess we have now, some of them are even pushing to tax all web users in order to be able to view video on the web, such as for decoding H264 videos.

Too bad you don't mention the <video> troll, large companies are responsible for the mess and the unstandardisation of the codec for a really free web.

[link]

From: Gordo (May 07 2010, at 08:57)

One point that I have not heard mentioned much, and I think is somewhat important, is that HTML5 source is open for everyone to read. That is a great boon for developers that are learning.

Unfortunately, others see this as a huge minus. They want some sort of binary/compiled/obfuscated object to deliver. They don't want HTML5 that anyone can read and reverse engineer. These are usually businessmen and the creative people that they employ.

Free (as in freedom) code is something that they can't as easily control. This is the one reason that I think Flash or something like it, will not be disappearing completely from the web anytime soon.

[link]

From: JulesLt (May 07 2010, at 12:21)

On view source - in the early days, true - the layman could - and did - learn HTML from existing content.

These days, that is increasingly difficult - particularly when JavaScript enters the picture.

It seems to me that you need to at least understand the DOM and the CSS layout model.

[link]

From: Captain Insano (May 07 2010, at 12:51)

The current state of web development -- a hodgepodge of html/javascript/css trickery -- although wildly successful, seems like a disgusting ugly mess to me. A new HTML spec doesn't fix this. Although I am no particular fan of Flash, at least it provides a unified development platform that makes some sense.

[link]

From: Markus (May 07 2010, at 13:43)

>Maybe even by building two or three >native apps, for iPhone and Android and >webOS. This is entirely orthogonal to >the “Webbiness” (or not) of the >technologies.

Except that there are no native apps for WebOS, since they run in a webkit-browser and are html5/css/javascript (with the palm supplied mojo javascript framework to tie everything together).

[link]

From: Dusty (May 07 2010, at 22:31)

Dismissing Flash/Actionscript as a tool for people 'afraid of the web' and who are unable to actually program is absurd. Do I have to remind you that the only reason Actionscript 3 isn't the next version of Javascript is because the W3C didn't think Web developers could understand packages and strong typing?

It seems that about 1/2 of the community around AS3/Flex consists of people who have migrated over from 'Real' programming languages, like C++ and Java. The libraries and frameworks that have evolved in our community show this: DI, IoC and MVC frameworks, ORM and other data management, 3D Rendering, Image/Video/Audio processing, Cryptography, etc.

So whatever you might think of Flash, keep in mind that it took 9 years for jQuery (the 'first' and most popular 'js framework) to be released, while it took less than a year for AS3 developers to write and release their first 3D engine.

Show me an HTML(5 or otherwise) that is as awe-inspiring as http://ecodazoo.com/

Flash/AS3 is a convergence point... it has great creative tools coupled with a powerful language that is comfortable to Java/C++/C# developers. The language and runtime are actively innovating, rather than stagnating for more than 25 years(HTML4:1997 - HTML5:2022).

I, for one, look forward to the time when advertisers realize they can write annoying ads in HTML5 that will be much more difficult to block. When HTML 5 is known as the gutter of the internet, because all annoying and spammy ads are created with it. But even when that happens, you won't find me insulting all HTML5 developers because of it.

[link]

From: Someone (May 07 2010, at 23:29)

I care about a few things:

1) Could it have been universal?

Flash yes, HTML5 yes.

2) Are both specs in the open, royalty free?

Flash yes, HTML5 yes mostly, tho video codec

3) Has the organizations responsible for each spec been a douche?

Flash no?, HTML no?

4) Does performance and compatibility vary widely between browsers?

Flash performs ok-good / compatible yes

HTML5 performs poor-good / compatible no

Why don't you let the end-user decide which they want instead of making the decision for me?

If HTML5 becomes superior, it will replace Flash. As of right now, I prefer Flash sites because they perform well for me on my 6 year old rig with any browser I use.

[link]

From: Jim Holmes (May 08 2010, at 08:37)

Aside from a few “fanatics”, everybody knows that if you were color blind, Captian Marvel and Superman are the same guy. Sure, they have different back stories. Sure, they have different personalities and there are some subtle nuisances that distinguish the two characters. But essentially they have the same powers, roughly the same build, roughly the same costumes (skin-tight outfight with a cape and a weird symbol on their chest), both fly around, and both are nearly indestructible.

If a giant space monster was demolishing your city, I don't think one would really care if Captain Marvel or Superman showed up to uppercut it back into the stratosphere, just as long as it got done.

However, there are plenty of fanboys out there that will have arguments for days over who would win if Captain Marvel and Superman got into a battle royal.

This essentially describes my confusion the past few weeks when I have overheard, or have been unfortunate enough to be a part of, these arguments. Anyone in our industry has no doubt been sucked into these “discussions”, prompted by Jobs open letter, Adobe's rebuttals and the changes to the Apple SDK, and the surrounding controversy.

But I think before we really get caught up in which technology is better, which one is antiquated, and which one needs to die, I think it would be beneficial to step back and actually define some common terms.

1) Language: JS vs AS

AS3 and JavaScript are both siblings languages and almost structurally identical. Aside from the differences between the JS prototype model and the more systematic class structure of AS, they are both fairly elegant dialects of ECMAScript that effectively straddle the line between OOP and functional programming. They really only start to diverge once you start talking about libraries and frameworks that wrap around them. ActionScript has access to the flash framework and JS has the DOM.

The only DOM level that is currently fully implemented on all browser is DOM Level 1. That spec was recommended in 1998... DOM Level 2 was recommended in 2000, DOM Level 3 in 2004. It is now 2010 and DOM2 still not fully supported by any browser on the market (Firefox gets the best marks). During that time, there have been 8 major releases of Flash, including 2 major language revisions (AS2 and AS3). With that lens, its very hard to justify the claim that Flash is a dinosaur from an era gone-by. In fact, JS seems to be the one living in the past.

Also, what feature sets are available vary wildly from browser to browser, platform to platform. What good is an “open standard” if the standard is not implemented and the “standard” isn't standard. What you get are libraries like jQuery and Prototype, and while they are both great/solid libraries, their usefulness would be substantially mitigated if the web standards in place we just that: Standard.

You wouldn't need abstraction, browser rectification if all browser just worked the same. Most of the basic things one needs jQuery for could be replaced with the existing DOM specifications for xpath and addEventListener, and other DOM functionally. The problem is Browser A supports xpath but not addEventListener, Browser B supports addEventListener but not xpath. And Browser C doesn't support either.

Its sucks.. A LOT.

Another major difference here is delivery. ActionScript is compiled to AVM before getting to the client and just needs to be executed. There are both commercial and performances advantages to treating scripts in such a manner.

JavaScript, on the other hand, is sent to the client as text, that needs to be parsed, interpreted and executed. There are little advantages to sending JavaScript, most large web apps end up having to obfuscate and minify their javascript before sending it, which doesn't increase parsing speed or performance. Just makes it impossible for a human to read. All of the disadantages of pre-compiled bc, but none of the advantages.

2) Canvas vs Sprite

The Flash framework has the Sprite class for low-level drawing functions, while HTML5 has the canvas element. Both provide a rectangular surface to draw on.

For example from the mozilla Canvas tutorial:

ctx.fillStyle = "red";

ctx.beginPath();

ctx.moveTo(30, 30);

ctx.lineTo(150, 150);

ctx.bezierCurveTo(60, 70, 60, 70, 70, 150); // <- this is right formula for the image on the right ->

ctx.lineTo(30, 30);

ctx.fill();

vs an exmaple in actionscript:

pen_mc.lineStyle(0,0x000000,100);

pen_mc.moveTo(100,100);

pen_mc.lineTo(200,100);

pen_mc.lineTo(200,200);

pen_mc.lineTo(100,200);

pen_mc.lineTo(100,100);

pen_mc.beginFill(0x000000,100);

pen_mc.lineTo(400,100);

pen_mc.lineTo(400,200);

pen_mc.lineTo(300,200);

pen_mc.lineTo(300,100);

Not really that much of a difference between the core drawing interfaces.

However there are some not-subtle differences between the implementation once you scratch the surface, namely, namely how the two interfaces treat “children”.

I use quotes because the canvas element has no awareness of children. When using canvas, it all boils down to one long sequence of drawing commands that are applied to element. It does provide a context stack, where you can push and pop different coordinate systems, which I think is an intriguing low-level approach, but doesn't really get around what is a fundamental difference between the core library implementation. In the AS3 Spite class is ultimately a container. It has the ability to not only draw on itself, but also encapsulate other sprites into a display list.

In AS3, the sprite inherits from the DisplayObjectContainer, which provides nesting and encapsulation functionality for other DisplayObject classes. Meaning a Sprite can exist inside of another sprite. The top-level object in Flash being the Stage also inherits from DisplayObjectContainer. This means that you can essentially have a Sprite that has no visual representation because its a child of any element whose parent is the Stage.

HTML5's canvas is, without question, a considerably less elegant approach, simply wrapping some low level drawing functions onto a rectangle. As its implemented now, the canvas element really represents a throw-back to mid 90's graphics programming. A pre-flash, pre-OOP view of graphics and drawing. You simply have a list of commands that you want to do.

And while this interface is good enough for screwing around, writing little tests in your spare time, but for anything more complex, or needs to be developed in a reasonable amount of time, and needs to have a maintainable code-base, then your requirements start to change. Its like asking a programmer why they are using Lisp rather than writing bytecode directly.

Very soon, higher-level frameworks for working with the canvas tag will become available. Many of them will probably be based off of the flash framework, simply because its approach is a good idea. Whatever you may think of the implementation of flash, structurally its library is a fairly solid abstraction of the low-level drawing methods. However, just like currently 3rd party DOM abstraction libraries, performance and availability of features will be determined by the lowest common denominator of implementations across several different browsers maintained by different companies, governed by a standards committee that has no ability to enforce said standards.

So if 3rd party frameworks will need to be built on top of the “open-standard” of HTML5, is there really a difference, or an advantage to ridding the web of Flash if just another batch of middle-ware will have to spring up to fill the void.

On a side note, Animation using HTML5 Canvas is really heinous, there are no built in constructs for animation, tweens or any programming helpers. With a lack of frameworks, all solutions must be hand-rolled. The best you can do is use JS's setInterval()... So for all you mobile guys out there that think that flash performance sucks on mobiles and HTML5 animation will be a godsend, I think you need to re-eval that statement.

3) Video: H264 vs... H264.

Its really hard to justify this argument either way, though I do think that Jobs makes a relevant (albeit misleading point). Flash's biggest drawback when dealing with video is lack of hardware acceleration, which decreases CPU usage and power consumption. However, its not like there is a serious technological impediment to giving flash access to hardware acceleration on those devices, unless you just don't want to.

4) WebSockets vs flash.net.Socket.

I think developers need to really think long and hard whether this type of network communication is not only required, but is even relevant in the context of web applications. If you require this type of communication, then maybe the web browser isn't the place for you application. I mean, the theory sounds cool, but in practice... I'm not so convinced. I have yet to hear a really compelling argument for it.

...the list goes on

My point being, that the two share more in common than they don't. They both aim to solve the same problem, just approaching it from different angles. As 3rd party frameworks evolve, they will share even more in common than they do now, abstracting away the mundane implementation details into something that is useable. And all of the complaints that are currently being lodged against Flash will be (or already are) true for HTML5/JS/CSS. You can't diss Superman and defend Captian Marvel at the same time. They are too similar to break apart.

Most of the complaints that I hear lodged against Flash, are going to be problems that HTML5 is going to have to address, sooner rather than later. You can't design away stupid. And there are a lot of stupid programers out there, and they are going to write bad code, and its going to affect the user-experience. Namely, people are saying they had Flash because ads crash their browser. Guess what, if ads are written in HTML5, and they are still written using the terrible coding standards they are currently using, its still going to crash your browser. Who do you blame then?

If the past two decades of web standards adoption have been any indication, and the inability of the major players involved to reach any sort of consensus, I don't think that we should be too quick to throw flash under the bus, simply because Jobs says its the past. It might just leave us longing for the simpler days when you could just use one API, and +90% of the web could see exactly what you wanted publish.

And while this may come as a contradictory shock, I'm really not that big of a fan of Flash, and try never to use it for any web projects, simply because I think it goes against the nature of web applications. There is a certain advantage to web application development using REST architecture, rather than projecting desktop application paradigms into the web. I guess I still see Flash for what it really is, a vector based Animation tool. Even after two decades, it still excels at that.

Use technology where it makes sense...

[link]

From: Left waiting (May 11 2010, at 09:35)

@ Dusty - well after a while, I did not view the "awesome" site you referenced. I got tired of "loading..." x more messages to load the basic app, then the application portion with a "loading..." indicator that seemed to move slowly and closed that site window.

[link]

From: Shilster (May 20 2010, at 01:25)

RazorX is dead on...no need to add anything further...but I will anyway... :)

Listen, it all boils down to the job at hand. If you wanna rip out a simple Web site in a day including some cool cropped / shadowed photos, an EZ products / services page, a coupla requisite "contact us", "about us" & "privacy" templates, etc. then you use HTML / CSS...no muss, no fuss.

However, if you want to create a supercharged, alcohol-burning, interactive 3D animated masterpiece, you'd better at least consider Flash...or be one helluva Javascript / CSS guru or gurette.

This ain't your fathers Oldsmobile folks...

...Flash is no longer just a creative tool in the hands of the wanna-be-a-software-developer marketing manager...it has truly become a lethal developers weapon.

If you don't believe that statement, clearly you've never seen the business end of the AS3.0 base / foundation classes.

Adobe is a little arrogant yes, and they may have rubbed Mr. Jobs the wrong way...but they have a right to be sofware-proud of what they've accomplished, they create kick a$$ tools that WORK...across all browsers and platforms.

HTML5 & CSS3 ? Yes, I'll support 'em when they're ready, 'cause they have great potential ...but that potential won't be realized in 2010, or even 2011 me thinks... :)

[link]

author · Dad
colophon · rights
picture of the day
May 05, 2010
· Technology (90 fragments)
· · Web (396 more)

By .

The opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.

I’m on Mastodon!