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.
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 MarketThe 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 CompanyMetaCard 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.
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 soldMetaCard 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.
LimitationsThe 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 releasesFeatures 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.
Snapshot of the MetaCard demo stack and development environment. Click on the image to see the full-sized version.
Snapshot of the MetaCard syntax-colorizing script editor. Click on the image to see the full-sized version.
|Product Info | Overview . Features . Pricing . HC/SC/OMO . RG . K-12|