A Taligent Update

Will systemwide object frameworks reinvent programming?

Jon Udell

Taligent's long-awaited object technology, which began incubating at Apple six years ago, debuts this summer when a developer release of the TAE (Taligent Application Environment)--a collection of densely interconnected C++ frameworks--ships to 100 ISVs (independent software vendors) and corporate developers. TAE, like OpenStep, requires a host operating system. It was originally hosted on Opus, Apple's never-released 680x0-based microkernel. Then, in November 1993, Taligent rehosted TAE on AIX and standardized 300 developers on IBM PowerPC model 250 workstations--the same platform that early developers will use. When TAE ships next year, it will be hosted on the Unix systems that Taligent investors prefer--IBM's AIX , Apple's PowerOpen, and Hewlett-Packard's HP/UX--and on OS/2. By the end of 1995, TAE should also be up and running on Taligent's own microkernel-based TOS (Taligent Object Services). TOS is built on the same Mach 3.0-derived IBM microkernel that IBM's forthcoming Workplace OS uses. The two systems are evolving in parallel, and IBM and Taligent are trading technologies back and forth along the way.

Why hosted versions of TAE? There's no shortage of operating systems, and they're all converging on the same threaded, microkernel-based architecture that TOS and Workplace OS share. Taligent's investors and potential customers aren't clamoring for yet another operating system, they're asking for versions of TAE that work with the operating systems--and coexist with the applications--they've already deployed. TAE's 100 frameworks, comprising over 2000 C++ classes and over 30,000 member functions, represent arguably the richest and most complete object system yet offered to software developers. "Most systems expose a surface area," says Mike Potel, Taligent's vice president for technology development. "We expose a volume." The company says that TAE's ability to speed development of applications and enable new modes of collaborative work won't diminish when it rides on top of Unix, OS/2, or other potential hosts (e.g., a future Mac OS or Windows NT). "We map bottom to bottom--the lowest parts of our system to the lowest parts of the host," says Potel. On OS/2, for example, TAE's 2-D/3-D graphics framework bypasses the services of Microsoft's Presentation Manager and talks directly to the display drivers. TAE also uses the host's disk and network drivers, as well as its memory manager and file systems.

Why TOS? While much of the value of Taligent's object technology can be delivered at the application level, the company also sees an opportunity for object-driven innovation at the operating-system level. Decoupled, TAE and TOS can mature independently. Although the synaptic web that binds Taligent frameworks together is densely woven, few frameworks make direct operating-system calls. As a result, the transition from Opus to AIX was seamless for most Taligent engineers, says chief technologist Mark Vickers. Meanwhile, the TOS team is re-creating the operating-system services not contained in the microkernel--file systems, I/O, device-driver support, and networking--as a set of foundation frameworks. These are, in IBM's parlance, personality neutral services that run in their own out-of-kernel address spaces. If analysis shows that context switching and message passing among these processes significantly degrades system performance, some of these address spaces can be coalesced.

To enable out-of-kernel device drivers to run efficiently, TOS will borrow a technique from Workplace OS--injecting interrupt handlers into the kernel. Taligent will give its TOS device-driver frameworks to IBM for use by Workplace OS driver writers, hoping to reap a harvest of portable drivers for TOS. Like the NT driver model, Taligent's model abstracts generic devices (e.g., SCSI) to simplify the creation of specific drivers (e.g., Ultrastor 24F). However, where NT drivers must simulate inheritance of generic-device behavior by procedural means, Taligent drivers really do inherit from generic devices. In addition to adopting Taligent's driver model, IBM has optimized the microkernel so that it can efficiently handle the dozens of address spaces and hundreds of threads active in a Taligent system.

C++ is the language of choice, but only after Taligent jacks up the C++ run-time system and overhauls it. The refurbished system, like Smalltalk, NextStep, and SOM, can dynamically load classes at run time. While Taligent is building an incremental C++ compiler for multiple targets, the fruits of that labor aren't expected for some time. Meanwhile, both the implementors and the users of TAE will use standard C++ tools.

Frameworks for Innovation

A TAE framework exports two different kinds of APIs: the client and the framework. The client API offers conventional entry points that applications and other frameworks call. The framework API enables subclassing of frameworks. One major use of framework APIs will be to connect TAE to the outside world--to map the data-access framework, for example, onto ODBC (Open Database Connectivity), or the messaging framework onto standards such as X.400, MAPI, and VIM, or the document framework onto OLE and OpenDoc, or the file-system framework onto FAT, HPFS, HFS, and ISO 9660. Taligent plans to write some of these adapters but will rely on its investors and on third parties for many others. This strategy could be risky. If TAE doesn't arrive in command of a wealth of legacy services, developers will be hard-pressed to justify using it, no matter how elegant its internal architecture might be.

Clients of TAE's document, user interface, graphics, international text, data access, and other frameworks will find them to be richly functional. Objects that use the document framework, for example, can embed multiple live objects within themselves and can themselves embed within other objects. Documents can also be shared across a network according to several protocols. In one mode of sharing, independent copies of a document pass changes back and forth. In another, replicants synchronize on a canonical copy. Because documents also inherit from command objects, they're inherently scriptable and can undo and redo changes. There's no official scripting language yet, however. Taligent, a member of CIL (Component Integration Laboratories), hopes that OpenDoc's open-scripting architecture will supply the hooks for IBM's Rexx, Apple's AppleScript, and others.

Because the objects that appear in applications derive from system frameworks, systemwide tools can operate on them. The Taligent system might promote the Microsoft Word toolbar, for example, to a global tool palette that could apply emphasis and font changes to any text-framework-derived object. That's fine for Notepad-like documents built using the system text framework, but what about Quark-like documents that supply their own formats, justification, and kerning? "Even if Quark overrode 90 percent of our text framework," says Taligent's Potel, "it could retain the 10 percent that knows how to wire into the system."

C++ frameworks to date, such as TCL, MFC, and OWL, operate on a per-application basis. TAE's systemwide frameworks can afford profoundly greater leverage. The first beneficiary is Taligent. The version of TOS+TAE shown to BYTE during a recent visit ran on a Mac Quadra 800 but used no Mac software--not even the ROMs. It represented about three-quarters of a million lines of code. In contrast, NT represents 4 million lines, and that doesn't include MFC (Microsoft Foundation Classes). Taligent cites the compactness of its system as proof of the high level of reuse that TAE developers can expect.

Mac or Windows programmers today have to write a lot of code to customize system components such as windows and scroll bars. Worse, two implementations of a window with a left-justified title or a unidirectional scroll bar might look the same but won't share common code. "When you see two things that look similar in our system," says Vickers, "you can be virtually certain that they share common DNA."

User-written frameworks are the technical equals of Taligent-supplied frameworks. In conventional systems, applications that must extend the system software typically do so privately, for their own benefit. Taligent expects that TAE's radically open architecture will encourage ISVs to supply such extensions as public frameworks--which can themselves become products.

People, Places, and Things

TAE's frameworks for collaboration move beyond the container documents of OLE and OpenDoc toward a truly task-oriented virtual world reminiscent in some ways of General Magic's MagicCap. Instead of walking down the hall to a meeting room for a conference, for example, you click on an icon that leads to a virtual meeting room, after packing your virtual briefcase with the documents and software tools you'll need for the meeting. There, you meet with others--who might physically be next door or in another hemisphere--to exchange business cards, discuss and annotate documents, and conclude deals.

The business cards you collect during the meeting are tokens of great value in the Taligent system and have several uses. You can drag a business card to a phone to call someone or into an E-mail header to address a note or onto a query form to activate a lookup. The telephony, E-mail, and database applications all expect to be passed the same kind of object; each extracts a different piece of information from it. Documents, similarly, surface not merely as containers of stuff, but as another important kind of object currency circulating through the system. Taligent's human-interface designers want applications, and even documents, made subordinate to work flow. They believe, I think rightly, that you have to make computer tasks correspond much more closely to real tasks. First-generation GUIs sometimes had the right ideas (e.g., the Mac's Trashcan) but couldn't make them pervasive.

How does Taligent's TAE compare to Microsoft's Cairo? "It wants to solve the needle-in-a-haystack problem," says Vickers, referring to the way in which Cairo's distributed, object-oriented file system will collect vast quantities of data and automatically index it for rapid retrieval. While that's an important problem to solve, he allows, "why build a haystack out of all your company's hard disks?" Taligent isn't trying to build a distributed-file system or a global directory. Its strategy relies on objects that unify various flavors of these services and virtual places that structure our use of those objects.

Will the strategy work? To date, there is little hard evidence one way or the other. Taligent showed BYTE multiple active embeddings, one kind of document collaboration, and several intriguing things that business-card objects can do. But the most compelling demonstration, the one that spells out the "people, places, and things" vision, remains speculative--as of now, it's still just a Macromind Director animation. I don't think even Taligent knows for sure whether, or how effectively, the TAE frameworks can make these kinds of ideas real. That's what the first 100 ISVs and corporate developers (and BYTE) will try to figure out.


Jon Udell is a BYTE senior technical editor at large. You can reach him on the Internet or BIX at judell@bix.com.


Copyright © BYTE 1994-1995