Kaleida Labs
Encyclopedia
Kaleida Labs was one of several joint ventures between Apple Computer
and IBM
in a period of alliance between the two companies during the early 1990s. The two computer giants sought to counter the influence of Microsoft
and the growing dominance of its Windows
operating system. Other ventures between Apple and IBM in this period included the Taligent
operating system, and the PowerPC
reference platform, a hardware chip alliance
that included Motorola
.
serving as its first CEO. The company’s objective was the development of a common multimedia platform, the Kaleida Media Player, that would run on both Windows and Macintosh computers. The Kaleida Media Player was the runtime environment for the company’s main product known as ScriptX
, a programming language and object library for authoring multimedia content. In its early days, Kaleida had several other projects underway, including a proposed operating system for television set-top boxes that was to be based around the Kaleida Media Player software.
Following the departure of Goldhaber in 1993, Mike Braun of IBM became CEO of Kaleida Labs, and the company’s focus was narrowed. Kaleida’s mission from then on was to complete and support the ScriptX language and multimedia object library. Kaleida sought to bundle the Kaleida Media Player as system software with new personal computers. At the same time, CD-ROM developers could ship the Kaleida Media Player with content to support existing Windows and Macintosh systems.
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.
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. Registration of its domain kaleida.com has since lapsed and the Internet domain has since been used by another company.
was an object oriented scripting language, influenced heavily by Smalltalk
and LISP
. With Smalltalk, it shared the concept of classes, objects, and inheritance. Like Smalltalk, it was a pure implementation of an object environment, one where everything was an object. ScriptX had no primitive data types – even integers were defined as objects. All objects were instances of a class, and classes themselves were objects, instances of a MetaClass. In contrast with early forms of Smalltalk, ScriptX implemented multiple inheritance in both classes and objects, and dynamic binding of objects at runtime.
The principal software architect of ScriptX was John Wainwright
, an Australian-born computer scientist. In the ScriptX language, as in LISP, there were no statements. Every line in a ScriptX program was an expression that returned a value, and a ScriptX program comprised a list of expressions. Syntactically, ScriptX was most similar to C, although it was not a compiled language. ScriptX was implemented not in C++, but rather in C itself, using an extensive library called Objects in C that Wainwright had developed before joining Kaleida, and sold to Kaleida at the company’s inception. Objects in C used preprocessor directives to simulate an object system, but the company’s development environment was not itself an object-oriented system.
Another feature that ScriptX shared with LISP was the use of a garbage collector for memory management. Rather than requiring the explicit allocation and deallocation of memory, the ScriptX garbage collector
ran independently in a background thread, rearranging objects in memory while removing objects that were no longer needed. ScriptX objects were stored in an underlying database called an object store, and the garbage collector functioned by tracing references within a program to objects in memory, eliminating those that were no longer referenced.
In addition to the ScriptX language, the Kaleida development platform offered an extensive class library of more than 240 classes, many of them designed to support multimedia as well as create customized user interfaces. Within the ScriptX environment, features that would be implemented as data types or supplied as part of external function packages in many other languages were defined as classes. For example, common data structures such as arrays and linked lists were implemented as collection classes. ScriptX supported multi-threading but not multiprocessing, and offered scripting control of lower level operating system features such as events and concurrently running threads. Early multimedia development tools lacked techniques for synchronizing presentations, except by polling the operating system's own clock. Ray Valdés, writing in Dr. Dobbs Journal, noted that, "a key ScriptX feature is a Clock class, which provides facilities for synchronizing timed sequences of actions required by multimedia apps."
Following the closure of Kaleida Labs, Wainwright went on to serve as the principal architect of MaxScript
, a scripting language for 3D Studio Max
that has been used to process content for gaming and 3D applications such as the Maxis
Sims programs (see Automating The Sims Character Animation Pipeline with MaxScript). Thus, ScriptX can be considered a progenitor of MaxScript, which closely resembles ScriptX.
By 1995 it was clear that CD-ROMs for content delivery in applications would soon give way to delivery over a high-speed network. In early 1995, Kaleida Labs demonstrated the ability of ScriptX to support distributed objects over the Internet, and to serve dynamically generated web content (see ScriptX and the World Wide Web: Link Globally, Interact Locally). By late 1995, however, the directors of Kaleida realized that the direction of multimedia development had shifted, and that Sun Microsystems
’s Java
language was better positioned than ScriptX to take advantage of the Internet.
Java has many similarities with ScriptX. Like ScriptX, it is an object based language with elements of syntax that are similar to C and C++. Java classes support a limited form of multiple inheritance through interfaces
, and the Java runtime environment utilizes a garbage collector
for memory management with a "tracing" architecture similar to that of ScriptX. Both Java and ScriptX translate programs into a platform-independent bytecode.
Unlike ScriptX, Java is not a pure object system, and has primitive data types. In contrast with ScriptX expressions, Java programs are always written inside a class definition, and return either a value or void. This makes Java code much easier to secure, to protect from tampering and malicious interference. Java was able from the beginning to support multi-processing as well as multi-threaded applications, and thus was naturally scalable. These features, and other attributes of Java, made it more suitable for a distributed and networking environment than ScriptX.
Although both ScriptX and Java were designed as platform independent virtual machine environments, their philosophy and implementation were quite different. The Kaleida Media Player was a complex interpreter
that required several megabytes to run, and Kaleida never achieved effective performance on a system with less than 16 MB of random access memory. By contrast, Java was designed to run compiled bytecode on a stripped down virtual machine that could be implemented on virtually any 16-bit or larger processor. In this way, Java could be used anywhere from handheld devices or consumer appliances to mainframe computers.
In 1995, Java was being demonstrated mostly as a runtime environment for small applets, as code that could be embedded in web pages and downloaded to run in the browser. Sun Microsystems provided detailed specifications for Java, released many classes in open source, and aggressively formed alliances to distribute it and share its development with other companies throughout the computer hardware and software industries.
Kaleida Labs and its parent companies had always envisioned the Kaleida Media Player as a proprietary and closed-source operating system, one designed for a more limited market than Java. 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. 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. In effect, the Netscape
browser had taken on the functions that were intended for the Kaleida Media Player, while Java was seen to have taken on the role that was intended for ScriptX (although JavaScript
eventually succeeded where Java failed as a client side scripting language).
Kaleida had already shipped Version 1.0 of ScriptX early in 1995, and a few development efforts were underway. However, most potential developers had been taking a wait-and-watch approach to the Kaleida Media Player, waiting for Kaleida to solve performance problems and ship a more stable version of ScriptX. Closure of Kaleida Labs was scheduled for early 1996, but 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. By shipping ScriptX, Apple and IBM met contractual commitments they had made to developers and avoided legal difficulties. 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. 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.
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...
and IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
in a period of alliance between the two companies during the early 1990s. The two computer giants sought to counter the influence of Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
and the growing dominance of its Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
operating system. Other ventures between Apple and IBM in this period included the Taligent
Taligent
Taligent was the name of an object-oriented operating system and the company dedicated to producing it...
operating system, and the PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
reference platform, a hardware chip alliance
AIM alliance
The AIM alliance was an alliance formed on October 2, 1991, between Apple Inc. , IBM, and Motorola to create a new computing standard based on the PowerPC architecture. The stated goal of the alliance was to challenge the dominant Wintel computing platform with a new computer design and a...
that included Motorola
Motorola
Motorola, Inc. was an American multinational telecommunications company based in Schaumburg, Illinois, which was eventually divided into two independent public companies, Motorola Mobility and Motorola Solutions on January 4, 2011, after losing $4.3 billion from 2007 to 2009...
.
History
Announced in 1991, the company began operations early in 1992 with Nat GoldhaberNat Goldhaber
A. Nathaniel Goldhaber is an American venture capitalist, computer entrepreneur and politician. He was the 2000 U.S. Vice President candidate for the Natural Law Party.-Education:...
serving as its first CEO. The company’s objective was the development of a common multimedia platform, the Kaleida Media Player, that would run on both Windows and Macintosh computers. The Kaleida Media Player was the runtime environment for the company’s main product known as ScriptX
ScriptX
ScriptX is a multimedia-oriented development environment created in 1990 by Kaleida Labs. Unlike packages such as Macromedia Director, ScriptX is not an authoring tool for creating multimedia titles, although it does come with a built-in authoring tool...
, a programming language and object library for authoring multimedia content. In its early days, Kaleida had several other projects underway, including a proposed operating system for television set-top boxes that was to be based around the Kaleida Media Player software.
Following the departure of Goldhaber in 1993, Mike Braun of IBM became CEO of Kaleida Labs, and the company’s focus was narrowed. Kaleida’s mission from then on was to complete and support the ScriptX language and multimedia object library. Kaleida sought to bundle the Kaleida Media Player as system software with new personal computers. At the same time, CD-ROM developers could ship the Kaleida Media Player with content to support existing Windows and Macintosh systems.
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.
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. Registration of its domain kaleida.com has since lapsed and the Internet domain has since been used by another company.
ScriptX
ScriptXScriptX
ScriptX is a multimedia-oriented development environment created in 1990 by Kaleida Labs. Unlike packages such as Macromedia Director, ScriptX is not an authoring tool for creating multimedia titles, although it does come with a built-in authoring tool...
was an object oriented scripting language, influenced heavily by Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
and LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
. With Smalltalk, it shared the concept of classes, objects, and inheritance. Like Smalltalk, it was a pure implementation of an object environment, one where everything was an object. ScriptX had no primitive data types – even integers were defined as objects. All objects were instances of a class, and classes themselves were objects, instances of a MetaClass. In contrast with early forms of Smalltalk, ScriptX implemented multiple inheritance in both classes and objects, and dynamic binding of objects at runtime.
The principal software architect of ScriptX was John Wainwright
John Wainwright (computer scientist)
John Wainwright is a computer scientist, born in Australia, who has pioneered the development of pure object-based computer languages. He is the principal architect of two computer languages, ScriptX and MaxScript ....
, an Australian-born computer scientist. In the ScriptX language, as in LISP, there were no statements. Every line in a ScriptX program was an expression that returned a value, and a ScriptX program comprised a list of expressions. Syntactically, ScriptX was most similar to C, although it was not a compiled language. ScriptX was implemented not in C++, but rather in C itself, using an extensive library called Objects in C that Wainwright had developed before joining Kaleida, and sold to Kaleida at the company’s inception. Objects in C used preprocessor directives to simulate an object system, but the company’s development environment was not itself an object-oriented system.
Another feature that ScriptX shared with LISP was the use of a garbage collector for memory management. Rather than requiring the explicit allocation and deallocation of memory, the ScriptX garbage collector
Garbage collector
Garbage collector may refer to:* Waste collector, a person employed to collect waste* A waste collection vehicle* A waste picker, or a dumpster diver* Garbage collection , the detection and pruning of unused or inaccessible data structures...
ran independently in a background thread, rearranging objects in memory while removing objects that were no longer needed. ScriptX objects were stored in an underlying database called an object store, and the garbage collector functioned by tracing references within a program to objects in memory, eliminating those that were no longer referenced.
In addition to the ScriptX language, the Kaleida development platform offered an extensive class library of more than 240 classes, many of them designed to support multimedia as well as create customized user interfaces. Within the ScriptX environment, features that would be implemented as data types or supplied as part of external function packages in many other languages were defined as classes. For example, common data structures such as arrays and linked lists were implemented as collection classes. ScriptX supported multi-threading but not multiprocessing, and offered scripting control of lower level operating system features such as events and concurrently running threads. Early multimedia development tools lacked techniques for synchronizing presentations, except by polling the operating system's own clock. Ray Valdés, writing in Dr. Dobbs Journal, noted that, "a key ScriptX feature is a Clock class, which provides facilities for synchronizing timed sequences of actions required by multimedia apps."
Following the closure of Kaleida Labs, Wainwright went on to serve as the principal architect of MaxScript
Maxscript
MaxScript command processor is an interpreter that implements a subset of the xBase programming language especially conceived to be used inside web pages to provide server side scripting capabilities....
, a scripting language for 3D Studio Max
3D Studio Max
Autodesk 3ds Max, formerly 3D Studio MAX, is for making 3D animations. It was developed and produced by Autodesk Media and Entertainment. It has modeling capabilities, a flexible plugin architecture and can be used on the Microsoft Windows platform. It's frequently used by video game developers, TV...
that has been used to process content for gaming and 3D applications such as the Maxis
Maxis
Maxis is an American company founded as an independent video game developer in 1987. It is currently a subsidiary of Electronic Arts . Maxis is the creator of one of the best-selling computer games of all time, The Sims and its first sequel, The Sims 2...
Sims programs (see Automating The Sims Character Animation Pipeline with MaxScript). Thus, ScriptX can be considered a progenitor of MaxScript, which closely resembles ScriptX.
Java and the Internet
Although computer and software companies were early users of the Internet and the World Wide Web (WWW), most companies in the early 1990s did not anticipate its rapid adoption by consumers. Outside of universities and the computer industry, very few companies or individuals had access to high-speed, broadband networks. 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 clear that CD-ROMs for content delivery in applications would soon give way to delivery over a high-speed network. In early 1995, Kaleida Labs demonstrated the ability of ScriptX to support distributed objects over the Internet, and to serve dynamically generated web content (see ScriptX and the World Wide Web: Link Globally, Interact Locally). By late 1995, however, the directors of Kaleida realized that the direction of multimedia development had shifted, and that Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
’s Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
language was better positioned than ScriptX to take advantage of the Internet.
Java has many similarities with ScriptX. Like ScriptX, it is an object based language with elements of syntax that are similar to C and C++. Java classes support a limited form of multiple inheritance through interfaces
Interface (Java)
An interface in the Java programming language is an abstract type that is used to specify an interface that classes must implement. Interfaces are declared using the interface keyword, and may only contain method signature and constant declarations...
, and the Java runtime environment utilizes a garbage collector
Garbage collector
Garbage collector may refer to:* Waste collector, a person employed to collect waste* A waste collection vehicle* A waste picker, or a dumpster diver* Garbage collection , the detection and pruning of unused or inaccessible data structures...
for memory management with a "tracing" architecture similar to that of ScriptX. Both Java and ScriptX translate programs into a platform-independent bytecode.
Unlike ScriptX, Java is not a pure object system, and has primitive data types. In contrast with ScriptX expressions, Java programs are always written inside a class definition, and return either a value or void. This makes Java code much easier to secure, to protect from tampering and malicious interference. Java was able from the beginning to support multi-processing as well as multi-threaded applications, and thus was naturally scalable. These features, and other attributes of Java, made it more suitable for a distributed and networking environment than ScriptX.
Although both ScriptX and Java were designed as platform independent virtual machine environments, their philosophy and implementation were quite different. The Kaleida Media Player was a complex interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
that required several megabytes to run, and Kaleida never achieved effective performance on a system with less than 16 MB of random access memory. By contrast, Java was designed to run compiled bytecode on a stripped down virtual machine that could be implemented on virtually any 16-bit or larger processor. In this way, Java could be used anywhere from handheld devices or consumer appliances to mainframe computers.
In 1995, Java was being demonstrated mostly as a runtime environment for small applets, as code that could be embedded in web pages and downloaded to run in the browser. Sun Microsystems provided detailed specifications for Java, released many classes in open source, and aggressively formed alliances to distribute it and share its development with other companies throughout the computer hardware and software industries.
Closure
At the time of its formation, Kaleida’s ScriptX was envisioned as an authoring platform for CD-ROMs, and later for DVDs, which would hold much more information. The Kaleida Media Player was to be a runtime environment that would allow presentations, games, educational software, kiosks, and many other kinds of entertainment to run on multiple platforms. By fostering its development, Apple and IBM sought to maintain their own position in the software development arena at a time when Microsoft’s power was rising.Kaleida Labs and its parent companies had always envisioned the Kaleida Media Player as a proprietary and closed-source operating system, one designed for a more limited market than Java. 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. 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. In effect, the Netscape
Netscape
Netscape Communications is a US computer services company, best known for Netscape Navigator, its web browser. When it was an independent company, its headquarters were in Mountain View, California...
browser had taken on the functions that were intended for the Kaleida Media Player, while Java was seen to have taken on the role that was intended for ScriptX (although JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
eventually succeeded where Java failed as a client side scripting language).
Kaleida had already shipped Version 1.0 of ScriptX early in 1995, and a few development efforts were underway. However, most potential developers had been taking a wait-and-watch approach to the Kaleida Media Player, waiting for Kaleida to solve performance problems and ship a more stable version of ScriptX. Closure of Kaleida Labs was scheduled for early 1996, but 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. By shipping ScriptX, Apple and IBM met contractual commitments they had made to developers and avoided legal difficulties. 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. Ultimately, only two multimedia content projects ever shipped using ScriptX 1.5. One was a CD-ROM version of the Swedish National Encyclopedia, Nationalencyklopedin
Nationalencyklopedin
Nationalencyklopedin is the most comprehensive contemporary Swedish language encyclopedia, initiated by a favourable loan from the Government of Sweden of 17 million Swedish kronor in 1980, which was repaid by December 1990...
, developed by Linné Data of Gothenburg, Sweden. The other was an interactive music title, Robert Winter's Crazy for Ragtime.
External links
- ScriptX overview page
- Collections, Containers, and Path Expressions Hierarchical encapsulation of instantiated objects in a multimedia authoring system including internet accessible objects. (Patent is now assigned to Quark, Inc.Quark, Inc.Quark, Inc. is a privately owned software company best known for QuarkXPress. It is called Quark because the company's goal is to "create software that would be the platform for publishing", just as quarks are the basis for all matter.As of August 2011, Quark's offerings include:* QuarkXPress -...
) - List of patents still currently assigned to Kaleida