SuperTalk

Last updated

SuperTalk is the scripting language used in SuperCard. SuperTalk is a descendant of HyperTalk.

Contents

Extensions to the HyperTalk base language

Additional syntax

One of the most powerful features SuperCard adds to the HyperTalk language is user properties. Where HyperTalk had a fixed set of properties on its objects, SuperCard scripters can use the define property propName command to add new properties to buttons and fields. These properties can contain arbitrary text (including numbers and object references, which are also represented using text in xTalks), and even dumps of entire files.

SuperTalk provides several variations on HyperTalk's answer and answer file commands, which let one choose several items from a list, choose an icon from all available icons, pick a MIDI instrument to play sound with, or choose a file of a supported image format (including a preview), or disks and folders. Different from HyperTalk's dialogs, SuperTalk answer and ask dialogs do not all resize dynamically to hold more text. However, since SuperCard allows having cards (i.e. "pages") in windows of arbitrary types, one can easily build one's own dialog that is large enough. SuperTalk also has an alert command that displays standard system alert windows and sheets, including standard system icons.

A switch command is available for more readability in complex conditionals, and various types of media can be recorded (e.g. screen grabs of a card, sound and QuickTime movies). There is also a clone command that is equivalent to copying and pasting but leaves the clipboard unchanged, an enumeration command that creates global variables with sequential integer values, and recently MetaCard's familiar repeatforeachitemx command for iterating through lists was added.

SuperCard also offers exception handling using a try statement with associated throw command.

Differences and incompatibilities

SuperTalk came with a source-level debugger well ahead of HyperCard, but the SuperTalk debugger is a modal window and does not let you set breakpoints by just clicking beside a line. A special trace command is used to enter the debugger, where one can then view the currently executing line of code, execute commands, evaluate expressions etc. Because of that, the SuperTalk debugger has to be explicitly turned on instead of being available right away when a script error occurs.

The visual effect command is a little stricter in its syntax, but in exchange supports numerous additional transition effects, including QuickTime transitions and special plug-in modules (stored in data fork resources of type TRAN). A special kind of external command that does not get unloaded and can own a window has been added. Its type is XRTN. It differs noticeably from the XCMD protocol, and also doesn't use the xWindoid protocol later introduced for adding windows to HyperTalk.

SuperTalk also uses a launch command for starting up external applications, different from HyperTalk's open command, which SuperTalk uses for opening its various windows (HyperTalk deviated here by using gotostack"foo"innewwindow).

Richer object model

Of course SuperTalk also exposes SuperCard's expanded object model, making it possible to create sliders, scroll bars, progress indicators and other scales, scriptable paint and draw graphics, and native listbox and first-class menu objects. Multiple windows with several styles (modal panel, non-modal, scrolling, resizable..., floating palettes) are also available and focus and activation scope can be modified under full script control.

Deviations

Some parts of SuperCard deviate from the English-like-ness of HyperTalk. This includes the alert command, which tried to emulate the slightly awkward syntax of the answer command a bit too much. Also, it seems that over time, a number of XCMDs were simply rolled into the engine as built-in commands, maintaining the not very memorable handler call syntax. The most obvious case here is the movie function, where movies are kind of "invisibly tacked on" to a window instead of being implemented as real controls like sliders or other elements. There are also some properties that control general application behaviour that are one-to-one translations of the underlying system APIs, e.g. for using "appearance manager" (the theming engine in Mac OS 9).

Related Research Articles

<span class="mw-page-title-main">HyperCard</span> Hypermedia system for Apple Macintosh and Apple IIGS computers

HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web.

VBScript is a deprecated Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

Visual DialogScript (VDS) is an interpreted programming language for Microsoft Windows, using dialog and graphic elements to create programs. VDS is similar to other programming languages such as Visual Basic, C++, or Delphi, as they use Windows API.

HyperTalk is a discontinued high-level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. Because the main target audience of HyperTalk was beginning programmers, HyperTalk programmers were usually called "authors" and the process of writing programs was known as "scripting". HyperTalk scripts resembled written English and used a logical structure similar to that of the Pascal programming language.

AppleScript is a scripting language created by Apple Inc. that facilitates automated control over scriptable Mac applications. First introduced in System 7, it is currently included in all versions of macOS as part of a package of system automation tools. The term "AppleScript" may refer to the language itself, to an individual script written in the language, or, informally, to the macOS Open Scripting Architecture that underlies the language.

<span class="mw-page-title-main">Dialog box</span> User interface element

The dialog box is a graphical control element in the form of a small window that communicates information to the user and prompts them for a response.

Lingo is a verbose object-oriented (OO) scripting language developed by John H. Thompson for use in Adobe Director. Lingo is used to develop desktop application software, interactive kiosks, CD-ROMs and Adobe Shockwave content.

<span class="mw-page-title-main">ActionScript</span> Object-oriented programming language created for the Flash multimedia platform

ActionScript is an object-oriented programming language originally developed by Macromedia Inc.. It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript, though it originally arose as a sibling, both being influenced by HyperTalk. ActionScript code is usually converted to byte-code format by a compiler.

An alert dialog box is a special dialog box that is displayed in a graphical user interface when something unexpected occurred that requires immediate user action.

<span class="mw-page-title-main">Control Panel (Windows)</span> Component of Microsoft Windows and Windows Server

Control Panel is a component of Microsoft Windows that provides the ability to view and change system settings. It consists of a set of applets that include adding or removing hardware and software, controlling user accounts, changing accessibility options, and accessing networking settings. Additional applets are provided by third parties, such as audio and video drivers, VPN tools, input devices, and networking tools.

<span class="mw-page-title-main">SK8 (programming language)</span>

SK8 was a multimedia authoring environment developed in Apple's Advanced Technology Group from 1988 until 1997. It was described as "HyperCard on steroids", combining a version of HyperCard's HyperTalk programming language with a modern object-oriented application platform. The project's goal was to allow creative designers to create complex, stand-alone applications. The main components of SK8 included the object system, the programming language, the graphics and components libraries, and the Project Builder, an integrated development environment.

thinBasic is a BASIC-like computer programming language interpreter with a central core engine architecture surrounded by many specialized modules. Although originally designed mainly for computer automation, thanks to its modular structure it can be used for wide range of tasks.

Microsoft Script Debugger is relatively minimal debugger for Windows Script Host-supported scripting languages, such as VBScript and JScript. Its user interface allows the user to set breakpoints and/or step through execution of script code line by line, and examine values of variables and properties after any step. In effect, it provides a way for developers to see script code behavior as it runs, thus eliminating much of the guess-work when things do not quite work as intended.

The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. As of macOS 10.12, Xcode is available as a free download from the Mac App Store.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

<span class="mw-page-title-main">Firebug (software)</span> Web development add-on for Firefox

Firebug is a discontinued free and open-source web browser extension for Mozilla Firefox that facilitated the live debugging, editing, and monitoring of any website's CSS, HTML, DOM, XHR, and JavaScript.

<span class="mw-page-title-main">PowerShell</span> Cross-platform command-line interface and scripting language for system and network administration

PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform on August 18, 2016, with the introduction of PowerShell Core. The former is built on the .NET Framework, the latter on .NET.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a computer program by inputting lines of text called command-lines. Command-line interfaces emerged in the mid-1960s, on computer terminals, as a user-friendly alternative to punched cards.

<span class="mw-page-title-main">PyScripter</span>

PyScripter is a free and open-source Python integrated development environment (IDE) for Windows. It is built with Delphi's Object Pascal and Python.

References