This article needs additional citations for verification .(July 2023) |
Company type | Subsidiary |
---|---|
Industry | Multimedia software |
Founded | 1991 |
Defunct | 1996 |
Headquarters | Mountain View, California , United States |
Products |
|
Parent | Apple Computer and IBM |
Kaleida Labs, Inc., formed in 1991 to produce the multimedia cross-platform Kaleida Media Player and the object oriented scripting language ScriptX that was used to program its behavior. The system was aimed at the production of interactive CD ROM 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 version on the Mac platform. Around the same time, rapid changes in the market, especially the expansion of the World Wide Web and the Java programming language, 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 operating system and the AIM alliance with Motorola 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. The Dylan programming language 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.
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 QuickTime Player that would run on the Apple Macintosh, IBM PC clones, as well as set-top boxes and other platforms. It was intended to be a single universal multimedia system. On top of this model was the ScriptX programming language and object library, 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’." [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 stock options 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. [5] In parting, Goldhaber quipped that different cultures and political maneuverings at IBM and Apple doomed the company from the start.
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. [8] 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". [9] 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. [9] 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 format, although by this point the PPC had already formed the high end of the Mac lineup for eight months. [9]
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. Macromedia's Director and associated Lingo program took advantage of the vacuum to establish a strong market. [11] Meanwhile, Sun Microsystems was promoting its new Java programming language as a Web-dedicated system designed specifically to run on even the smallest platforms.
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.
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.
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 uses preprocessor directives to simulate an object system within the libraries. The library features more than 240 classes, many of them designed to support multimedia and create customized user interfaces. Common data structures such as arrays and linked lists were implemented as collection classes in the library.
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 3D Studio Max that has been used to process content for gaming and 3D applications such as the Maxis Sims programs. [14] It closely resembles ScriptX.
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.
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.
Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.
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.
NewtonScript is a prototype-based programming language created to write programs for the Newton platform. It is heavily influenced by the Self programming language, but modified to be more suited to needs of mobile and embedded devices.
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.
Taligent Inc. 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 was dissolved into IBM in 1998.
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 was intended to solve legacy problems, future-proof the industry, and compete with Microsoft's monopoly and the Wintel duopoly. The alliance yielded the launch of Taligent, Kaleida Labs, the PowerPC CPU family, the Common Hardware Reference Platform (CHRP) hardware platform standard, and Apple's Power Macintosh computer line.
OpenDoc is a defunct multi-platform software componentry framework standard created by Apple in the 1990s for compound documents, intended as an alternative to Microsoft's proprietary Object Linking and Embedding (OLE). It is one of Apple's earliest experiments with open standards and collaborative development methods with other companies. OpenDoc development was transferred to the non-profit Component Integration Laboratories, Inc., owned by a growing team of major corporate backers and effectively starting an industry consortium. In 1992, the AIM alliance was launched by Apple, IBM, and Motorola, with OpenDoc as a foundation. With the return of Steve Jobs to Apple, OpenDoc was discontinued in March 1997.
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.
In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a 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.
Adobe Shockwave is a discontinued multimedia platform for building interactive multimedia applications and video games. Developers originate content using Adobe Director and publish it on the Internet. Such content could be viewed in a web browser on any computer with the Shockwave Player plug-in installed. MacroMind originated the technology; Macromedia acquired MacroMind and developed it further, releasing Shockwave Player in 1995. Adobe then acquired Shockwave with Macromedia in 2005. Shockwave supports raster graphics, basic vector graphics, 3D graphics, audio, and an embedded scripting language called Lingo.
The Media Control Interface — MCI for short — is a high-level API developed by Microsoft and IBM for controlling multimedia peripherals connected to a Microsoft Windows or OS/2 computer, such as CD-ROM players and audio controllers.
ScriptX is a discontinued 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. Rather, it is a general-purpose, object-oriented, multiplatform development environment that includes a dynamic language and a class library.
The Apple Media Tool was a multimedia authoring tool and associated programming environment sold by Apple in the late 1990s. It was primarily aimed at producing multimedia presentations for distribution on CD-ROM and was aimed at graphic designers who did not have programming experience. It featured an advanced user interface with an object-oriented user model that made production of rich and complex presentations easy. Its competitors were Macromedia Director, Quark Immedia, mTropolis, and Kaleida Labs ScriptX.
Microsoft Bookshelf is a discontinued reference collection introduced in 1987 as part of Microsoft's extensive work in promoting CD-ROM technology as a distribution medium for electronic publishing. The original MS-DOS version showcased the massive storage capacity of CD-ROM technology, and was accessed while the user was using one of 13 different word processor programs that Bookshelf supported. Subsequent versions were produced for Windows and became a commercial success as part of the Microsoft Home brand. It was often bundled with personal computers as a cheaper alternative to the Encarta Suite. The Encarta Deluxe Suite / Reference Library versions also bundled Bookshelf.
QuickTime for Java or QTJ is a software library that allows software written in the Java programming language to provide multimedia functionality, by making calls into the native QuickTime library. In practice, it allows Java applications on Mac OS, Mac OS X and Microsoft Windows to support the capture, editing, playback, and export of many different media formats and codecs.
Adobe Director was a multimedia application authoring platform created by Macromedia and managed by Adobe Systems until its discontinuation.
The Pippin is a defunct open multimedia technology platform, designed by Apple Computer. According to Apple, Pippin was directed at the home market as "an integral part of the consumer audiovisual, stereo, and television environment".