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.
[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.