MetaCard Corporation

FREQUENTLY ASKED QUESTIONS

For more questions and answers about MetaCard, see the old best.com MetaCard mailing list archives and old runrev.com MetaCard mailing list archives and new MetaCard mailing list archives, indexed records of all messages posted to the metacard mailing list. To search the new archives use the Google site search. For an updated FAQ and other information on MetaCard, see the Cross Worlds Computing site. Because the MetaTalk language used in MetaCard is a superset of the HyperTalk language used in HyperCard, the sites HyperCard Home Page, , and HyperCard Heaven may also be useful places to get more information.

1. What is MetaCard?

MetaCard is a graphical application development and multimedia authoring tool for Windows 3.1/95/98/Me/NT/2000/XP, UNIX/X11, and Macintosh systems that is similar to such PC/Mac products as HyperCard, SuperCard, and ToolBook. It can be used to develop GUI applications, GUI front ends to shell scripts or other character based applications, Computer Based Training (CBT) systems, on-line help systems and other documentation, and interactive presentations.

The basic design is similar to commercial GUI builder systems such as Visual Basic on MS-Windows or UIM/X for X11/UNIX, but MetaCard is much easier to use, and also has multimedia features found in presentation packages and text management features found in document preparation packages.

The MetaCard application consists of an engine, which is specific to each computing platform, and a set of stacks, which are portable. There are 4 primary stacks distributed with the product: mchome.mc is the Home stack and controls the licensing of the product, mctools.mc is the development system stacks including the menus and dialog boxes, mchelp.mc is the on-line documentation, and mcdemo2.mc is a multimedia demonstration stack.

MetaCard is a product and registered Trademark of MetaCard Corporation, and has been in development since 1990 and in commrecial release since June 1992.

2. What kinds of things are people building with MetaCard?

A wide range of products have been built with MetaCard. See the Applicationspage for examples.

The primary use to date has been to develop GUI applications, application prototypes, and GUI front ends to command-line applications. In many cases these applications are in continuous use in production environments.

The second most common use is probably for on-line presentations and demonstrations. The royalty-free distribution policy combined with the interactive nature of the presentations make it a natural for producing demonstrations for use in kiosks, trade-show booths, multimedia CDROMs, and other free-running presentations.

The third most common application is for building on-line documentation and training packages. In most cases, MetaCard is used as a supplement to a large application, but it is also being used to document company policies and procedures.

These categories by no means exhaust the potential range of applications of MetaCard.

3. What platforms will MetaCard be ported to and when?

MetaCard 2.4 currently runs on 11 UNIX platforms: SPARC SunOS 4.1.X, Solaris SPARC, Solaris x86, SGI IRIS, HP-9000 700/800, IBM RS/6000, Linux Intel, LinuxPPC (and MkLinux), BSD UNIX, Darwin (the UNIX underlying Mac OS X), and SCO ODT/UnixWare. The Win32 engine runs on Windows 3.1 (with Win32s), Windows 95/98/Me, and Windows NT/2000/XP. The MacOS engine runs on 68K and PPC Macs running MacOS 7.1 to 9.X. The Carbon engine runs on Mac OS X.

Contact MetaCard Corporation if you want to see MetaCard ported to other OSes.

4. What other products are most similar to MetaCard?

There are several products use the same language and object architecture as MetaCard. These include:
 HyperCard (Mac)
 Apple Corporation (APDA)
 1 Infinite Loop
 Cupertino, California 95014-2084
 (716) 871-6555
 (716) 871-6511 (fax)
 hypercard_feedback@apple.com
 http://hypercard.apple.com/

 SuperCard (Mac)
 IncWell DMG, Ltd.
 P.O. Box 6761
 Chandler, AZ 85246-6761
 (530) 647-8541
 (530) 647-8157 (fax)
 info@incwell.com
 http://www.incwell.com/

 Serf (Mac)
 Dan Gelder
 2557 Center Road
 Novato, CA, USA 94947
 serf@best.com
 http://www.best.com/~serf/
 
 HyperSense (NeXTStep)
 Thoughful Software
 616 East Locus
 Fort Collins, CO  80524
 303-221-4596
 info@thoughtful.com
 http://www.thoughtful.com/
The product WinPlus, formerly Spinnaker Plus, has been discontinued by ObjectPlus Corporation. Oracle Media Objects (OMO), which was also based on the Plus technology, has also been discontinued. An early HyperCard workalike for Windows, Echelon's WindowCraft, was discontinued long ago largely because of the superiority of the Plus technology. Plus has in turn been surpassed by MetaCard.

MetaCard is also often compared with products like ToolBook, Director, Tcl/Tk, Perl, and Visual Basic because it can be used to develop the same kinds of products these other tools are used to develop.

5. How difficult is it to learn to use MetaCard?

Although HyperCard and ToolBook are frequently classified as end-user programming tools, make no mistake: scripting is programming, and to get the most out of products in this genre a substantial time investment is required. On the other hand, because of its high-level features and relative freedom from syntactic constraints, scripting in MetaTalk is far easier than C/C++/Java or Visual Basic programming, or writing scripts for awk/Perl/Tcl, any of the UNIX shell languages, or AppleScript. It also requires less training to become proficient at MetaCard than is required to learn so-called "no programming" authoring tools based on iconic development environments.

The MetaCard integrated development environment (IDE) makes is easy to develop complete applications with a minimal scripting, something that is not possible with tools like Tcl/Tk or the COSE Desktop Korn Shell (dtksh) in which even the user interface must be constructed by writing scripts.

MetaCard is currently targeted at technical end users; a level of computer experience somewhere between the average word processor user and the average 'C' programmer. Experienced programmers should be able to become productive with MetaCard in just a few hours (going through the tutorials should be sufficient).

Less experienced users can use MetaCard, but will require more time to come up to speed (days to weeks). The one exception is that when used as part of a large project, it is usually possible to generate template MetaCard stacks that even inexperienced users can use to quickly implement dialogs and menus.

6. MetaCard vs. HyperCard, SuperCard, ToolBook, etc.

Of these other applications, MetaCard is most similar to SuperCard. Most of the extensions SuperCard has made over HyperCard have been included into MetaCard. These include: support for color, managing dialog boxes, object (vector) graphics, multiple selection list boxes, and a wide variety of additional commands, functions, and properties.

The MetaTalk language has many features that make it superior to all of these other products, such as support for associative (string or number) arrays, call by reference parameters, extensive pattern matching and string formatting features, and the capability to handle much larger amounts of data (e.g., you can put multiple megabytes of text into fields). MetaCard's script compiler also provides much greater performance than is available with these other tools. See the Benchmarks page for details.

MetaTalk supports custom (user-defined) properties, similar to those supported in ToolBook and Oracle Media Objects. It also has getprop and setprop "triggers" which are called when custom properties are set or retrieved, a important feature missing in OMO and SuperCard, and inconvenient to use in ToolBook.

MetaCard can import and run HyperCard 2.3 stacks as well as stacks produced with earlier versions of HyperCard. Due to minor differences between HyperCard and MetaCard, and between the Mac Toolbox and X11 or Windows (e.g., the use of different fonts), most stacks will require minor changes to make them function correctly after importing. Sounds, icons, and cursor resources are converted on input, but all other resources are discarded. The Mac version of MetaCard supports HyperCard format XCMDs/XFCNs, but use of these is discouraged because of their relatively poor performance and lack of portability. The MetaCard XCMD/XFCN interface is compatible with HyperCard's, so if you have the source code to the externals used in a stack, you should be able to use them with MetaCard with minimal changes.

Since the MetaCard development environment is very different from HyperCard's, scripts that alter the HyperCard development environment (by accessing the Mac menu bar or palettes or debugging features) won't run correctly in MetaCard. MetaCard's support of the HyperTalk doMenu command is rudimentary because of this limitation. Instead, MetaTalk has most of these features built in, and these commands/functions/properties should be used instead of doMenu.

There are many instances where the HyperTalk parser is more lenient than MetaTalk's. For example, the use of the word "the" in function and property names is more strictly enforced in MetaCard. Another potential trouble spot is that HyperCard allows predefined terms, such as function and property names, to be used as variable names, whereas MetaCard generally does not.

Since MetaCard has many more built-in commands, functions, and properties than HyperCard, it is much less tolerant of leaving quotes off of literals than HyperCard. The SuperCard-compatible feature "explicitVariables" allows you to set MetaCard's script compiler to flag unquoted literals as errors.

MetaCard is slightly more lenient than HyperCard when addressing objects. When a button or field is specified in MetaCard, both cards and backgrounds are searched, as a opposed to HyperCard where buttons are searched for on cards, and fields on backgrounds. You can override this behavior by using the word "card" or "background" in the object specification.

MetaCard Corporation encourages users to report any incompatibilities they find to help achieve the goal of making MetaCard capable of importing and executing a greater percentage of HyperCard stacks unmodified in the future. When in doubt, consult the MetaTalk Reference stack to verify whether a feature is supported or not.

A utility that converts SuperCard projects to MetaCard stacks is available in the file "sctomc.sit" on the MetaCard anonymous FTP sites. As with HyperCard stacks, 100% conversion is not possible, but significant problems with this converter should be reported to MetaCard Corporation as bugs.

7. MetaCard vs. Tcl/Tk and the Desktop Korn Shell (dtksh)

All three packages have the same goal: to make developing GUI applications faster and easier than is possible with conventional approaches based on C or C++ and the Xt/Motif toolkit. All three are based on an interpreted language with powerful string manipulation capabilities and have a simplified way of interaction with a GUI toolkit.

The packages differ in the way they are distributed, the complexity of their languages, the completeness of their development tools, their performance, and in their support for multimedia and object persistence.

Tcl/Tk is a free source-ware package that can be acquired via anonymous FTP from several Internet sites, although the commercial (and expensive) Tcl Pro development environment is required to do serious development with it. A C development system is generally required to compile and install it. The Desktop Korn Shell is distributed with the COSE desktop system by most computer vendors, though it is also available as a commercial product from additional companies. MetaCard is a commercial product available via anonymous FTP and CDROM from MetaCard Corporation and distributors worldwide.

MetaCard has the simplest scripting language to learn and use, and is also the most complete language since it has a larger number of built-in commands and functions. Tcl and ksh are syntactically much more complex, and require complicated quoting, parenthesizing, and other syntactic hurdles for most common operations. They also lack support for audio, video, animation, hypertext, and an object oriented message passing architecture.

MetaTalk scripts run up to 30 times faster than equivalent ksh scripts and significantly faster than equivalent Tcl scripts in most cases. This is due to the fact that MetaCard uses a virtual compilation architecture similar to that used by Perl and Java, whereas ksh use a conventional interpreter and the Tcl language design makes it impossible to compile many scripts even when a byte-code compiler is available. See the Performance Benchmarks page for details.

MetaCard and dtksh both have the Motif look and feel. Tcl/Tk looks similar to Motif in some ways, but is very different in others. dtksh, since it is based on Xt/Motif, is the largest and slowest of the toolkits. It also lacks the support for object graphics found in the other two packages.

MetaCard is the only product with a full featured IDE (Interactive Development Environment). With the others, design and layout must be done by writing scripts, which takes far longer. The free versions of these tools also lack such essentials as a script debugger and packaging tool for building standalone applications, whereas MetaCard includes all of the key features found in the relatively more expensive Tcl Pro product including a syntax checker, a script debugger, and an application packager. MetaCard also has the best cross platform support (dtksh is not portable to non-UNIX systems, and Tcl/Tk support is relatively limited on Windows and very weak on MacOS).

MetaCard is also the only tool to support object persistence. With the other tools, all information such as the text in fields and the state of buttons must be saved and loaded using the scripting language. This is a tedious and time consuming process for all but the most trivial applications.

A more extensive comparison of MetaCard with Tcl/Tk and the Desktop Korn Shell (dtksh) appeared in The X Resource Issue Eleven (Summer 1994), an O'Reilly & Associates publication (707-829-0515) (this article is also available as Interactive GUI Development Environments.

8. MetaCard vs. Gain Momentum and Icon Author

These three packages are used to develop interactive multimedia presentations and computer-based training. The products differ widely in price, but also in scale.

MetaCard and Gain Momentum both are scripting language-based, whereas Icon Author is based on a visual programming metaphor. Which of the two approaches is better depends a lot on the particular task. Categorizing the task is not easy, but is essential if the proper tool is to be chosen.

If the presentation or training package is relatively simple, or if the information to be presented is well structured, the icon-based approach taken by Icon Author and Authorware and similar products can be a very efficient way to build a package. There are many potential obstacles in this approach, however, and some of them are insurmountable. See the Testimonials page for one example.

If the information to be presented must be linked by hypertext links, if the path through the presentation must be changed dynamically, or if the user interface of the presentation must simulate an actual application, the scripting language / GUI toolkit approach is usually better.

The primary differences between MetaCard and Gain Momentum are price and scope. Gain Momentum costs much more than MetaCard and run time fees must also be paid. A Gain Momentum presentation also requires several times the RAM and disk space a comparable MetaCard presentation requires. Gain Momentum does include a more extensive range of file format conversion utilities and a full object-oriented database, and so may be a better choice for the development of very large systems.

9. MetaCard vs. FrameViewer and HyperHelp

All three products are used to deliver on-line documentation, in some cases as context-sensitive help for another application. All three products support hypertext links, and can display text using multiple fonts, sizes, and colors, and can display images and other graphics.

The primary advantages of MetaCard are its lower cost and greater flexibility since it has a scripting language, which the others lack. The primary advantage of the other products are that they can use the same source as is used to print hardcopy documentation.

10. MetaCard vs. UIM/X, TeleUse, XDesigner, etc.

All of these products are used to design and lay out GUI applications. The primary differences is that MetaCard is a complete, integrated environment, whereas the others are merely layout tools (UIM/X and TeleUse have limited interactive capabilities, but nothing near the scale provided by MetaCard (or Tcl/Tk or dtksh, for that matter)). The other tools require that complicated and bug-prone C or C++ code be written to manage the user interface. You also can't use the tool itself to edit the tool. For example, such MetaCard dialogs as the "Utilities" stack couldn't be developed using these other tools.

In addition, these other tools cost a lot more than MetaCard, and since they use the poorly designed Xt/Motif toolkit, they are much slower, require considerably more computing power, and are harder to learn and to use than MetaCard. Applications developed with Xt/Motif are also not portable to other platforms.

FAQ | Overview . Licensing . How To . Common Problems . Consultants . Testimonials