Accessibility

Table of Contents

Flash: Ten years, ten perspectives

Colin Moock

Years of Flash experience: 10

Colin Moock

Colin Moock is the author of five best-selling books on ActionScript, all published by O'Reilly Media, Inc. Moock's works include ActionScript: The Definitive Guide, ActionScript: The Definitive Guide for Flash MX, Essential ActionScript 2.0, and Essential ActionScript 3.0. Moock is a regular speaker at international Flash industry conferences, including FITC, Flash Forward, and Adobe MAX.


How did you get started in Flash?

It was 1995. I was in graduate school at the University of Waterloo studying English literature. Before grad school, I used a computer mostly to create Microsoft Word documents and play games (lots of games). Once in grad school I got access to networks, e-mail, NNTP, MUDs, and the web—and I was hooked. I loved everything about social computing. My girlfriend showed me how to make a simple web page, and that led to working on the university website.

One of my professors heard that I was into HTML and passed my name on to a company named SoftQuad, makers of an HTML editor called HoTMetaL. They needed help with their website, so I joined to help work on it.

SoftQuad was pretty serious about the technology. They had people sitting on the W3C and were involved with directing the evolution of SGML, HTML, and XML. One day, while working for SoftQuad, I received an e-mail from FutureWave Software—makers of FutureSplash, which would later become Flash—wanting to know if they could send me a complimentary copy of FutureSplash. They wanted SoftQuad to consider deploying their plug-in on our website. I installed the program and played with it—I always had an interest in art and animation, so it seemed kind of fun. But at the time, I didn't want to force a plug-in installation on our website's users, so I roundly turned them down.

I wish I still had that e-mail!

How have you used Flash in the past and how do you use it today?

I came to Flash without much programming experience. I had dabbled a bit in BASIC, Perl, HTML, and JavaScript but I didn't have a computer science degree or any formal training. I approached it more as a designer and as an artist/animator.

But I had to solve some programming problems, even in Flash 2. The first major programming problem I faced in Flash was launching a pop-up window from a Flash movie. There was no information available about how to do that at all. I went through all sorts of tricks with JavaScript to try to get it to work properly. It's easy now but at the time it seemed like a big deal. That kind of triggered an interest in the possibility of integrating code with the animation side of things, and so I became more interested in programming. There was a freedom to "doing it yourself" instead of relying on a programmer to do it for you.

When Flash 4 came out, everyone was creating dynamic art and generative interfaces. All of a sudden those kinds of tasks were approachable because they came in a designer's environment. I didn't have to learn C++. I didn't have to get a computer science degree to make some programmatic content appear onscreen. As I got more and more interested in what was possible, I started specializing more in programming.

In the days of Flash 4 and 5, I was working at an agency called ICE where I ended up programming quite a lot for client projects. At the same time, I started writing books for O'Reilly about programming in Flash, so I had to give myself a crash course in computer science for the sake of writing about ActionScript.

By the time Flash 6 was released, I stopped doing client work and focused entirely on ActionScript research and personal projects. That is where I am today. I spend maybe 70% of my time writing books that explain ActionScript programming. I don't even talk about the Flash authoring tool anymore; I just focus on the language. The other 30% of the time I get to play with code and ideas, mostly in multiuser environments.

What does Flash mean to you personally?

On a personal level, I've met a lot of extraordinary people all over the world, and I've made many close friends. Because Flash combines so many disciplines, the Flash community is full of people with really interesting and diverse backgrounds. There seems to be a kindred spirit running through it; we're all problem solvers and inventors.

On another level, through Flash I can share and explore ideas. For example, my website, moock.org, gives me a place to obsess over minutiae with other Flash programmers. It also offers an environment for experiments in multiuser artwork. My home page itself is one of those experiments—a multiuser social space that makes people communicate in a way that they haven't communicated before. The amount of effort I would have had to put into creating the same type of computer-based experience in another language, or using other tools, would be too time-consuming for me to consider. I'd have to handcraft so much of the content that it wouldn't be worth it. But with Flash I can do it.

So Flash has been sort of a gateway to exploring my ideas.

What does Flash mean to you professionally?

It's my whole career at this point. Everything I do professionally is explaining Flash or working with Flash. It used to be just one of the many things I would do, one of the skills that I had to offer as a general web developer. Now it's everything.

What has Flash taught you about software development and the web?

Don't get overly stressed about whether the code is clean, or whether you're doing it the best possible way or the most efficient way. If you can get something going, and it's doing what you want it to do, then it's good—it's done.

Flash is about exploring things and producing the content that you want to produce at the level you're at, at that time. No matter what your level of knowledge is, you can always produce something worthwhile. In fact, people just starting out often produce the most interesting content.

In programming, you go through a constant learning cycle where you look back at an old project and think, "I could have done that so much better. And here are all the things I could have improved, and this is what I could have added."

At any given point, you just have to say, "This is what I'm capable of and this is how I'm capable of doing it, and that's good enough." As long as it lets you express what you wanted to express, or build what you wanted to build, then that's all you need to know. You don't need more theories than that.

Which feature(s) of Flash amazed you the most, and why?

Movie clips in Flash 3 was a huge change for me in the way I understood computer science. It moved me toward an understanding of object-oriented programming through visual, tangible content. When you make a movie clip instance, you're creating it from this symbol thing that's a template, exactly as you create objects from classes in object-oriented programming.

In Flash 2 you drew on one frame and you changed things on the next frame, and that made animation. But in Flash 3, when movie clips came around, you could create animations as these little reusable modules called movie clips. That was very different than what a paper-based animator could do, and it helped me move from traditional animation to generating programmatic content.

Another big Flash feature for me was XML sockets because it opened up the multiuser world to me.

How has Flash enhanced your creativity?

Flash hasn't given me more creativity, but it has allowed me to follow up on the creative ideas I've had.

Using Flash feels almost like carpentry: You build up these little widgets like a mad scientist or inventor who's carving little robots out of wood. It has this very hands-on, physical builder's appeal to it, and that was good for me.

I'm not much of a mathematician, so when I program I depend on building logical systems more than raw mathematical skill. Flash is a builder's world that I understood, so it helped me express ideas on a computer that I might not have been able to produce otherwise.

What's your favorite Flash tip or lesson?

Get your project scope signed in writing—and save often!

What cautionary tale can you relate to other developers?

Flash is great at doing many things but, like every environment, it has its limitations. Don't try to make Flash do something it can't. Set the scope of your projects to suit the limitations of the target environment.

Where will Flash be 10 years?

There are two sides to that question. First, what's going to happen to Flash Player? Second, what's going to happen to the Flash authoring environment?

As for Flash Player, I think it has achieved so much momentum that in 10 years it will be used on many nondesktop devices—ones that don't require a heavy-duty operating system, like cameras—or in control panels for home security systems or in-car navigation systems. Those systems might run Flash Player as a kind of miniature operating system that interfaces with the hardware.

In the desktop world—that is, the web-browser plug-in and future desktop player—the future seems less certain to me. It depends on how quickly Microsoft moves in on the territory. On the desktop, Flash succeeds because it gives users the "rich experience" (motion graphics, branded interface) that they don't get from the operating system. Flash is basically a preview of what a lot of desktop computing experiences really should be like. Hence, I imagine Windows, Mac OS, and Linux will eventually natively provide everything that Flash provides, but at the operating-system level.

That said, 10 years is really the short run. Longer term, I think that even using a web browser or a desktop computer as a means of interacting with the content on the Internet is, itself, something that will disappear. Matt Nagle's grandkids will think it was "quaint." After that—well, you've seen The Matrix, right? Conversations about the future of computing get dark pretty fast for me.

OK, back to 2006. The Flash authoring tool is the other side of the question. There are quite a few animation tools on the market, and there are many programming tools. But there aren't very many development tools that let you combine those disciplines the way Flash does. With development tools being what they are today, including Flash, it takes a lot of work to make a beautifully handcrafted, unique, custom-designed interface, or a custom-designed game or marketing piece. I think the future of Flash depends on its ability as an authoring tool to improve on that enterprise of creating the rich experience. Animation on its own is not unique, and programming is not unique, but I think where those two cross paths is incredibly important territory. Authoring tools like Flash are just starting to address that union. Flash has inspired such creativity and exploration because it brought those two worlds together.

Now that ActionScript 3.0 and Flex Builder 2 have brought traditional programming tools to the Flash world, I hope Adobe can put renewed energy into the development of Flash as a tool for creating rich content.