When I was 13 years old I wanted an Atari 800 computer. I wanted it to play all the great computer games I saw on the shelves at the local computer store, HW Computers, and because it came with the BASIC programming language. Not only could you play games, but it came with the tools to make your own. After getting an Atari 800 for Christmas that year, I spent countless hours programming in BASIC. BASIC was very easy to use with the Atari 800. You plugged in the BASIC cartridge, and restarted the computer. As soon as it booted you could start programming, you could run your programs, and you could save them to floppy disk. It was easy, accessible, and addictive. The power to sit down and create something quickly and run it was intoxicating. I spent the next 3 years programming games, applications, demos, animations, and everything in-between. Once I got a modem, I could upload those programs to BBS and share them with the world.
One of the main problems with programming in BASIC was that is was never as fast as compiled Assembly Language programs. In fact, the idea of writing compiled Assembly always held its ugly head above me, taunting me to its’ abyss. I knew I should have learned it, but BASIC was too easy, and too much fun, and it was free. An Assembly language compiler for the Atari 800 cost $100’s of dollars. For a teenager like me into the 80’s, that amount might as well have been $ millions. What I gave up in speed and sophistication by using BASIC, I gained in accessibility and ease of use. BASIC was there. The tools were there. All I needed was a power outlet to plug into my computer, and I could sit down and create almost anything I imagined.
While I never learned Assembly language on the Atari 800, my first job out of college required me to learn 8086 Assembly language, and I jumped into that project with as much vigor as learning BASIC 10 years before. I credit that easy access to Atari BASIC for preparing me to learn the later technologies that helped me forge a career in software development.
In the same way, the HTML Canvas may never be as performant or feature-filled as Flash, but it might not have to be. Flash (or something similar) will always exist as the premium choice for interactive web content, but the Canvas may very-well be the answer for the curious masses of all ages: an easy to use, accessible language that can be used by nearly anyone to create neat stuff with almost no tools beyond a web browser and a text editor. Sure, it takes some time to learn, but so did BASIC. However, I learned BASIC because it was so easy to get my hands on, not because it did everything for me out of the box. The HTML 5 Canvas appears to have the same advantages.
Imagine this scenario: You buy a Google Chrome OS Pad the day it is released. You fire-up the Chrome Web Browser, and go to directly the offline (or online) Google Docs. In Google Docs, you create an HTML document, that includes a <canvas>. You save it, and then view it in Chrome. It looks neat, so you make a few changes, and view it again. Program some more, view it, and the iterations continue. This process is nearly identical to starting-up an 8-bit computer in the 80’s with BASIC and programming. Nothing more is required beyond what was provided with the machine. Nearly every barrier to entry has been lifted. Furthermore, in this same scenario, once you have completed your application, you can package it up and distribute it in the Chrome OS Web Store, sharing it with the rest of the world.
This is why the Canvas excites me. Not because it’s a Flash killer, on the contrary. It’s more like a gateway drug. It can get new programmers interested by ease of use, and get them addicted to software development, just like BASIC did for the computer owners of the 80’s. If this low barrier to entry helps get kids (of all ages) interested in programming, then the Canvas will prove its worth very quickly. When they start building their own creations, they will learn the thrill of controlling a computer through their own imagination. When the skills of these users mature, they might be ready to invest their time and money into a technology that can really take them to the next level in power, sophistication and security for their applications. In this way, the HTML 5 Canvas could be the best thing that has ever happened to Flash.