Rick Grehan
In 1986, long before the concepts of object-oriented, RAD (rapid application development), and visual programming became fashionable, a database applications builder called Magic, which embodied all of these concepts, showed up. Magic (Magic Software, Irvine, CA, (714) 250-1718) runs under DOS, Unix, and VMS and will soon (possibly by the time you read this) have a Windows version. Magic produces code that is easily ported across the above-mentioned operating systems; supports more database back ends than I can spend space listing; and is definitely worth investigating.
Let me clarify. Magic is object oriented in the sense that the entities you define--data types, files, and even programs--are stored centrally in tables for easy reuse. Additionally, references are alwa
ys made to the original definition. So if you define a "vendor number" data type and use it to define fields in multiple files in your database, a later redefinition of vendor number will require that you edit only its original definition.
As for being RAD, Magic is truly "programming that is not programming." This, admittedly, takes some getting used to. For instance, you do not build an application by writing procedural code, as you would in C or C++. Nor do you build an application by populating a form with visual objects (e.g., buttons and scroll bars) and then attaching code to the objects, as you would in, say, ObjectView or PowerBuilder. Magic does provide visual objects--pull-down and pop-up menus, data-entry screens, and so forth--and, therefore, is a kind of visual programming.
But working in Magic is an act of winding through a forest of nested dialog boxes, filling in fields as you go. It's like high-altitude, top-down programming. The designers of Magic have identified all the high-
level procedures that anyone might conceivably need to manipulate a database (and there are surprisingly few); building an application means specifying the order of execution of those procedures.
You might wonder if Magic may be missing that one procedure that your application will need. It's unlikely. I haven't come up with anything that it can't do, and the third-party reviews I've read about earlier versions of Magic (I used version 5.60) suggested no one else has, either. Even if you do have some wacky procedure that Magic can't handle, you can extend the system with user-defined procedures and functions that you write in C (libraries for Borland and Microsoft C are provided with the DOS version).
Understand, however, that although Magic promises rapid application development, it does not promise rapid proficiency. If you come from a procedural-programming background, as most of us do, getting up to speed in Magic will require a lot of mental gear-shifting.
You should work diligently
through the provided tutorial; this is not a system that you can simply jump into and instantly begin swimming. Once you get going, though, the results should prove to be pretty spectacular.