The MetaTalk language has all the features common to third-generation languages like C/C++/Java but has a much simpler syntax. The language supports all modern programming constructs such as if-then-else, repeat statements, switch-case, and local and global variables. MetaCard subroutines and function handlers support variable length argument lists, recursion, and a flexible message passing architecture.
MetaTalk also has extensive support for user-interface development. For an example of the power of the language and GUI toolkit, one has to look no further than the MetaCard development environment, which itself was developed in MetaCard. Not only does this demonstrate MetaCard's capabilities, it also provides a benefit unavailable in any other development system on any other platform: complete control over the development environment.
Any dialog, any menu, any error message, and all documentation can be enhanced, extended, or even replaced by any licensed MetaCard user. Why live within the static environments supported by other Motif and hypertext environments when you can have complete control with MetaCard?
A C based extension capability allows MetaCard to be used to develop computationally intensive or hardware dependent applications. You can call C or C++ functions directly from MetaCard with no relinking or other processing required. HyperCard-compatible XCMDs and XFCNs can be used directly on the MacOS version of MetaCard, and easily ported to the other platforms using the HyperCard 1.2 compatible callback API.
An embedded version of MetaCard is also available so that you can attach the MetaCard scripting language and graphical tools directly to a C or C++ application. MetaCard also supports conventional interprocess communication using POSIX standard I/O functions on Windows and UNIX systems.
MetaCard stacks consist of a collection of resources and event handlers, an architecture similar to most other GUI-based application development environments. The resources are the descriptions of the look of the interface including the sizes, positions, colors and other attributes of the buttons, text fields, and other controls.
Unlike many other development tools, however, MetaCard objects are not constructed in the application code. Instead, they are read directly out of the editable resource files, called stacks. So instead of hard-coding the application appearance or forcing users to deal with complex and easily corrupted text based resources for customization (such as .Xdefaults on UNIX systems), a direct-manipulation interface is always available.
Event handling is also greatly simplified in MetaCard. Instead of writing "callback" routines in a third generation language which require that the application be recompiled and relinked after every change, an interpreted scripting language is provided. Whenever events occur, messages are sent to handlers written in this MetaTalk language.
Errors that occur during script execution cause the MetaCard engine to stop processing, and to point out the exact line and position where the error occurred in a script editing window. After fixing the problem, the script can be rerun immediately: no recompiling or relinking is necessary. This design not only drastically reduces the time spent prototyping an interface, but also reduces the time spent testing and debugging it.
|Product Info | Overview . Features . Pricing . HC/SC/OMO . RG . K-12|