[PREVIOUS] | [FIRST]

VI. Appendix: Technology Survey

What is in the future? I cannot be exhaustive here, for lack of time and knowledge, but I'll try to spread my net widely enough to catch general purpose systems of potential interest to scholars at Stanford. Please note that this telescoped survey contains no recommendation of particular technologies.
 
 

VI.B. Schematics
 
 

I summarize my judgment of user and development environments in the following two figures. I plot quality vs. time in a highly schematic fashion, with no empirically quantified metric.
 
 

The quality of the user environment is a product of expressivity, transparency and power. This is largely a function of the shrink-wrap applications and in particular cases, researchware or instructional software written by peers or experts.
 
 

Figure 2. User Environments.

The quality of a development environment is a product of the expressivity, power, and human as well as computer efficiency. In this context, we need to weigh how much we can multiply staff productivity by the power of the development environment.
 
 

Figure 3. Developer Environments.

VI.C. Overview
 
 

There are four technology layers to consider:

* user level applications and tools ("productivity" applications) like Mosaic/NetScape, PhotoShop, Premiere, Pages, TeX, Mathematica;

* application programmer environments (scriptable applications) or frameworks like Hypercard/Supercard, MediaWeaver, NS ProjectBuilder/InterfaceBuilder/appkit, Kaleida ScriptX, Mathematica, TalDE, SK8, Oracle Media Objects;

* core software environments: operating systems, software engines and software libraries like NS, Taligent TalOS, UNIX/X,Mac OS

* hardware and network: power, cable, cpu hardware, storage, network protocols like ATM, MBone
 
 

Stanford has the least influence over the design of shrink-wrap user applications and core software, so we have to assemble components in these layers in a strategic manner. Regarding core commercial technologies, it pays to have some technical input into commercial vendor's design. Here, strategic relationships between Stanford and vendors should occur not only at the business/administrative level, but also at the technical level. We had some good results from early input into the development of key technologies, eg. the color Macintosh computer (aka Paris), the NeXT computer, and Hypercard (aka WildCard).
 
 

Historically, such early input required brief, but intense exposure to new alpha technologies, which was sometimes rewarded with early access to machines, and to enabling technologies which allowed us to implement much richer systems than before. ("Do more in the same amount of time." Same cost, longer reach.) But this never translated into additional University support for the software development group, a disincentive for this sort of practical knowledge transfer.
 
 

With all technology frameworks, the key question is of course, leverage: how much more can developers deliver with limited money and time using the most expressive environments.
 
 

VI.D. Now/Near Future (<= 1 year)
 
 

Productivity Applications

In all categories, we'll see a set of commercial productivity applications, such as word processors, graphics editors, video editors, presentation software, (text) mail designed for business workflow, with very few applications aimed at scholarly work.
 
 

The PC may have the numbers, but Mac has the edge in integration. Typically, even expert PC users must spend hours to set up a new PC -- each piece of hardware has its byzantine setup and incompatibilities. The Mac world is far simpler, with plug and play in both software and hardware. For example, internationalization (also called localization) is best done at the system level, rather than by individual applications. Apple WorldScript supports not only Chinese, Hebrew, and Japanese scripts, but all foreign languages in a systematic fashion, whereas for a PC one would buy a program specially designed in one language, leaving the other installed applications to fend for themselves.
 
 

One may think of the NeXTSTEP user environment as UNIX with the face of a Mac plus five years of R&D. What was often overlooked is that many of the productivity applications which must be separately purchased, and manually integrated on Mac/PC/X systems even today came bundled with NS:

* multimedia mail

* multimedia bulletin board

* full text search engine which could be applied to arbitrary structures and personal files.[55]

* unified hypermedia objects

* dynamic data object

* network (Ethernet built-in)
 
 

Bureaucratically speaking, one problem was that NS was designed to be a personal computer with UNIX capabilities whereas UNIX evolved as a system which demanded system administrators, a symbiotic class of experts intimately tied to that particular OS. System administrative logic demands uniformizability -- hence their rejection of Macintosh, and grudging NeXT support. Another problem with NS was that one could buy only a cadillac in each category of productivity software, sold at UNIX prices: FrameMaker -- the most sophisticated WYSIWYW word-processor on the market, Tiffany -- the most sophisticated graphics editor, the most sophisticated version of Mathematica, MediaStation -- the most sophisticated multimedia authoring system, etc.
 
 

Development Environments
 
 

Given a choice between programming scripted, interoperating applications for NS, X Windows, Mac OS and Windows, I estimate that the relative cost and complexity is: NS (1), X Windows (4), Mac (5), Windows (8), where 10 is worst. The savings can be astonishing, though statistics must inevitably be filtered through managerial anecdotes.[56]
 
 

NS enjoyed several advantages, including:
 
 

* simple, dynamic, GNU-standard, expressive object-oriented language

* multimedia presentation views

* hardware-independent distributed storage

* built-in multimedia communication (email, bulletin board)

* customizable structure-based search framework

* portable distributed objects

* built-in Renderman 3D geometry & Display Postscript

* sophisticated sound and music framework

* a built-in data-access framework linking to commercial databases

* an AppKit which is the best commercial OOPE, and has a simple and expressive native language

* productivity: using C, C++, UNIX, + X Windows, it would take months for a programmer to produce what could be done in weeks using NS.

* standard Internet services
 
 

MacApp was the principal Macintosh OOPE, part of the official Mac development system. But Apple has given up trying to reflect all its new additions to the Mac OS in MacApp's classes, which hampers professional-quality application development in this framework. The migration path for this environment is unclear since Bedrock quietly died. ProGraph is a popular OOPE with a graphical interface, but it lacks the headroom of a full development environment like MPW or the NS Appkit.
 
 

MacroMind Director and Hypercard are two of the dominant presentation and scripting applications. Director was poorly-conceived and therefore is used primarily to create minimally-interactive playback titles. Its language and scripting environment -- a mixture of metaphors: musical scores, playscripts, event-driven programming, sprites -- is baroque. Hypercard is also at end of its life-cycle, and never provided complete access to the Mac OS. And there is no easy migration path for Hypercard applications to a modern heterogeneous network. Years ago we expected Atkinson/Apple to break it up into components which would be embedded into the Mac OS. Apple has finally started to do this with products like FaceSpan and AppleScript, but it may be overshadowed by the introduction of interactive scripting systems like Kaleida's ScriptX or General Magic's Telescript.
 
 

There are many other authoring systems: Authorware, Toolbook,PowerPoint etc., which belong to the older generation of presentation software.
 
 

General scripting environments
 
 

AppleScript for the Mac OS has nowhere near the robustness and universality of UNIX's PERL, for example, and moreover is still facing uphill fight in vendor adoption. Apple provides its own competition. SK8 has quite an elegant and powerful language, but shows lack of experience with large-scale industrial-strength OOPE, and couples with the Mac Toolbox in a way which will make it difficult to evolve it to a more robust and portable development environment.
 
 

Neither NS nor TalOS have scripting languages, though NS, being UNIX-based can use PERL and TCL/TK scripting languages, which is an advantage. The first TalOS release will be based on IBM's AIX UNIX system which does have strong UNIX-style support, but this is not integrated into a Taligent development environment. In the X world, there's TCL/TK and the usual UNIX tools and widget set (see my remarks on the X user environment).
 
 

Kaleida's ScriptX looks like it may be quite powerful, but is not yet interoperable with legacy software. In its first release, ScriptX will be bound to its own runtime environment, and so its objects must be remapped in turn to the host operating system. To port ScriptX would be a difficult task, especially because of its need to guarantee precise media playback. Nonetheless, Kaleida seems like the optimal path to follow by interactive media developers who need to stretch beyond the user desktops of the eighties.
 
 

There are many other scripting languages, including JAVA[57], Telescript, NewtonScript, SK8, AthenaMUSE and Mathematica. JAVA seems to be particularly well designed for the distributed object future, but like the others mentioned in the same sentence, is not bound to a fully-fleshed development object library like NS or Taligent.
 
 

Operating systems
 
 

From a developer's perspective, the Apple OS reached the end of its life-cycle a few years ago. Circa 1986 we[58] debated the virtues of UNIX and Mac OS' and concluded that it was a toss-up between embedding UNIX features (scripting, multi-tasking, network support, etc.) into the Mac OS, or putting Mac features (GUI, subtle HCI) into UNIX. Then the NeXT came out as both an OS and hardware rationally designed for scientific computing for non-programming academics. Nothing like it has since appeared. (The closest descendants, Taligent and Cairo, are aimed at general purpose business users, not scholars.) X was an abortive attempt to back-engineer a GUI on top of UNIX. (See discussion below.)
 
 

A few significant features were added to the Mac OS, most notably AppleScript which allows applications to talk to each other, and QuickTime -- a general way to manage all sorts of time-based multi-track (multi-linear) data. But each new inextensible component of the Mac ToolBox was shoehorned into a library which is fundamentally obsolete, making it prohibitively expensive for developers to incorporate such features into their applications in an elegant and user-friendly way. Another example, data-linking or drag-drop is implemented in a clumsy way. The principal value in the Mac is not so much its OS, but its attention to human interface design.

X Windows was designed by engineers without any HCI design experience who wanted to glue mice, windows, menus and other elements of the Xerox/Mac user interface paradigm to UNIX. By making many small behaviors customizable (eg. which mouse button of three brings up a system menu), they pretended to be metaphor neutral, where in fact they froze in the worst features of WIMPs and left out the carefully architected HCI design which made the Xerox/Macintosh GUI so usable. By following a typical fallacy of "more is better," the X Windows interface provides a plethora of un-integrated metaphors: iconizable windows, multiple ways to pull up menus everywhere, etc. In fact the very window = process identification itself raises user interface problems which were left un-resolved. Underneath, the widget specification mechanism in C (and later C++) encouraged the proliferation of massive libraries of intricately interdependent code which are difficult to maintain, difficult to extend, but easy to work around. This was an ideal environment for engineering students to play with, but a headache for academic organizations with tiny development resources which need to deliver rich user interfaces that behave differently from engineering workstations.
 
 

Hardware
 
 

We're in transitional period when it's not clear where to draw the line between servers and base-line, front-line machines. I say it still makes sense to spread the money in a heterogeneous fashion and put a few large compute servers on the net. One example is the lab containing a multi-processor SGI and a set of little SGI's installed in Sweet Hall for computer graphics courses.

SUNet's workstation hardware now includes Sun, HP, IBM, and SGI. Aside from the Macintosh, SGI is the only well-distributed computer vendor with highly demanded proprietary hardware. But most of its advantage derives from its polygon-based graphics hardware, rather than from its OpenGL library.

Personal computer hardware includes Mac and IBM PC equivalents. PC hardware is notoriously complicated to assemble and populate with software, as noted above.
 
 

Network infrastructure
 
 

I defer to Networking's expertise on this issue. Suffice it to say that the Apple networking software may have prettier interfaces but is a travesty under any significant load (rich media, networks of more than 4-5 machines, concurrent access).
 
 

VI.E. coming soon (next year)
 
 

Productivity applications
 
 

We should see cross-platform applications for ordinary users. Large-scale MediaWeaver-type systems should begin to appear, but will cost more than SULAIR may be willing to pay. (eg. Illustra-quality, $100K - 200K/year for object-oriented multimedia database systems, including delivery platforms, development kits and user training.)
 
 

Development environments
 
 

Typically, OS/development environments have a base language (eg C++), an object library (NS appkit), tools (interface builder), and a scripting layer. CORBA is a lower-level specification of how objects from one system can talk to objects in another. For years, the only working commercial distributed object system has been NS. Unfortunately, firms such as Taligent and Microsoft are competing by bringing out their own OOOS/OOPE, rather than distinguishing themselves at higher layers. It would be more rational to improve upon an OOPE refined by use, rather than re-invent the wheel on such a massive scale. In any case, it is unclear if CORBA will be more than an esperanto for different object frameworks.
 
 

The most promising aspect of the Apple technology may be its entry into the OpenDoc paradigm pioneered in the commercial realm by GO PenPoint's Embedded Architecture. We will have to see how AppleScript and OpenDoc co-exist with more flexible environments such as those written in Dylan and ScriptX. Kaleida ScriptX is aimed at the Mac/PC base, and may be restricted for purely market reasons to such legacy OS for the next few years, but we may cultivate a mildly privileged relation with Kaleida.
 
 

TalDE is potentially the most thoroughly worked-out OOOS/OOPE, having drawn most deeply from the combined experience of NS and MacApp. Taligent is a significantly more complete than NS in its base frameworks, but has no comparable development and user environments, yet. These are transient problems. Its principal weaknesses include (1) a byzantine language -- a highly idiomatic, verbose and bug-friendly version of C++, and (2) a first generation bestiary of objects that needs a second round of rationalization and streamlining. (NS underwent two such editions, v 1.0 ca 1990, and OpenStep in 1994-5, which gave it a large boost in development ease and power.) [59] In any case, since NS relied on UNIX/Mach for a large portion of its basic functionality, whereas Taligent has a complete set of frameworks which abstract its environment away from not only the hardware but also the operating system, Taligent represents the most robust architecture-neutral commercial operating system that we have examined.
 
 

NS on HP CORBA, Sun Solaris: OpenStep will be NS's incarnation on that Sun platform, which will give at long last, the traditional UNIX/X Windows platforms a powerful OOPE.
 
 

Other operating systems
 
 

New operating systems include Taligent OS, Sun Solaris/OpenStep + HP CORBA, Microsoft Cairo, Chicago.
 
 

Hardware
 
 

Wireless laptops are step toward ubiquitous computing. But in their current capacities, they do not function differently from ordinary laptops. Network-complexity and bandwidth problems must be solved whether data flows through physical wires or air. With the introduction of the PowerMac, the distinction between desktop PC's and workstations disappears. One interesting prospect is that PowerPC's manufactured by third parties, may come with operating systems other than MacOS or MS Windows. (Possibilities include NS and Taligent.) Servers will remain useful, because size is still important for certain services (storage, parallel processing).
 
 

VI.F. What's Years Away?[60]
 
 

Where are we headed? Perhaps the safest generalization is that information technology will fade into the background of our personal spaces. This is the fundamental premise of personal computing, which aims to embed "software" into everyday things like remote controls, mailboxes, wallpaper, pots and pans and clothing. An early harbinger of this transformation is the laptop computer.

New technologies should gradually accommodate other human modalities, particularly hearing and kinesthetic sense. Voice recognition and more subtle audio-interfaces[61] will radically change the texture of our spaces, I believe. This will enable us to work without locking our gaze to a particular region in space (now a VCR screen on a desktop).

Media-spaces such as wallboards using systems like Xerox's Where We Were[62] may turn out to be more useful than naive VR immersion. With ubiquitous multi-casting, media/data can simply shadow a student wherever she happens to be. This is a special case of a more general concept of intelligent spaces which will let us to store our information in more human-readable form.[63] It's not clear to what extent synthetic knowledge agents will mediate this, but even without agents, there are many ways to create intelligent spaces. For example, we can certainly envision the creation of "active" paper -- cheap sheets of electronic fabric which download and display media broadcast from remote sources in resolutions at least equal to today's paper books.[64] But of course, "exogenous" socio-political contingencies will determine the value of such technology as powerfully as the forms and content it embodies. 


[55] As a friendly corrective to Tony Siegman's anecdote about "to be or not to be" -- the NS/IndexingKit can be tuned to any level of specificity, multiple languages, and any set of files on the system, so it is more sensitive than a simple word finder. Also the Digital Librarian is a system-wide service, which one can use out of the box -- no other software is needed.

[56] A data point: in about 2 programmer years, the MMDD under NS supported a larger, more flexible user model than Hyper-G under X Windows (with a much larger staff). (In conversation with H. Maurer at MSRI 12/94.) Anecdotes report 2-5x amplification, assuming experienced programmers in general, more in special domains such as databases.

[57] JAVA was known as OAK, and was described by James Gosling, jag@sun.com at MSRI in Berkeley, December 1994. http://ftp.msri.org/pub/Abstracts/FMC/J_Gosling.

[58] In the CAT group.

[59] For example, Taligent has extremely cumbersome implementations of action archiving, and of notification. These are important aspects of the MacApp framework not found in NS. However, Taligent's implementation is not an improvement over MacApp's TCommand undo/redo mechanism and is actually more complicated. Part of this complexity may be traced to the choice of C++ as the implementation language.

[60] Gene Youngblood, in Expanded Cinema(1960), set out some technology forecasts which were accurate, but systematically underestimated the how much time it would take to make his technologies ubiquitous. (He mentioned home video-phones, "flat" panel displays, and wristwatch television. )

[61] Joy Mountford is one well-known HCI designer who has turned her attention to aural interfaces. CCRMA researchers have long studied precise spatial placement of audio-cues.

[62] Scott Minneman, Xerox PARC.

[63] See the proposal for intelligent 3D blackboards for geometric research.

[64] Xerox PARC, among others, is exploring technologies which will integrate paper with electronic information devices. 


[PREVIOUS] | [FIRST]
xinwei@leland.stanford.edu - June 1995