Stagecast Creator

Last updated

Stagecast Creator is a visual programming language intended for use in teaching programming to children. It is based on the programming by demonstration concept, where rules are created by giving examples of what actions should take place in a given situation. It can be used to construct simulations, animations and games, which run under Java on any suitable platform. [1]

Contents

History

The software known as Creator originally started as a project by Allen Cypher and David Canfield Smith in Apple's Advanced Technology Group (ATG) known as KidSim. It was intended to allow kids to construct their own simulations, reducing the programming task to something that anyone could handle. Programming in Creator uses graphical rewrite rules augmented with non-graphical tests and actions.

In 1994, Kurt Schmucker became the project manager, and under him, the project was renamed Cocoa, and expanded to include a Netscape plug-in. It was also repositioned as "Internet Authoring for Kids", as the Internet was becoming increasingly accessible. The project was officially announced on May 13, 1996. There were three releases:

When Steve Jobs returned to Apple in 1997, he began dismantling a number of non-productive departments.[ citation needed ] One of these was the ATG. Larry Tesler, Cypher, and Smith, left to form Stagecast Software after retaining the rights to the Cocoa system.

Apple went on to reuse the Cocoa name for the entirely unrelated Cocoa application framework, which had originated as OpenStep.

Sales of Stagecast Creator ended on September 30, 2014 as part of Stagecast Software's cessation of operations and support ended on December 1, 2014. [2]

Description

Creator is based on the idea of independent characters that have a graphical appearance and non-graphical properties. Each character has a list of rules that determine how it behaves. The rules are created by demonstrating what the character does in a specific situation. Each graphical rewrite rule is a before / after rule, stating that when the before conditions of the rule are met, the after actions of the rule are performed. [3]

For a simple example, consider a simulation showing a character walking across a field, jumping over any rocks it encounters. Such a simulation would start with the construction of the playfield, in this case a line of icons representing the grass and a few rocks. A character is then placed on the playfield and double-clicked to open a rule editor. The rule editor will start by displaying the current conditions, that is, the character is standing on the grass. Below is an area to place the various "after" conditions, in this case the user drags open the default grid to two spaces, drags the character into the new grid cell, say to the right, and closes the rule editor.

If the simulation is started at this point, the character will start walking across the playfield to the right until it reaches the first rock. Since there is no rule showing what should happen when a rock is to the character's right, the character simply stops. At this point the rule editor is opened again, but now it shows the new condition that applies, the character is to the left of a rock. The actions in this case would be two steps, the first showing the character moving up and to the right, the next down and to the right. When the simulation is re-run, the character will walk to the right, and then "jump" over the rocks. In this case the character will now stop moving when it reaches the side of the screen, and a new rule could be added at that point to "wrap around" to the left side again.

Additional rules can be added "on the fly" to flesh out the simulation. In this example additional rules would likely be added to allow the conditions to apply no matter which direction the character is walking, duplicating the existing set of two rules for movement to the left, and up and down. To make the simulation interactive, the "automatic movement" rules can be removed, and replaced by ones that move only when the cursor keys are held down, and jump only if the user presses space. Now the simulation becomes a simple game.

Many new features were added to the system during its evolution from KidSim/Cocoa to Creator. These include the introduction of 'jars' as a means of object classification, a new z-variable that allows Creator to simulate a 3-D space (as a stack of 2-D sheets), the ability to control more than one character at a time, and the option to redraw the screen only after all moves in a turn have been made.

In order to ensure Creator's cross-platform compatibility, the entire system was ported to the Java programming language. As Cocoa, the system was a Mac-only product and included an 'Autoplayer' functionality that allowed a Cocoa simulation to be run as a stand-alone program on any Mac. With the port to Java, Creator simulations can be posted on a Web page and run as an applet.

See also

Related Research Articles

Plug-in (computing) Software component that adds a specific feature to an existing software application

In computing, a plug-in is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.

L-system Rewriting system and type of formal grammar

An L-system or Lindenmayer system is a parallel rewriting system and a type of formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into some larger string of symbols, an initial "axiom" string from which to begin construction, and a mechanism for translating the generated strings into geometric structures. L-systems were introduced and developed in 1968 by Aristid Lindenmayer, a Hungarian theoretical biologist and botanist at the University of Utrecht. Lindenmayer used L-systems to describe the behaviour of plant cells and to model the growth processes of plant development. L-systems have also been used to model the morphology of a variety of organisms and can be used to generate self-similar fractals.

Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.

GNUstep Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

Carbon was one of two primary C-based application programming interfaces (APIs) developed by Apple for the macOS operating system. Carbon provided a good degree of backward compatibility for programs that ran on Mac OS 8 and 9. Developers could use the Carbon APIs to port (“carbonize”) their “classic” Mac applications and software to the Mac OS X platform with little effort, compared to porting the app to the entirely different Cocoa system, which originated in OPENSTEP. With the release of macOS 10.15 Catalina, the Carbon API was officially discontinued and removed, leaving Cocoa as the sole primary API for developing macOS applications.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

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.

WebObjects Java web application server and framework originally developed by NeXT Software

WebObjects is a Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Configuration file Software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

Visual programming language Programming language written graphically by a user

In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

A "production system " is a computer program typically used to provide some form of artificial intelligence, which consists primarily of a set of rules about behavior but it also includes the mechanism necessary to follow those rules as the system responds to states of the world. Those rules, termed productions, are a basic representation found useful in automated planning, expert systems and action selection.

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.

LispWorks is computer software, a proprietary implementation and integrated development environment (IDE) for the programming language Common Lisp. LispWorks was developed by the UK software company Harlequin Ltd., and first published in 1989. Harlequin ultimately spun off its Lisp division as Xanalys Ltd., which took over management and rights to LispWorks. In January 2005, the Xanalys Lisp team formed LispWorks Ltd. to market, develop, and support the software.

AgentSheets

AgentSheets was the first modern block-based programming language for kids. The idea of AgentSheets was to overcome syntactic challenges found in common text-based programming languages by using drag and drop mechanisms conceptualizing commands such as conditions and actions as editable blocks that could be composed into programs. AgentSheets is used to create media-rich projects such as games and interactive simulations. The main building blocks of AgentSheets are agents which are interactive objects programmed through rules. Using conditions agents can sense the user input including mouse, keyboard and in some versions even speech recognition and web page content. Using actions agents can move, produce sounds, open web pages, and compute formulae.

David Canfield Smith is an American computer scientist best known for inventing computer icons and the programming technique known as programming by demonstration. His primary emphasis has been in the area of human–computer interaction and computer-human interface (CHI) design. His goal was to make computers easier for ordinary people to use. He is one of the pioneers of the modern graphical user interfaces (GUI) for computers, having invented such techniques as the desktop metaphor, dialog boxes, and universal commands.

References

  1. Your wish is my command: programming by example, Henry Lieberman, Morgan Kaufmann Publishers, ISBN   978-1-55860-688-3
  2. "Stagecast to Close". Archived from the original on 2015-02-24.
  3. Repenning, A, "Bending the Rules:Steps Toward Semantically Enriched Graphical Rewrite Rules", Proceeding of Visual Languages, Darmstadt, Germany, 1995, pp. 226-233.