MetaCard Corporation

MetaCard 2.5 Reviewers Guide

This document is designed to help product reviewers understand what MetaCard is and what it can be used for, where it came from, how it is marketed and sold, and give some idea of what it will look like in the future.


MetaCard Specifications

Product name: MetaCard
Product version: 2.5
Product category: Cross-platform application development, multimedia authoring, CBT development, and programming instruction tool.
Availability: April 2003
Pricing: $995 for 1 year subscription including technical support for a single-user/all platform license. Significant discounts for academic users and multiple-user license packages.
Upgrade pricing: Free for users with a current subscription. Subscription renewal is $300 per year, with discounts for academic and multi-user licenses. Unlimited technical support via email is $200 per year after the first year.
System requirements: Authoring, all platforms
16MB RAM
800x600 display resolution
8, 16, or 24/32-bit color

Deployment of minimal app, all platforms
2MB RAM + OS requirements
no resolution requirements
monochrome or better screen depth

Mac requirements
68030 or better with System 7.1 or higher

Windows requirements
Windows 95/98/Me/NT/2000/XP or Windows 3.1 with Win32s

Technical Support: Free unlimited technical support via email with a current technical support subscription.
Phone support available at extra cost.
Training: Available on-site or at MetaCard Corporation headquarters.
Pricing information available upon request.
Distribution: Available via electronic means directly from MetaCard Corporation world-wide. Local dealers available in Europe and Pacific Rim countries.

What is MetaCard?

MetaCard, like its cousins HyperCard, SuperCard, and ToolBook, is a difficult product to "pigeonhole". It has characteristics of high-level application development tools like Visual Basic and Delphi (a GUI IDT, scripting language, script editor, and script debugger). It has cross-platform support like Java and some 4GL-based products. It has data management and query features like databases such as Oracle, Sybase, Access, and Filemaker. It has multimedia capabilities comparable to dedicated multimedia authoring tools like Macromedia Director and the slide-oriented format found in presentation tools like PowerPoint. Finally, it has text management and hypermedia capabilities found in document preparation tools and Web browsers.

While the resulting combination of these characteristics could suffer from the "jack of all trades, master of none" syndrome, a remarkable synergy occurs instead. As users come to expect multimedia features and well-integrated context sensitive documentation and task-oriented wizards in all of their applications, tools that have been designed from the ground up to present these capabilities in a unified architecture have distinct advantages over tools that have them grafted on.

The MetaTalk scripting language has been designed to be the easiest to learn and easiest to use general-purpose scripting language available. It can be learned as easily as so-called "visual programming" tools, yet is free from the profound limitations that are characteristic of those tools. The MetaCard development environment is also designed to be easy to learn and easy to use, and non-programmers can master the tool much more quickly than they could conventional programming tools like Visual Basic or Dephi.

The MetaTalk scripting language is compatible with the HyperTalk language used in HyperCard and the SuperTalk language used in SuperCard, but has many extensions. For example, HTTP support is built in, as is support for arrays and regular expression pattern matching. MetaCard supports the full range of features required for UI development including controls like combo-boxes and a tab control, and support for all types of dialogs (popups, modal and modeless dialogs, and floating palettes). Most of the popular extensions of SuperCard over HyperCard are also supported, including full color support, the "graphic" object, backdrop windows, and functions and properties like "within", "hilitedLines", "insert script", and "lockCursor". Most newer HyperCard features are also supported including shared/nonshared text and button hilites, and "start using".

Target Market

The MetaCard installed base is as broad as for most other horizontal-market products, with no one industry or type of application predominating. Scientists, engineers, and other technical professionals use MetaCard to build specialized data analysis, simulation, and presentation tools. Multimedia professionals use it to produce interactive product brochures and Computer Based Training packages. Educators use it to produce interactive courseware, demonstrations, and to teach programming and multimedia development. Technical writers use it to produce on-line help systems and documentation indexes and directories. Corporate and government software development departments use it to produce in-house and commercially distributed applications, rapid prototyping, and to build customized software development tools. Small independent software developers use MetaCard to build custom software applications for their clients. Hobbyists and other end users use it to learn programming and to build productivity enhancing tools for their own use.

The size of the installed base by platform ranks UNIX, Windows, Mac. Sales rates currently rank MacOS, Windows, UNIX, however, so the relative position of these platforms in the installed base will probably begin to equalize over the next year.

History of the Product and Company

MetaCard Corporation was formed in 1990 to develop easy to learn and easy to use multimedia and application development tools for UNIX workstations. The design goal was to produce a product that was compatible with HyperCard, but with full support for all the control and dialog types required to build any type of application.

The 1.0 version of MetaCard was released in June of 1992, the entire development environment of which was built in MetaCard. Since then, the development environment for every MetaCard release has been built exclusively with MetaCard itself, making it unique among high-level development tools.

In the 1.X series of releases (1.0-1.4), most of the extensions over HyperCard made by the SuperCard developers were added to MetaCard, including a compatible "graphic" object that supports vector-graphics, and many SuperCard-specific language features. Compatibility with HyperCard was also improved, and the HyperCard file format was reverse-engineered to allow loading HyperCard stacks directly into MetaCard without requiring a preprocessing step.

There were two major areas of development for the 2.0 release. The first was a complete rewrite of the language execution system to improve performance and add features not available in other xTalk languages. The resulting "virtual compiler" technology offers performance comparable to byte-code interpreted languages like Perl and Java, and which is at least 5 times faster than the partial compilation compilers used in comparable tools including HyperCard and SuperCard. It is up to 30 times faster than languages that rely on conventional interpreters like JavaScript and the UNIX shell languages.

A superset of HyperTalk, the MetaTalk language now has advanced language features not found in HyperTalk and OpenScript (the HyperCard and ToolBook scripting languages, respectively). For example, like Perl, MetaTalk supports associative (string-indexed) arrays and regular-expression pattern matching, features that ease processing of complex files like HTML forms and mail folders. MetaTalk also has more specialized language extensions including call-by-reference arguments, delayed-event scheduling commands, and the ability to manipulate binary data (including NULL or 0 bytes).

Support custom (user-defined) properties was also added to all object types for MetaCard 2.0. This feature makes it even easier to use object-oriented techniques to develop GUI applications. MetaCard custom properties are also persistent and support triggers which call scripts when the properties are queried or set, supporting the most common applications of OO database techniques without requiring the use of complex (and expensive) C++ based OO database products.

The second major development for MetaCard 2.0 was the isolation of all OS-specific routines into separate modules. This greatly simplifies the job of porting MetaCard to other operating systems. The first port was to Windows 95/NT, which was released with MetaCard 2.1 in early 1997. Support for Windows 3.1 under Win32s was added for the 2.1.1 release in August 1997. The 2.2 release added support for the Macintosh.

Stacks are portable to different platforms without requiring recompiling or other preprocessing. In most cases, all that will be required when first moving a stack to a new platform is to make minor adjustments in object sizing and spacing to compensate for the fact that fonts are slightly different on each platform. After making these changes the stack can be used on all platforms without further modifications.

Applications developed with MetaCard can be distributed with the MetaCard engines (similar to a Java virtual machine or the Visual Basic DLL) without paying royalties. The only restriction on the operation of these stacks is that there will be a limit on the length of scripts that can be set on-the-fly in this environment. The "do" command is still available, however, so this restriction will have little or no practical impact (the "do" command is one of MetaTalk's most powerful because it allows you to build up a series of commands into a variable and then execute them, something that isn't possible with Java or any other 3rd generation language).

How MetaCard is marketed and sold

MetaCard is sold primarily direct from MetaCard Corporation. The MetaCard Starter Kit can be downloaded from the MetaCard WWW and FTP sites (http://www.metacard.com and ftp://ftp.metacard.com, respectively). It can also be sent out via email and on CDROM, floppy disks, or DAT or QIC format tapes. Resellers in Europe and the Pacific Rim can offer native-language pre-sales and technical support (30% of MetaCard sales are to customers outside the U.S.).

The MetaCard Starter Kit is fully functional, except that there is a limit on the number of statements you can put in the script of each object (currently 10 statements, which doesn't count the "on" and "end" handler definitions, if-then, repeat, switch-case, or comment lines). Installation of a software license key enables the full functionality of the product. The key can be acquired by filling out the licensing form and faxing, emailing, or HTTP POSTing it in to MetaCard Corporation along with a Purchase Order or credit card number (credit cards numbers are encrypted prior to transmission via email or HTTP).

Pricing is $995 U.S. Dollars for a single-user all-platform license (no need to buy a separate product to develop or deploy on a given platform). This includes free unlimited technical support via email.

The full range of marketing techniques are used to promote MetaCard, including advertising, PR, and participation on CD-based promotions. The single most important source of leads comes via electronic methods such as WWW searchs, links from other WWW sites, FAQ lists, newsgroups, and mailing lists.

Limitations

The MetaCard development interface is relatively generic in look and behavior because it must run on all platforms and because it receives lower development priority than improvements to the core engine. The highest priority for MetaCard development is to provide the ability for developers to create applications that pass muster as native applications, not necessarily to provide them with a development tool that itself is the best example of a native application on each platform.

Likewise the MetaCard development environment is relatively simple compared with some other IDEs, although it does include things like an debugger and an autoformatting/colorizing script editor that some other tools lack. Again, MetaCard's unparalleled adaptability and extendibility makes it easy for developers to mold the development environment to suit their needs.

MetaCard has relatively limited support for platform-specific component models like OLE/COM/ActiveX. These can be used from externals, but it is not a trivial matter to do this. Of course, it's seldom a trivial matter to acquire, pay for, and use these components in Windows-only products and of course all hope for portability vanishes once the decision to use these components is made.

Cut/Copy/Paste support is currently limited to text. The inability to use the system clipboard to transfer image data may seem to be an inconvenience but is not actually a problem in practice: bitmap data passed via the clipboard is uncompressed and so is in an inappropriate format for inclusion in a stack anyway (developers should import PNG, GIF, or JPEG format images instead so that they can take advantage of the superior compression controls available in specialized image editing tools). PICT data passed on the clipboard could not be viewed on UNIX or Windows systems because they do not provide support for PICT like MacOS does. PICT data is therefore also unsuitable for cross platform development and so the inability to cut/copy/paste it is not a significant limitation.

Features planned for future releases

Features planned for upcoming releases include improved table support, SSL, and extended access to QuickTime features like sprites and text tracks. New high-level language features, such as "columns" as a chunk type and "file" as a first level object type, are also planned.

A method for outputting Java byte-codes equivalent to MetaCard scripts has been designed, but implementation has been delayed until the serious performance, compatibility, and functionality limitations in Java have been rectified.

The MetaTalk language will also be extended to provide a more full featured object-oriented programming environment, which will allow development of larger-scale applications with MetaCard. The key tenants of object-oriented programming - encapsulation, polymorphism, and inheritance - are already available in the MetaTalk language, but must be extended before MetaCard will be as appropriate for large multi-developer projects as it is for the single-user projects that are presently its forte. These features and OODBMS features such as multiuser access, version control, and distributed data management are currently being designed.


MetaCard Snapshot 1

Snapshot of the MetaCard demo stack and development environment. Click on the image to see the full-sized version.

MetaCard Snapshot 2

Snapshot of the MetaCard syntax-colorizing script editor. Click on the image to see the full-sized version.

Additional MetaCard Snapshots

Product Info | Overview . Features . Pricing . HC/SC/OMO . RG . K-12