A DE FACTO ANTI-STANDARD FOR CYBERSPACE
A DE FACTO ANTI-STANDARD FOR CYBERSPACE
Randal Walser
Autodesk, Inc.
A speech at
Meckler Virtual Reality Conference
Fairmont Hotel
San Jose, California
September 23-25, 1992
(To appear in conference proceedings)
INTRODUCTION
When I spoke at this conference two years ago I presented a vision of
cyberspace as an emerging new medium and I sketched out some ideas for
what it would take to foster a cyberspace industry. I compared and
contrasted cyberspace with other media, particularly film, the theatrical
stage, and the computer desktop. I pointed out that the impediments to
a cyberspace industry were not primarily technical, but rather economic
and conceptual. I felt it was vitally important that we understand the
unique qualities of cyberspace, and then apply technology in a way that
would bring out and support those qualities. The problem, however, was
that we were caught in a classic chicken and egg situation: we couldn't
understand cyberspace without experiencing it directly, yet we couldn't
do that without building an underlying technology. I suggested that the
way out of the dilemma was to give up all ideas of creating the ultimate
cyberspace system, and concentrate instead on the development of systems
and tools that would foster widespread experimentation, both with
cyberspace and with alternative cyberspace systems. Toward the end of
my talk I briefly mentioned Trix, a programming system, under development
at the time, that would give programmers unprecedented power and freedom
to explore alternative evolutionary pathways.
Today I'm here to give you an update on Trix, particularly as it relates
to a cyberspace industry. Time is limited, so I'm not going into great
detail about what Trix is -- that's really a subject for a more technical
conference. Rather, today, I want to explain why Trix is; that is, the
philosophy underlying it, because Trix is a system that's specifically
designed for application in the early stages of the industry. Before
proceeding, so there is no misunderstanding, let me emphasize that Trix
is not, itself, a cyberspace system. Nor was Trix ever intended to be
the definitive cyberspace programming language. Rather, Trix is
intended to be a thoroughly open technology for experimenting with
cyberspace and devising techniques and languages peculiar to cyberspace.
Most of all, it was designed to be instrumental in the emergence of a
cyberspace industry.
Since Trix was developed at Autodesk, in order to further Autodesk's
initiative in cyberspace, it may seem that I'm using this occasion
inappropriately to promote Autodesk's interests. While it is true of
course that the motives for developing Trix coincide with Autodesk's
motives with regard to cyberspace, I hope you will see that my comments
bear on the concerns of any company wishing to play a role in the emerging
industry. In any case, I can assure you that my purpose here is not to
sell Trix. In fact Autodesk has no immediate plans to market Trix,
though we most certainly plan to market a cyberspace developer's kit that
includes essential cyberspace technology.
FOUR YEARS AGO IT SEEMED EASY
Four years ago it seemed easy. John Walker, the founder of Autodesk, had
just written "Through the Looking Glass," the classic white paper in
which he put cyberspace in historical perspective. The idea of
cyberspace, or of something like it, had been bandied about by hackers
for years. A score of pioneers had already demonstrated simple spaces,
but they were the avant garde. To most people, cyberspace was the stuff
of science fiction. Walker, however, was serious about making it serious
business, and he argued convincingly that cyberspace was not only
possible, but that it was a natural and inevitable progression of
computer technology. Unlike many other new fields, there were few if any
technical barriers. The ingredients of cyberspace, both hardware and
software, were well developed and readily available. It remained simply
to package them in a new way, to support the new medium. Walker
challenged Autodesk to take the lead in cyberspace, to have the
"... vision to see the opportunity, the courage to break new ground, the
decision to do it, and the will to see it through." Autodesk accepted
the challenge, formed a project, and demonstrated a working system, based
around ordinary personal computers, in just over four months.
I was a member of that first cyberspace project at Autodesk, and I can
tell you those were intense and exciting times. Our mission, from the
beginning, was to promote the emergence of a cyberspace industry, but at
first we really weren't sure cyberspace would "take." All doubt was
quickly removed, however, when we demonstrated our prototype at a trade
show in Anaheim, and shortly thereafter at SIGGRAPH in Boston. The
response, to put it mildly, was overwhelming. The crowds were gigantic,
and it seemed they'd never stop coming. In Boston they swamped our
hotel suite, where we'd intended to give private demonstrations, and they
streamed in and out relentlessly throughout the night and early morning.
I remember catching about an hour of sleep, on the floor at about five in
the morning, as the crowd milled around me. There was something about
cyberspace that absolutely grabbed people, to such an extent it seemed
irrational. Many compared the experience to a vivid dream. I'll never
forget one handicapped person, tears streaming down his face, who had
just had a vision of being whole again in a virtual body. By then, we
knew we'd uncorked something special, and we were certain we had the
makings of an industry. In six months we had proved Walker right:
cyberspace was inevitable, doable, and imminent.
Or so we thought. That was more than three years ago. Today, while a
lot of important and interesting progress has been made by many
individuals and companies, the cyberspace industry is still in an
embryonic stage. This has been a source of great frustration and
disappointment to many who bet their talents and their money on the quick
emergence of an industry. It looked so easy. Yet here we are today,
facing essentially the same problems.
THE WILL TO DO IT
I don't pretend to know exactly why things have moved slowly, but I can,
perhaps, offer some words of encouragement. I find myself coming full
circle at this point. Over the years I've worked on cyberspace, I've
gone from optimism to enthusiasm to frustration to bewilderment. Now, as
I consider worldwide developments in the field, slow as they may be, I'm
coming back round to cautious optimism. If Walker was a bit off in his
timing, time has made him right again: cyberspace is imminent because
the processes that engender industries have been at work for some time
now, for cyberspace, though we who work in the field are probably too
much a part of those processes to appreciate their cumulative effect.
Part of the problem, of course, has been that many of us expected too much
too soon. Most of us in the field are technologists, so it was natural
that we would look at the technology, see nothing particularly difficult,
and conclude that we only had to put the nuts and bolts in place and the
industry would emerge automatically. What we overlooked was that
technologies do not make industries. Technologies are essential,
certainly, to all industries, but social, economic, and organizational
factors are also critical.
Comparing the emergence of cyberspace to the emergence of other
industries, it is clear there's nothing exceptional about a cyberspace
industry, exceptional as cyberspace itself may be. It took over ten
years for the movie industry to emerge from the time the enabling
technology of filmmaking was invented. Television ran a similar course
and so, most recently, did the computer desktop, if you start the clock
about the time of Douglas Engelbart's early experiments with mice,
screens, and the augmentation of human intellect (as he put it).
As a technologist, I must admit that I'm puzzled by the long time course.
I tend to think that if we can do the job, technically, and if the stakes
are high enough, as they are with cyberspace, then we can find a way in
short order to put the requisite infrastructure in place.
We knew four years ago, for example, that cyberspace costs too much. We
knew there could be no industry comparable to the desktop industry until
cyberspace systems cost no more than ordinary personal computers. But
we figured numerous hardware vendors would see the opportunity and supply
affordable devices, like head-mounted displays, gloves, and trackers,
that support immersion. Certainly some vendors have seen the
opportunity, and are trying heroically to lower costs to end users. But
the ones who are trying are mainly little guys who can't afford to
produce affordable products, while the big guys, who could make
affordable products, are reluctant to try because they don't see the
opportunity. Now it would be easy to say "Well, that's it, that's what's
holding cyberspace back: it costs too much." But again, there's
nothing remarkable in this particular bottleneck, as industries go. It's
always the case that products are expensive, initially, and then plummet
in cost as the particular industry kicks in and matures.
So it seems to me the reason cyberspace is taking so long to emerge
is not due only to the affordability issue, or to technical difficulties
in creating the infrastructure. Given the will, technologists will
always find a way. What has been lacking up to this point is the will to
seize the opportunity. By will, here, I do not mean simply the
willingness to take on the challenge, but rather a motivating belief in a
new way of doing things. Industries take about ten years to emerge
because it takes about that long for communities of people to change
their minds.
A new industry isn't like a new machine, after all. A new industry is a
new society, and those who join it must have the will to pull up stakes
and leave an older society (an older industry). This is not an easy
thing for people to do, and it is naive to expect people to do it without
substantial justification. In the end, for most people, the
justification is economic. If you're sure the new way of doing things
will make you money, and change your life for the better, then it's much
easier to leave older ways of doing things behind. If you aren't sure,
then you'll only make the change as a leap of faith -- and you'll only do
that if you've already changed your mind and embraced a new world view.
THE GAME ALWAYS CHANGES
OK, so what? Why does this matter? It matters because we are all
entrepreneurs, where cyberspace is concerned, and it behooves us to get
some perspective on what we're doing relative to what we want to
achieve. Unless we understand that cyberspace is fundamentally
different from other media, we will continue to try to build it using old
approaches and techniques. We also must understand that it is not enough
to build cyberspace technology, nor even to build cyberspaces. I do
think it's vitally important for cyberspace technology to be driven by
honest attempts to build cyberspaces, but above all we must be explicitly
conscious of the fact that we are building an industry as well as a
medium. Cyberspace will not emerge, and can have no significant effect in
the world at large, until it becomes profitable. None of us, in the end,
can make money with cyberspace until all of us can make money with
cyberspace.
On the other hand, once we understand that we're seeking to establish a
whole new way of doing things, then the absence of infrastructure can be
appreciated not as problem, holding back the industry, but rather as part
and parcel of a natural progression, and a marvelous opportunity. The
computer industry today has passed from maturity into a period of
stagnation, with most of the players jostling for elbow room within niches
they staked out years ago. When John Walker proposed the formation of
Autodesk in 1982, he rallied his cofounders by pointing out that the
game, in the computer industry, had changed. About a year ago, in a
famous internal Autodesk memo called "The Final Days", Walker pointed out
that the game has changed once again. I would add that the game always
changes, and it is entrepreneurs who change it.
What I'm suggesting is that cyberspace entrepreneurs have a unique
opportunity, today, to change the rules of the game in the computer
industry. While I'm skeptical of revolutionary proposals to leapfrog
today's computer industry in a near time frame, for reasons I've just
cited, I do believe that cyberspace entrepreneurs can accelerate the
evolutionary processes that will eventually lead not just to new rules,
but to a whole new game.
The important thing for us to realize, as cyberspace entrepreneurs, is
that we have a tremendous advantage over those who haven't embraced the
cyberspace paradigm. While established companies play a defensive game,
protecting their interests in older paradigms, fast-moving entrepreneurs
can redefine the game on their own terms, knocking out the ability of
other companies even to compete. The danger to the defenders of the
status quo is that they will be blind to the changes the entrepreneurs are
making. They are likely to end up like the French army fighting the
Blitzkrieg in World War II: foolishly defending strategically
irrelevant ground while their new competitors "hit em where they
ain't."
The history of the computer industry is replete with examples of once
successful companies who lost their entrepreneurial spirit and suffered
devastating losses, or went out of business. DEC, Wang, and Data
General, to cite three recent examples, aren't in trouble because their
products are inferior. They are in trouble because times have changed
while they stood still, or moved too slowly. Today the personal computer
reigns, and quality minicomputer products are now irrelevant. It wasn't
that DEC, Wang, and Data General couldn't have been competitive. They
simply didn't see the competition coming at them.
DIVERSITY
If there is anything that stands out about the computer industry today it
is diversity: in computers, languages, operating systems, interfaces,
styles, techniques, peripherals, protocols, and even, paradoxically,
standards. We can view the industry as a Tower of Babel, and try to put
our own standards in place, or we can understand that computers breed
diversity, and bank on it. Diversity is healthy for business, and
particularly for entrepreneurs seeking to create new markets.
The emerging cyberspace industry is especially amenable to a multicultural
approach because it is based on a radically new paradigm that emphasizes
social interaction, and it represents a distinct break with traditional
ways of using computers. The industry is so new that opposing camps
have not yet formed, so there is an opportunity to establish a prevailing
multicultural philosophy emphasizing adaptation across camps and
application areas. To promote diversity, at this early stage, we need do
little more than come out in favor of it, and devise enabling tools that
put a premium on adaptation rather than standardization.
INTERACTIVE SYSTEMS ARE BETTER EVOLVED THAN SPECIFIED
Trix is one such tool. It is a programming system for professional
programmers who wish to devise their own cyberspace systems, their way,
with building blocks from disparate sources. The original motivation
for Trix stemmed from an early design choice we made at Autodesk. We
wanted to build a cyberspace system, but we weren't sure how to proceed
because none of us had ever built one. We had plenty of ideas and
theories, to be sure, based on years of experience making other kinds of
software, but no one qualified as an authority. Worse, none of us had
ever even experienced cyberspace. Of course, at that time, hardly
anyone had, anywhere. So we figured we had two basic choices: we could
pretend to be authorities and specify what we thought a cyberspace system
ought to be, or we could be honest about our lack of expertise and take
an evolutionary approach, growing a system, with the help of our
customers, in light of numerous evolutionary experiments. We were
hackers by nature, so naturally we took the later course.
The traditional approach to software engineering is to first specify a
system, in response to a perceived list of requirements, and then to
write code that satisfies the specification. In many organizations this
requires three different sets of people: systems analysts, who determine
the requirements; software engineers, who write the specifications and
implement the code; and quality assurance specialists, often software
engineers themselves, who guarantee that the final code reliably
satisfies the specifications. These, in fact, are the basic operational
rules of the game in the computer industry today, and they work very well
for the development of products in well understood fields.
Unfortunately, the traditional approach is a very poor way to develop an
interactive medium. There is nothing wrong with specifications written
in response to genuine needs, but theoretical specifications are useless,
at best, and possibly even debilitating, particularly for an intensely
interactive medium like cyberspace. The point is: YOU CAN'T KNOW HOW
SOMETHING WILL FEEL WITHOUT FEELING IT. You can imagine, but that's to
say you can hold a theory of how it will feel. In the first phase of the
cyberspace project at Autodesk we knew that any specifications we wrote
would be purely theoretical, because they could be neither motivated nor
informed by our own experiences in cyberspace. In other words, we
didn't believe we could do a good job of designing and specifying a
cyberspace system, but we did think we could grow an effective one.
MOTIVATION FOR TRIX
Of course, to say that a system grows is to say it changes a lot.
Anticipating this, we also made an early commitment to an object-oriented
software paradigm. We envisioned our evolving cyberspace system to be a
modular collection of simple components that could be easily plugged in
or pulled out. For practical reasons, which I'll come back to
momentarily, we decided to grow the system in C++. This proved to be a
very good choice, but it had one major drawback. Since we wanted to
explore many evolutionary pathways, in order to converge on the "fittest"
code, we needed to write and try out a lot of alternatives. Most
implementations of C++ aren't good for this purpose because they are
compiled languages, and compilation takes a lot of time, particularly
when you're making a lot of small changes and submitting them, over and
over again, to a compiler. We wanted the advantages of C++, in other
words, but we also needed interactivity. Furthermore, we needed a way
to make our system programmable by end users, but without requiring them
to purchase a compiler from a separate vendor.
So Trix was originally conceived as a way to provide programmability to
end users of our evolving cyberspace system. Again, I won't go into
detail about how Trix is implemented, because I want to focus on its
origins and purpose, which was to promote and enable experimentation
with cyberspace, in order to further its evolution. Trix is fundamental
to that purpose because it gives programmers unparalleled power to devise
their own systems of expression and interaction -- to develop their own
evolutionary pathways, in other words, in search of the very best ways to
implement cyberspace. This is good for an emerging industry because it
fosters experimentation and competition, which promotes excellence.
PROGRAMMABILITY
To be accurate, the power of Trix to foster evolution is really due to
Forth, one of the languages underlying it. The reason for this has been
explained beautifully by John Walker, who created Atlas, the
implementation of Forth out of which Trix evolved. I don't think I can
improve upon Walker's explanation, so I'll quote at length from his
document on Atlas, written in February of 1990.
He sets the stage by mentioning that it was "Autodesk's strategy for
AutoCAD from inception that it should be an open, extensible system."
"Today," he says, "virtually every industry analyst agrees that AutoCAD's
open architecture was, more than any other single aspect of its design,
responsible for its success and the success Autodesk has experienced."
Despite this fact, Autodesk habitually produces programs that are closed,
that admit "no extensions without our adding to [their] source code."
Why is this so, considering that Autodesk does in fact offer an extensible
interpreter, AutoLisp? The reasons, Walker says, are that 1) interpreters
like AutoLisp are intrinsically "slow, slow, slow," and 2) writing
an open program, using a traditional compiled language, is
inherently difficult. Walker presents Atlas as an alternative that is
much smaller, faster, more fundamentally extensible, and more portable
(because it carries its own text-based i/o facilities and can easily be
embedded in compiled code, regardless of operating paradigm). In
concluding the Atlas document, Walker says
Everything should be programmable. Everything! I have come
to the conclusion that to write almost any program in a
closed manner is a mistake that invites the expenditure of
uncounted hours "enhancing" it over its life cycle. Further
tweaks, "features," and "fixes" often result in a product
so massive and incomprehensible that it becomes
unlearnable, unmaintainable, and eventually unusable.
Far better to invest the effort up front to create a product
flexible enough to be adapted at will, by its users, to
[meet] their immediate needs. If the product is
programmable in a portable, open form, user extensions can
be exchanged, compared, reviewed by the product developer,
and eventually incorporated into the mainstream product.
It is far, far better to have thousands of creative users
expanding the scope of one's product in ways the original
developers didn't anticipate ... than it is to have
thousands of frustrated users writing up wish list requests
that the vendor can comply with only by hiring people and
paying them to try to accommodate the perceived needs of
the users. Open architecture and programmability not only
benefits the user, not only makes a product better in the
technical and marketing sense, but confers a direct
economic advantage upon the vendor of such a product -- one
mirrored in a commensurate disadvantage to the vendor of a
closed product.
I first read these words at a time when, coincidentally, I was trying to
work out a way for customers to program and extend Autodesk's first
cyberspace developer's kit. I'd considered several alternatives, and
had concluded that a threaded approach made a great deal of sense for
cyberspace. Early on, I wanted to create a "cyberspace construction
kit," ala Apple's Hypercard, that would integrate simulation, multimedia
techniques, and programming. I'd built several small applications in
Hypercard and I was greatly impressed with it, especially with its power
to engender highly energized communities of creative artists.
Unfortunately, despite its many virtues, Hypercard left me frustrated
because it had several debilitating built-in limitations.
When I read Walker's Atlas document I could see he was getting at exactly
the same thing as Bill Atkinson of Apple, the principal creator of
Hypercard. The major difference was that Walker was focused on enabling
programmers whereas Atkinson was focused on enabling non-programmers. For
cyberspace, I knew we would eventually need something like Hypercard, a
construction kit that artists of various types can use, not just
programmers. But we were at the very beginning (as we still are), and it
seemed to me that the best way to build a construction kit was to equip
our third-party developers with industrial-strength, interactive, and
fundamentally customizable tools. Whereas Atkinson was constrained to
develop Hypercard out of an infrastructure that was fundamentally closed,
we could go the way Walker suggested and develop a construction kit that
was fundamentally open, from the ground up. If our customers perceived
limitations then they would have all the power they needed to remove the
limitations themselves. They would never be stuck and helpless because
we had overlooked something peculiar to their needs
BEYOND FORTH
The only problem was Forth. I was open to it because I'd worked fairly
extensively in it in the past, mostly in videogames. I knew it gives
programmers unprecedented control and flexibility, but I was also keenly
aware of its reputation as a quirky language that's "easy to write but
hard to read." Worse, it lacks many features C programmers consider
essential, like local variables, function arguments, and data structures.
It also lacks object-oriented features, a requirement that practically
everyone agreed was essential for cyberspace programming. The needs and
sensibilities of C and C++ programmers are of paramount importance
because the software industry today is dominated by C, and there is a
clear trend toward C++. So it was clear that an extensible macro language
for Autodesk's cyberspace developer's kit must not only be compatible
with C and C++; it must also be palatable to C and C++ programmers.
Forth, clearly, does not fit that bill. I knew Walker was right about
the power of Forth, but I also knew he couldn't sell it to C
programmers. He tried, but it was too easy for nay-sayers to rattle off a
litany of perceived deficiencies.
My idea was utterly simple: augment Forth, systematically removing the
deficiencies, while retaining the virtues, so that no one could object,
on rational, technical, or marketing grounds, to Walker's ideal of a
fundamentally open programming system. Publicly, I stated that Trix's
design goals were to "enable cyberspace development, give control to
developers and customers, accommodate diversity, encourage
experimentation, provide interactivitiy, and support object
orientation." Privately, however, the goal was mainly to augment Forth,
to the satisfaction of C programmers. I didn't mention this goal in
public, until now, because I didn't want to risk offending my fellow
Forth programmers. To Forth purists, there is nothing wrong with
Forth. What it lacks, it lacks on purpose. To them, nothing matters so
much as simplicity. As they say, Forth contains everything necessary,
and nothing more. I respect that minimalist aesthetic very much, and in
fact I held steadfastly to it during the development of Trix. Still, I
knew it wasn't enough to build a system with the creative power and
freedom of Forth. Trix also had to be marketable, and that meant I had
to implement those features, on top of Forth, which C and C++ programmers
consider essential.
In the end, I created a programming system that is an amalgam of Forth,
C++, and Lisp. Even though the syntax is postfix, like Forth, it looks
very much like C++. Virtually all the features of C++ are implemented,
though Trix presently supports only single inheritance. Trix also
includes a simple dialect of Lisp, and this could easily be extended, to
implement dialects like AutoLisp or Scheme.
THE OLD GAME
Let me emphasize once again that my purpose here is not to sell Trix. It
is Trix philosophy that's important to cyberspace, and there are many
ways to implement that philosophy. Languages are a lot like religions in
that people become very devoted to them. Choices between languages often
have more to do with personal styles, attitudes, and backgrounds than
with technical merit. My own feeling, reflected in Trix design and
philosophy, is that savvy information age companies should not, as far as
possible, force their customers and third party companies to make
exclusive choices. Persuading people to give up the tools and languages
they already use or prefer is like trying to convert people from one
religion to another. It can be done, but it is a very tough sell, and it
serves to fragment rather than engender markets.
Yet that is precisely the game most software vendors now play. Enormous
energy and expense goes into "evangelizing" The Way We Do It. The usual
message is: "Our way is the best, and here's why ... come join us ... we
welcome you." It is as if the software industry is divided into
numerous opposing cultures, or camps, and the game is to get people to
switch camps. The way the game is usually played requires that customers
give up one camp, including their investments of time, money, and
identity, in order to join another one. XYZ Company comes out with a
new operating system or toolbox, for example, and mounts a massive
campaign to win over software developers. Much ado is made over the
cool XYZ tools the developers will have at their disposal, but no mention
is made of the fact that many developers will have to abandon tools and
techniques they used previously, at huge cost ("Oh yeah, did we mention
you MUST write in Pascal?"). It's like telling a Spaniard she can
become an American on condition she never speak Spanish again.
DE FACTO ANTI-STANDARD
To understand the significance of Trix philosophy you have to understand
that Trix is a language designed to capitalize on a moment in the history
of an emerging industry. By way of comparison, Basic became a de facto
standard in the personal computer industry in large part because it was
introduced at a critical moment in that industry's early stages. It had
an enormous impact, setting not only a standard but also a tenor, a sort
of aesthetic. As McLuhan said, the medium is the message, and Basic
preached a philosophy of exclusion: "You will speak and do as I do."
Imagine the impact a language like Trix might have had, with its
underlying organic and multicultural philosophy that says "You can adapt
to any language or environment."
My vision for Trix was never to create a de facto standard for the
cyberspace industry, but rather to create a de facto ANTI-standard that
enables people to contend with and exploit diversity. This may seem to
be a prescription for anarchy to those playing the old game who believe
companies should attempt to dominate by setting up a camp (a standard)
and then cajoling as many people as possible to join it. But Trix was
not designed to help Autodesk dominate. It was designed to help Autodesk
thrive in an ever-changing, fast-paced, and increasingly diverse set of
marketplaces. Standards and dominant players will come and go, but
those who survive will accept diversity as a fact of life. Those who
thrive will be adept at adapting to the ways and requirements of any
market or situation that presents an opportunity.
Comments
Post a Comment