- Clash of the Type Models
- The Question of Speed
- Availability
- Dynamic Languages Are Fun!
Dynamic Languages Are Fun!
One of the drives behind the dynamic language renaissance is that these languages are starting to put the fun back into programming. Probably the biggest driver of this change is Flash. Although expensive (and proprietary), Flash is a really nice development environment. With Flash, you can produce simple games easily, without having to think about boring things like drawing in code. It uses a dialect of JavaScript that has the same relation to Smalltalk that ECMAScript has to Self (that is, the same semantics but ugly syntax).
Squeak has a more primitive drawing model, but allows a similar level of interaction. With either of these tools, you can draw, and the things you draw are real objects. You can then write code for controlling them and get an interactive, graphical program working immediately. A plug-in is available for Squeak that lets you run it in the browser, but it's not widely used.
Possibly more interesting is Dan Ingalls' Lively Kernel, which reimplements the Squeak UI in JavaScript, allowing you to run the same kind of applications as you would in Squeak in a browser.
When I started programming, at the age of seven, creating fun toys was my primary motivation. In many ways, it still is, with my secondary motivation being to simplify work tasks so I have more time to spend playing with these toys. The current generation of dynamic languages have a much lower barrier to entry than the languages available to me on an 8086 in the 1980s.
If you want to pick up a language now and start producing fun programs, a dynamic language like Smalltalk or JavaScript—or even something like Python with a few game frameworks—is the ideal choice.