When I was twelve, I spent $3.95 on a book that promised to teach me how to do magic tricks that would astound my friends. I didn't make it past the second chapter ("No way---I have to practice!?"), but I still remember the way the word "misdirection" was set in bold face every time it appeared. The key to making a trick work, the book said, was to get the audience to focus their attention on something else. That way, by the time they realized the trick was happening, the hard part would already be over.
A similar effect seems to have played a key role in the success of some of today's biggest software technologies. Unix, DOS, Perl, the web---they all just kind of grew while the grownups were worrying about something else, until one day, everyone turned around and said, "Hey, this is huge!"
- It has a clean, C-like syntax, and a very conventional imperative programming model, so there are no immediate obstacles to adoption.
- It offers everything that have dynamic languages popular, including free typing, first-class everything, garbage collection, and a rich set of built-in tools.