Kaleida Labs
This article needs additional citations for verification. (July 2023) |
Parent Apple Computer and IBM | |
Kaleida Labs, Inc., formed in 1991 to produce the
Kaleida was one of three joint ventures of the 1990s between Apple and IBM, including the
History
Formation
Announced in 1991, the company began operations in the summer of 1992 with Nat Goldhaber serving as its first CEO.[1] The company was staffed by hand picking members of Apple's QuickTime team, along with members from the big-iron content delivery side at IBM. Kaleida's corporate offices were located in Mountain View, California, at sites near the Shoreline Amphitheater on the east side of U.S. 101. Kaleida was one of the earliest companies to post a corporate website.
The early model for the system was the Kaleida Media Player, or KMP. This was essentially a cross-platform interactive version of the
According to statements made at the Digital World Conference, Goldhaber stated that ScriptX would allow developers to distribute their work on practically any device simply by “hitting a button on a screen and selecting ‘Save as ScriptX’."[2] Grandiose statements were typical, with Goldhaber later stating that "It actually does have some genuine social importance."[3]
Goldhaber's flamboyant style, expensive company payroll, and lack of obvious progress led to negative stories in the press. One executive who described that "the company has spent about $20 million in its one year of existence and that Apple and IBM are loath to continue spending money at that rate. He said Kaleida salaries are high and that the company has too many employees for its current stage of development".[4]
In early 1993, Goldhaber and the board started fighting over
Refocus and release
Following Goldhaber's ousting, the company's focus was narrowed. Plans to build a system for set-top boxes was officially abandoned in April 1994.[6] Kaleida's mission from then on was to complete and support the ScriptX language and multimedia object library, which by this point were very late. Kaleida sought to bundle the KMP as system software with new personal computers. At the same time, CD-ROM developers could ship the KMP with content to support existing Windows and Macintosh systems. As part of the new focus, the company was downsized, with layoffs representing about 20 to 25% of the workforce.[6][7]
In late 1993 and early 1994, the company's objective was for the Kaleida Media Player to run on a reference platform consisting of either a 25 MHz Motorola 68030 or a 25 MHz Intel 80486 processor running with 4 MB of random access memory. Such a system was typical of the installed base at that time, and most new computers were shipping with a read-only CD-ROM drive. Toshiba, which had supported Kaleida's set-top box effort, became a minority stakeholder. Throughout its brief history, Kaleida maintained cross-platform development efforts for Windows (both Windows 3.1 and Windows 95), the Macintosh (supporting both the 68000 and PowerPC platforms), and OS/2.
The ScriptX development kit and the 1.0 version of the Kaleida Media Player were finally released on December 19, 1994, now considerably late.
Changing market
Kaleida had been founded partly as an authoring environment for applications based on CD-ROMs. But the product life cycle of CD-ROMs, which had been heralded for years as a content delivery system, turned out to be surprisingly short. By 1995 it was becoming clear that the World Wide Web would be delivering many of the lightweight interactive systems that were previously delivered in CD-ROM, and while video and similar high-bandwidth systems were not yet suitable for the Web, they did not need the development environment or interactivity offered by something like Kaleida.
Kaleida had also been formed, to some degree, to offer an alternative to the Wintel platform for what at that point appeared to be an emerging market in the CD world. Goldhaber had mentioned this on many occasions, describing the upcoming "war" for multimedia.[2] After Netscape's public offering early in 1995, many software developers recognized that the browser itself would pose a challenge to Windows, and that the browser would become a multimedia platform in its own right. The standalone platform to attack Wintel now existed. Kaleida then started an effort to deliver objects over the Internet and deliver Web content.[10]
Most potential Kaleida developers had been taking a wait-and-watch approach to the system, waiting for Kaleida to solve performance problems and ship a more stable version of ScriptX. However, the company had not been able to demonstrate a system that ran acceptably in less than 16 MB of RAM, which was at that time the "high end" of the market.
Closure
By late 1995 it was clear that ScriptX had lost its momentum in the market, even though the company was on the verge of shipping ScriptX Version 1.5. In November 1995, Apple Computer and IBM announced the closure of Kaleida Labs, effective in January 1996.[12] The parent companies announced that they would ship ScriptX 1.5 anyhow. Future development of ScriptX would move to a group inside Apple Computer, and Apple offered jobs to most members of the ScriptX engineering team.
ScriptX Version 1.5 shipped almost concurrently with the closure of Kaleida Labs, in January 1996.[11] By shipping ScriptX, Apple and IBM met contractual commitments they had made to developers and avoided legal difficulties. Ultimately, only two multimedia content projects ever shipped using ScriptX 1.5. One was a CD-ROM version of the Swedish National Encyclopedia, Nationalencyklopedin, developed by Linné Data of Gothenburg, Sweden. The other was an interactive music title, Robert Winter's Crazy for Ragtime.
After Kaleida
Within a few months, development of ScriptX withered away inside Apple, and the remaining employees had either migrated to other jobs at Apple, or had left for other companies in the industry. The Director application remained a major force in the multimedia market for a time, but was supplanted and then replaced, by Flash. Early versions of Flash are in many ways a clone of ScriptX, using a small plug-in runtime with an event-driven language and similar resource requirements.
Description
ScriptX
The principal software architect of ScriptX was
ScriptX is an object oriented scripting language, using design elements from "Smalltalk, Dylan, Hypertalk, Lisp, Object Logo, C++, and Pascal".[13] With Smalltalk, it shares the concept of classes, objects, and inheritance, but also features multiple inheritance in both classes and objects, and dynamic binding of objects at runtime. ScriptX has no primitive data types; even integers are defined as objects. All objects are instances of a class, and classes are instances of a MetaClass object. As in LISP, there are no statements, and every line in a ScriptX program is an expression that returns a value.[13]
ScriptX uses garbage collection running in a separate thread to handle memory, and features an object store for permanent collections. ScriptX supports multi-threading but not multiprocessing, and offers scripting control of lower level operating system features such as events and concurrently running threads. Early multimedia development tools lack techniques for synchronizing presentations, except by polling the operating system's own clock. Ray Valdés, writing in Dr. Dobb's Journal, noted that, "a key ScriptX feature is a Clock class, which provides facilities for synchronizing timed sequences of actions required by multimedia apps."[13]
Following the closure of Kaleida Labs, Wainwright became the principal architect of MaxScript, a scripting language for
Example
The following code illustrates the unique syntax of the ScriptX language. It is part of a class that handles mouse tracking in a larger program written by Don Hopkins.[15] The sendTrackDrop method sends a trackDrop message to another object.
method sendTrackDrop self {class Tracker} service target x y data doit -> ( local coords := new Point repeat while (true) do ( if (canObjectDo target trackDrop) then ( return (trackDrop target service x y data doit) ) else ( coords.x := x coords.y := y local t := findFirstAtPoint target coords if (t == empty) do return false x := x - t.x y := y - t.y target := t ) ) )
This code is responsible for forwarding trackDrop messages between objects, and illustrates a number of uncommon features of the ScriptX language. Of minor note of interest is the :=
assignment operator, like that of Pascal.
Variables are marked local
to determine their scope.[13] This is the opposite of most modern languages, where "local" is the default scope, and such a declaration would be redundant. In conventional languages the scoping visibility is defined by the location in the source code file - variables declared inside a method are local to that method, those defined outside methods or other declarations are global to the class (or program).
This lack of file-based scoping is a base feature of the ScriptX language and others like it, notably Dylan. In conventional languages like Java, classes and similar constructs are defined within a single file, or at least a "master file". Scope is defined by the file system and the code's location within it. In contrast, in ScriptX any method can be defined on any class in any file. In this example, the method sendTrackDrop
is being applied to the Tracker
class, and can be placed within any file that will be accessed during runtime. This allows programmers to organize their code by class or by functionality, at the cost of some extra syntax.
References
- ^ Lawrence Fisher (24 June 1992). "Apple-I.B.M. Venture Chief Is Named". New York Times.
- ^ a b Janice Maloney, "A Multimedia Standard to Bring About ‘Universal Compatibility’" Archived March 4, 2016, at the Wayback Machine, Digital Media, July 1993
- ^ Jonathan Weber (27 September 1992). "Kaleida Labs, an Apple-IBM joint venture, is searching for ways to develop multimedia technologies". Los Angeles Times. Archived from the original on 6 March 2016.
- ^ Jonathan Weber (16 July 1993). "Kaleida's multimedia labs will be run by an IBM veteran amid reports of delays and high costs". Los Angeles Times. Archived from the original on 22 February 2017.
- ^ Ralph King, "Multimedia Kaleida Shifts Top Executives Amid Delays", Wall Street Journal, July 18, 1993
- ^ a b Laurie Flynn (15 May 1994). "Sound Bytes; Maverick Remakes Kaleida". The New York Times.
- ^ Ray Valdés, "What's up at Kaleida?", Dr. Dobbs Developer Update, September 1, 1994
- ^ "Kaleida Labs Ships ScriptS Multimedia Programs". New York Times. 20 December 1994.
- ^ a b c Stephan Somogyi, "Kaleida's ScriptX: It's late but ahead of its time", Digital Media Perspective, December 23, 1994
- ^ "ScriptX and the World Wide Web: Link Globally, Interact Locally"
- ^ ISBN 9780130163967.
- ^ Julie Pitta (18 November 1995). "IBM, Apple Will Close Door on Kaleida Labs". Los Angeles Times. Archived from the original on 6 March 2016.
- ^ a b c d Ray Valdés, "Introducing ScriptX", Dr. Dobb's Journal, November 1994
- ^ Don Hopkins, "Automating The Sims Character Animation Pipeline with MaxScript"
- ^ Don Hopkins, "TrackService: Yet Another Event Handler for ScriptX", Kaleida Labs
Further reading
- Kaleida Labs Inc. (1994). Scriptx Architecture Guide. ISBN 0-201-40729-9. Documentation accompanying ScriptX Version 1.0.
- Kaleida Labs Inc. (1994). ScriptX Core Classes Reference. ISBN 0-201-40730-2. Documentation accompanying ScriptX Version 1.0.
- Kaleida Labs Inc. (1996). ScriptX Architecture and Components Guide. Documentation accompanying ScriptX Version 1.5.
- Kaleida Labs Inc. (1996). ScriptX Core Classes Reference. Documentation accompanying ScriptX Version 1.5.
- Kaleida Labs Inc. (1996). ScriptX Language Reference. Documentation accompanying ScriptX Version 1.5.
- Kaleida Labs Inc. (1995). ScriptX Technical Overview.
External links
- ScriptX overview page
- U.S. patent 5,907,704 Hierarchical encapsulation of instantiated objects in a multimedia authoring system including internet accessible objects. (Patent is now assigned to Quark, Inc.)
- List of patents still currently assigned to Kaleida