Is it ta-ta for Flash?

StobI hear you're a bit of a Flash programmer. Why is Flash in the news so much, Verity?

Flash seems to have become the whipping boy for just about everybody in the IT crowd. Now it is under attack from Authentic Steve Jobs, who won't let it play on the iPad, just because the runtime is supposedly a tad flaky.

Computer Engineer Barbie.
Click image to purchase.

Funny that. Just the other day I was thinking of learning a bit of Flash myself...

1) The kind who creates time-wasting Flash-animated 'introductions', that we all hoped had gone out of fashion circa 2005, but actually still flourish on brightly coloured websites targeting the mental pre-tweens (for example, here is an example I believe to be written by Barbie herself).

2) The kind who creates Flash-animated adverts that, when an incautious mouse pointer hovers over them, swell up alarmingly like a prawn cracker in hot fat to overwhelm the editorial contents of the browser; or

3) The kind who creates online gambling games that, by dint of many spinning, sparkling pieces-of-eight and a really user-friendly credit card entry form, contrive to tempt unfortunates into a downward spiral of gambling addiction. Like that boring vet on The Archers, for example.

Gosh, so are you an enemy of the people too, Verity?

Hardly. Actually my ActionScript efforts have been engineering applications. Can't go into details here, but take it as read that many attractive and deserving orphaned puppies have gone on to lead more fulfilled lives thanks to me.

Back in 2000, he wrote an article declaring Flash "99% bad". I suspect I wasn't alone in applying the "my enemy's enemy" principle: if Jakob didn't like it, it must be worth a second glance.

So you were one of the pioneers, were you?

Hardly. The first Flash-building tools were aimed at graphic designers, and were all about simple animations - no thought of Rich Internet Applications then. It had a really terrible scripting language containing the comparative operators lt and le for < and <=, presumably reflecting the popularity of Perl and FORTRAN among the Photoshopping community.

But then Macromedia added a version of JavaScript, 'ActionScript', to Flash.

JavaScript? An interesting choice of language in those pre-Web 2.0 days.

Yes. Back then, rather than being underpinning of the future, it was regarded as an unreliable nuisance that barely enabled a depressed HTML-cutter to animate a depressed button. I suppose they wanted to 'fit in' with ordinary web programming.

The result was messy. If one wasn't careful, the logic of the code that one wrote got scattered into dozens of little event handlers concealed all around the animation. Think of a whiteboard covered with post-it notes, with fragments of your program written on some of their undersides, you get the idea.

Still, great fun to program, I bet.

Early Flash featured the fourth worst programmer's editor I have had the honour of using, and the least wieldy debugger ever.

You are just a big old whinger. That was the beginning of Flash's glory years!

Ah yes. Exploding hamsters and hit-the-politician-with-a-custard-pie animations. Will we ever see their like again?

Fab stuff. I've still got the url of 'Lard Bucket Prescott' somewhere, must dig it out. I bet the craic was pretty good on the early web bulletin boards.

The 'craic', as you put it, was limited, because the relevant websites tended to feature Flash too heavily, and were consequently slow and unwieldy.

The early developer community was a confusing place, an intersection of the set of people who could draw a bit and people who could code a bit. When I first started googling round the blogs for gen, Flashland contained a weird mix of artistic types delightedly sharing the exciting power of the for loop that they had just discovered, and mad techies who had invented a new idiom for rebasing a class hierarchy dynamically.

Fascinating. Then they somehow made Flash go faster, didn't they?

The ActionScript language evolved, becoming more like Java. It took proposed features from the ECMAscript Edition 4 draft standard (pdf), which was going to be the brave new JavaScript. ActionScript got some static typing - whence came a lot of the speed, I believe - and more conventional support for classes: public and private, getters and setters, the class keyword itself.

So why not just program in Java, then?

Oh, they kept plenty of old JavaScript's agreeably mad features. For example its non-block scoping rules were retained, arrays were statically typed but their contents not, and so on.

Actually, being embarrassingly serious for a moment, I would say that ActionScript programming is as about as enjoyable as UI coding gets. Somehow it mixes in just the right amount of formality with expressiveness and wackiness.

Will you look at that. Old Grumpy-pants is being upbeat about something! I take it the IDE has improved, then?

Yes: FlexBuilder gives you the whole thing as an Eclipse plug-in; code is stored in proper version-controllable text files; there is a command line compiler. It's almost as good as a proper programming language.

And useful, career-wise. I mean, as soon as Firefox upgrades to ECZEMA script 4...

Cough. That's never going to happen.

What? I thought you said...

I did say. But the ECMA standardisation committee had a titanic falling-out with itself, cumulating - to Adobe's chagrin - with ECMAscript Edition 4 being abandoned.

Well, I wouldn't trust a committee that couldn't think of a better name than 'ECMAscript'.

Quite so. However, it has now sealed the deal by publishing the ECMAscript Edition 5 standard, despite the opposition of IBM, who wanted to put in a decimal floating point type.

You what?

Those radical anarchists at IBM wanted a decimal floating type included in the language specification, so that £0.20 plus £0.30 might be evaluated to exactly half a nicker, rather than the traditional binary floating point answer of 49.9999996p. The whole standardisation story is quite fascinating; view it here.

Thanks, I promise I'll watch it straight after I've finished all the cat videos on YouTube. So where does this leave Flash and ActionScript?

Standards-wise, it leaves it up the rivulet with the oar overboard. In an open-standards and -source world, it emphasises Flash's closed nature.

And otherwise-wise?

My feeling is that Adobe has not been as good a custodian of Flash as Macromedia was. For example, its refusal to patch FlexBuilder 3 to track a long-standing Eclipse upgrade comes over as arrogant and high-handed. Google has long since established it is possible to do neat client-side applications without Flash. And then there is this whole Apple/bug business. It should be more careful.