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

Popular posts from this blog

BOTTOM LIVE script

Fawlty Towers script for "A Touch of Class"