Kaleida Labs formed in 1991 to produce the
multimedia
Multimedia is a form of communication that uses a combination of different content forms such as text, audio, images, animations, or video into a single interactive presentation, in contrast to tradition ...
cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
Kaleida Media Player and the
object oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
scripting language
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
A scripting ...
ScriptX that was used to program its behavior. The system was aimed at the production of interactive
CD ROM
A CD-ROM (, compact disc read-only memory) is a type of read-only memory consisting of a pre-pressed optical compact disc that contains data. Computers can read—but not write or erase—CD-ROMs. Some CDs, called enhanced CDs, hold both compu ...
titles, an area of major effort in the early 1990s. When the system was delivered in 1994, it had relatively high system requirements and memory footprint, and lacked a native
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
version on the
Mac platform. Around the same time, rapid changes in the market, especially the expansion of the
World Wide Web
The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet.
Documents and downloadable media are made available to the network through web se ...
and the
Java programming language
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
, pushed the interactive CD market into a niche role. The Kaleida platform failed to gain significant traction and the company was closed in 1996.
Kaleida was one of three joint ventures of the 1990s between Apple and IBM, including the
Taligent
Taligent Inc. (a portmanteau of "talent" and "intelligent") was an American software company. Based on the Pink object-oriented operating system conceived by Apple in 1988, Taligent Inc. was incorporated as an Apple/IBM partnership in 1992, and ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
and the
AIM alliance
The AIM alliance, also known as the PowerPC alliance, was formed on October 2, 1991, between Apple, IBM, and Motorola. Its goal was to create an industry-wide open-standard computing platform based on the POWER instruction set architecture. It ...
with
Motorola
Motorola, Inc. () was an American Multinational corporation, multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent p ...
for the PowerPC platform. ScriptX was one of several similar software platforms that started at Apple in that timeframe. The
SK8 system was also aimed at the multimedia market, although it evolved from what was originally a major upgrade to
HyperCard
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.
HyperCard combines a flat-file database with a graphical, fl ...
. The
Dylan programming language
Dylan is a multi-paradigm programming language that includes support for functional and object-oriented programming (OOP), and is dynamic and reflective while providing a programming model designed to support generating efficient machine code, in ...
was a more full-featured platform, aimed at general programming not just multimedia. Development of all of these software projects ended at approximately the same time.
History
Formation
Announced in 1991, the company began operations in the summer of 1992 with
Nat Goldhaber serving as its first CEO.
The company was staffed by hand picking members of Apple's
QuickTime
QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. Created in 1991, the latest Mac version, QuickTime X, is avai ...
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
QuickTime Player
QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. Created in 1991, the latest Mac version, QuickTime X, is avail ...
that would run on the
Apple Macintosh
The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
,
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
clones, as well as
set-top box
A set-top box (STB), also colloquially known as a cable box and historically television decoder, is an information appliance device that generally contains a TV-tuner input and displays output to a television set and an external source of sign ...
es and other platforms. It was intended to be a single universal multimedia system. On top of this model was the ScriptX
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
and
object library
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subro ...
, which allowed developers to make the media files completely interactive.
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’."
[Janice Maloney]
"A Multimedia Standard to Bring About ‘Universal Compatibility’"
, ''Digital Media'', July 1993 Grandiose statements were typical, with Goldhaber later stating that "It actually does have some genuine social importance."
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".
In early 1993, Goldhaber and the board started fighting over
stock option
In finance, an option is a contract which conveys to its owner, the ''holder'', the right, but not the obligation, to buy or sell a specific quantity of an underlying asset or instrument at a specified strike price on or before a specified dat ...
s and whether the company should go public. On July 18, 1993 the company announced that Goldhaber was being replaced as CEO by Mike Braun, formerly of IBM. The company stated that Goldhaber would remain on the board in efforts to build industry partnerships, but blamed a lack of progress on this front, and Goldhaber's "hands off" management, as the main reasons for the switch. In parting, Goldhaber quipped that different cultures and political maneuverings at IBM and Apple doomed the company from the start.
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.
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.
[Ray Valdés]
"What's up at Kaleida?"
''Dr. Dobbs Developer Update'', September 1, 1994
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. Nevertheless, reviews were generally positive, calling it "remarkable for its ease of use" and stating that the core "classes that provide a high common denominator feature set for ScriptX-based development".[ However, performance was another issue entirely. The 1.0 version of the KMP required 3.3 MB of RAM on Windows and 2.9 MB on the Mac, and this was for the basic runtime only, not the actual content that ran on it.][Stephan Somogyi]
"Kaleida's ScriptX: It's late but ahead of its time"
''Digital Media Perspective'', December 23, 1994 To put this in perspective, a mid-range Mac of the era was the LC 475 which shipped with only 4 MB of RAM standard, of which the OS used a significant amount. Moreover, the system was not released in PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
format, although by this point the PPC had already formed the high end of the Mac lineup for eight months.[
]
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
The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet.
Documents and downloadable media are made available to the network through web se ...
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.[ 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.
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. ]Macromedia
Macromedia, Inc., was an American graphics, multimedia, and web development software company (1992–2005) headquartered in San Francisco, California, that made products such as Flash and Dreamweaver. It was purchased by its rival Adobe Systems ...
's Director
Director may refer to:
Literature
* ''Director'' (magazine), a British magazine
* ''The Director'' (novel), a 1971 novel by Henry Denker
* ''The Director'' (play), a 2000 play by Nancy Hasty
Music
* Director (band), an Irish rock band
* ''D ...
and associated Lingo program took advantage of the vacuum to establish a strong market.[ Meanwhile, ]Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
was promoting its new Java programming language
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
as a Web-dedicated system designed specifically to run on even the smallest platforms.
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. 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. 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
''Nationalencyklopedin'' (; "The National Encyclopedia" in English), abbreviated NE, is a comprehensive contemporary Swedish-language encyclopedia, initiated by a favourable loan from the Government of Sweden of 17 million Swedish kronor in 19 ...
, 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
Flash, flashes, or FLASH may refer to:
Arts, entertainment, and media
Fictional aliases
* Flash (DC Comics character), several DC Comics superheroes with super speed:
** Flash (Barry Allen)
** Flash (Jay Garrick)
** Wally West, the first Kid ...
. 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 John Wainwright, an Australian-born computer scientist. ScriptX was implemented in C, using an extensive library called Objects in C that Wainwright had developed before joining Kaleida, and sold to the company at its inception. Objects in C used preprocessor directives to simulate an object system within the libraries. The library featured more than 240 classes, many of them designed to support multimedia as well as create customized user interfaces. Common data structures such as arrays and linked lists were implemented as collection class
In computer science, a container is a class or a data structureEntry ''data structure'' in the Encyclopædia Britannica (2009Online entryAccessed 4 Oct 2011. whose instances are collections of other objects. In other words, they store objects ...
es in the library.
ScriptX was an object oriented scripting language, which used design elements from "Smalltalk, Dylan, Hypertalk, Lisp, Object Logo, C++, and Pascal".[ With Smalltalk, it shared the concept of classes, objects, and inheritance, but also featured multiple inheritance in both classes and objects, and dynamic binding of objects at runtime. ScriptX had no primitive data types; even integers were defined as objects. All objects were instances of a class, and classes themselves were instances of a MetaClass object. As in LISP, there were no statements, and every line in a ScriptX program was an expression that returned a value.][
ScriptX used ]garbage collection
Waste collection is a part of the process of waste management. It is the transfer of solid waste from the point of use and disposal to the point of treatment or landfill. Waste collection also includes the curbside collection of recyclabl ...
running in a separate thread to handle memory, and featured an object store for permanent collections. 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. 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."[Ray Valdés]
"Introducing ScriptX"
''Dr. Dobb's Journal'', November 1994
Following the closure of Kaleida Labs, Wainwright went on to serve as the principal architect of MaxScript
Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling cap ...
, a scripting language for 3D Studio Max that has been used to process content for gaming and 3D applications such as the Maxis
Maxis is an American video game developer and a Division (business), division of Electronic Arts (EA). The studio was founded in 1987 by Will Wright (game designer), Will Wright and Jeff Braun, and acquired by Electronic Arts, EA in 1997. Maxi ...
Sims programs. Thus, ScriptX can be considered a progenitor of MaxScript, which closely resembles ScriptX.
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
Don Hopkins is an artist and programmer specializing in human computer interaction and computer graphics. He is an alumnus of the University of Maryland, College Park, University of Maryland and a former member of the University of Maryland Huma ...
.[Don Hopkins]
"TrackService: Yet Another Event Handler for ScriptX"
Kaleida Labs The sendTrackDrop method sends a trackDrop message to another object.
method sendTrackDrop self 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
Scope or scopes may refer to:
People with the surname
* Jamie Scope (born 1986), English footballer
* John T. Scopes (1900–1970), central figure in the Scopes Trial regarding the teaching of evolution
Arts, media, and entertainment
* Cinem ...
.[ 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
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
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
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, 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.
ScriptX vs. Java
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 or interfacing may refer to:
Academic journals
* Interface (journal), ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Lin ...
, and the Java runtime environment utilizes a garbage collector
A waste collector, also known as a garbageman, garbage collector, trashman (in the US), binman or (rarely) dustman (in the UK), is a person employed by a public or private enterprise to collect and dispose of municipal solid waste (refuse) and r ...
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
Random-access memory (RAM; ) is a form of computer memory that can be read and changed in any order, typically used to store working Data (computing), data and machine code. A Random access, random-access memory device allows data items to b ...
. 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.
References
Further reading
* Kaleida Labs Inc. (1994). ''Scriptx Architecture Guide''. Addison Wesley
Addison-Wesley is an American publisher of textbooks and computer literature. It is an imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its technical titles through ...
. . Documentation accompanying ScriptX Version 1.0.
* Kaleida Labs Inc. (1994). ''ScriptX Core Classes Reference''. Addison Wesley
Addison-Wesley is an American publisher of textbooks and computer literature. It is an imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its technical titles through ...
. . 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
* Hierarchical encapsulation of instantiated objects in a multimedia authoring system including internet accessible objects. (Patent is now assigned to Quark, Inc.
Quark Software Inc. (founded 1981 in Denver, Colorado, USA) is a privately owned software company which specializes in enterprise publishing software for automating the production of customer communications. The company's original goal was to "c ...
)
List of patents still currently assigned to Kaleida
{{Authority control
American companies established in 1991
American companies disestablished in 1996
Apple Inc. partnerships
Companies based in California
Computer companies established in 1991
Computer companies disestablished in 1996
Defunct software companies of the United States
Former IBM subsidiaries