Dabble in Programming with Revolution Media
Revolution Media takes the Hypercard model and brings it screaming into the 21st century, extending its programming-for-nonprogrammers capabilities to things like XML and Internet access while still keeping the simple, flexible, English-like language. At $49, it's a powerful and inexpensive tool for a variety of programming concepts--but it also shows where the old model has fallen a bit behind the times.
"Hypercard," you say? Sit down and let your grandpa tell you a story. Back in the late 1980s, Apple Computer started bundling a little program called Hypercard in with all of its Macs. This program was far ahead of its time, allowing you to build a GUI (Graphical User Interface) without programming, then wire up code to it. It was also extensible, and began being used for everything from adventure games (the precursor to Myst used Hypercard) to front ends to corporate databases. Apple really didn't know what to do with it or how to market it, though, and it languished and finally died as programs like Visual BASIC embraced, extended, and exterminated.
First, the good news: The program is as easy as the old Hypercard was. You literally draw out your interface using a wide range of controls such as fields, buttons, tables, and so on. Then you add functionality by writing small scripts. You can create libraries of functions and subroutines, or put all your code into the objects themselves. Your program consists of "stacks" of "cards", each card containing its own objects and data. For users new to programming, the language is simple and yet complete, with all of the expected control structures. By default, the language can be more verbose than many professional programmers prefer, but while there are ways to make it terser, you'll never mistake it for C or PERL.
The bad news--the cost of this simplicity is that the program is "object-like" rather than truly "object-oriented", and if you don't know what that means, you probably don't care. There is not an easy way to create, say, a text field with inherited behavior that all future text fields share; you must manually add a script to each field to give it the functionality you want. (You can, of course, copy and paste the object, but then if you want to change the functionality, you must change it in each copy of the field.) The other alternative is to design a custom control, but that requires programming in a different language.
Revolution is best used for interface-intensive applications working with mostly static data. It's ideal for kiosks or interactive demonstrations, front ends to databases, and presentations. It's not something to use to write the next Word or Warcraft in, though it can be used to design casual games. The Media version cannot make true stand-alone executables; although the more expensive Studio and Enterprise editions can. Last of all, Revolution is cross-platform for the PC, Mac, and Linux, providing functionality similar to Java but with a much smoother learning curve.