# An Interview with Stephen Wolfram

**Stephan Collart, Euromath Bulletin 2(1) (1996).**

**SC:**
What has been in your view the most important effect of
*Mathematica* since its release?

**SW:**
Basically that we've defined a whole new way for people to use computers—and that more than a million people have found out that it's a good idea.
For your audience, I'd say the most important thing is that lots and lots
of people from all sorts of fields have now been exposed through
*Mathematica* to issues about computers and mathematics—and have started
to care about them.

I guess I have to say that I really don't know all the effects *Mathematica*
has had. Only a tiny fraction of our users ever explicitly tell us what
they do with *Mathematica.* People have certainly told me that *Mathematica*
has revolutionized all sorts of fields—including some I've barely heard
of. It's really a wonderful experience to build a tool like *Mathematica*,
and then every year to see people doing more and more impressive things
with it. I've put an incredible amount of work into *Mathematica*, and
finding out that it makes a difference to so many people is really great.

From an intellectual point of view, I think one of the more important
effects of *Mathematica* is that it has communicated advanced computer
language ideas to a much wider audience than they ever reached before.
There are a huge number of people who had only ever used languages like
Fortran before, but who now understand symbolic expressions, rule-based
programming and so on. I think that's pretty important for the progress of
computing as an intellectual endeavor.

**SC:**
Where has *Mathematica* not met your expectations?

**SW:**
Technically I think *Mathematica* is great. I'm always thinking of more
things to make it do, but I'm very happy with what's there. One thing I
guess I'm slightly disappointed about is that we don't seem to have managed
to communicate some of the intellectual advances in *Mathematica* as
thoroughly as I'd like to people in areas like computer science and
mathematics. I think some very exciting intellectual things have been
achieved in *Mathematica—*particularly in the area of language design—but there are still lots of people in fields like academic computer science
who don't understand what's been done.

I guess another thing is that some people who I would have thought really
should don't seem to appreciate the overall design of *Mathematica.* One of
the things I'm proudest of in *Mathematica* is the way all the pieces fit
together—the fact that there are a fairly small number of powerful
principles from which the whole system is built. I would have thought that
mathematicians and people like that would immediately appreciate this kind
of thing. And certainly some do. But among mathematicians and the like
there are still an amazing number of feature hunters out there who don't
seem to understand the crucial value—both intellectual and practical—of good design. It seems like the axiomatic training and abstract aesthetic
of mathematics doesn't seem to translate as often as I would have expected to
an understanding of system design.

**SC:**
With the benefit of hindsight, is there anything you would have
developed differently in *Mathematica?*

**SW:**
Surprisingly little, actually. Of course it's very scary when one makes a
system that lots of people use: one has to get things right the first time—one can't go back later and make incompatible changes. But eight years
on I'm actually very pleased with how few things I would have done
differently.

I guess there is one decision that I sometimes think about: the decision to
call the thing we built *"Mathematica"*. I had thought that referring to
mathematics was a good thing to do—but I didn't realize how many people
out there really really despise mathematics. They think mathematics is
just something unpleasant that they have to do in school, and they want to
forget about it as quickly as possible. The funny thing is, though, that in
fact they're often using mathematics—at least through *Mathematica*—doing all sorts of kinds of analysis, modelling and so on. I think
mathematics really has a major image problem, and with the name *Mathematica*
we're at least somewhat tied to it. For all sorts of reasons, I'd love to
improve the general image of mathematics—and I've tried doing it in
various ways—but I think most academic mathematicians are still in
denial that there's any problem. Perhaps they'll change their minds when
the public makes it clearer that there isn't going to be any more money for
mathematics unless people get a better impression of it.

**SC:**
Symbolic computation as a research discipline has an uneasy
existence between mathematics and computer science. Will this
change? What can be done to change it?

**SW:**
Gosh, I'm not sure exactly what you mean. I'm not a great fan of a lot of
academic work that goes on these days. I think a lot of areas of academia
have become incredibly introverted: people just write papers that other
people in their fields will read. They don't seem to care much about
anything outside.
And there are all sorts of elaborate rituals that have developed about how
to do academic work, how to present it, how to publish it, etc. It's mostly
fairly recent—last 50 years or so—and I guess it's inevitable, given
how large the academic enterprise has become. But assuming things go on the
way they are, I'm afraid that over the next few decades we'll almost
certainly see the end of academia as a serious force in society....

**SC:**
Some observers see a research crisis in mathematical computation—a
dearth of both fundamental and practical advances; others are
concerned about a looming funding crisis. How do you see the
situation?

**SW:**
Well, I think Wolfram Research has one of the largest—if not the largest—R&D effort in mathematical computation anywhere. And certainly I'm
pretty happy with the stuff we're getting done—which ends up being both
practical and fundamental. I don't know so much about the academic
mathematical computation scene. But I'm a bit surprised you ask about
funding. I think *Mathematica* has really opened up the market for
mathematical computation—and there are starting to be a fair number of
people and groups who make their living quite well from distributing
*Mathematica* packages. And there's certainly room for more of that kind of
thing—quite independent of begging for money from governments and the
like.

**SC:**
In what areas of mathematics do you see an underdeveloped
potential for computational methods? What could be done to
encourage developments?

**SW:**
I think the opportunities of computer experiments are absolutely vast. It's
like the situation about three hundred years ago with physics experiments.
Even the easy stuff hasn't been done. I've spent some of the past fifteen
years trying to do a bunch of the easy computer experiments—and I've
discovered some incredibly interesting things. There's amazing stuff out
there to find.

But here's a question for your audience: will mathematicians consider what's done to be mathematics? What is mathematics these days? I think it's become defined—like so many other areas of science—more by its methodology than by its content. Mathematics is not about general questions concerning abstract systems. It's about what you can investigate and prove theorems about. That's very limiting. In fact, almost by definition it means you can't find things that are really surprising.

It's worth noticing that in most fields of science, the number of
experimentalists is far larger than the number of theoreticians.
Mathematics is pretty much unique in having very few experimentalists. My
guess is that one of the big things that will happen in mathematics—whether everyone in the field likes it or not—is that there will be a
big shift towards experimentation as the methodology to use. I think one
of our big contributions with *Mathematica* is to make that experimentation
easy enough that one can do it without being sure one knows what results
will come out—so one is really exploring.

**SC:**
One paradigm currently attracting interest is knowledge-based
symbolic algorithms and computing. Do you see potential for this
approach?

**SW:**
I'm afraid I don't know what "knowledge-based symbolic algorithms" are. If
that means programs with tables in, then yes, those are useful—especially when one has the pattern-matching capabilities of *Mathematica.*
I wish academic computer scientists would use less jargon! It really gets
fairly funny when people like me build big computer science systems but
can't remember the official names of the things they're doing!

**SC:**
One discernable computational trend in networking is remote
software: do you see consequences for symbolic computation
systems?

**SW:**
*MathLink* has always been runnable over a network, and an increasing number
of people are doing it. The advantages are mainly practical, but they're
significant.

**SC:**
Will parallelism—and systems which support it—be a decisive
issue?

**SW:**
Not in the near future, I think. As you perhaps know, I was quite involved
with massively parallel computing 10 or 15 years ago. As you also know, the
marketplace for parallel computing never really happened. I don't see that
changing anytime soon. The traditional general purpose design of processors
has too much market momentum behind it. Of course, small-scale parallelism
based on networks of ordinary computers is happening. In fact, I myself use
it often—running many copies of *Mathematica* on different machines in our
company, and having the whole thing controlled by *MathLink* connections.

**SC:**
Do you believe that any further major general-purpose symbolic
computation systems could be successfully launched in the future?

**SW:**
You mean *Mathematica* competitors? It depends what you mean by "major". If
we don't do anything really stupid, I think it's unlikely anyone else will
reach a million users in the forseeable future. But the more successful we
are, the more there'll be people who'll want to claim that they're building
systems that are like ours. There's certainly nothing impossible about
building something like *Mathematica*—after all, we've done it. But it'll
take a great deal of effort, and I very much doubt the marketplace would be
all that interested.

**SC:**
One sees a multiplication of smaller specialized systems whose
design is also increasingly sophisticated. What balance and
relationship do you see in future between specialized and
comprehensive systems?

**SW:**
I guess the specialized systems that seem to me to make the most sense are
the ones built in *Mathematica.* They start from all the stuff we've done,
then add specialized abilities. I don't know why there are so many people
building specialized systems in languages like C. I guess it may
conceivably make for a better story for an academic paper—though I'm not
quite sure why—but I don't think it's a good use of effort. What on
earth is the point of building yet another parser, often based on a really
simple-minded language design? Why not just use *Mathematica?*

Of course, sometimes people are really concerned about efficiency, and want
to write incredibly bit-hacked stuff. So then they probably have to write
the core of their systems in C. But I think the scheme that makes the most
sense in cases like that is to have the core in C, then to use *MathLink* to
connect it to *Mathematica*, so you can use *Mathematica* as the interface to
the system. There have been quite a few systems made this way, and I think
it's a pretty good approach. It's a way where one can really use software
components sensibly, without rebuilding a lot of stuff that surely isn't
the point of an algorithmic project.

**SC:**
The community has proponents of 'free' software. Increasing
numbers of researchers and better software engineering might make
public domain systems increasingly serious contenders. What
future do you see for the roles of free and commercial software?

**SW:**
Free software is fine when it doesn't cost much to develop and support. But
you can't expect to have a really vital long-term product and make it free.
What we see a lot with *Mathematica* packages is that the first versions are
free: they're made by one or two people at a university or some such. But
once the packages get serious—have real documentation, quality
assurance, etc.—they have a real price. And the result is that money is
made that supports the future development of the packages, and so on.

Perhaps you're asking whether I think software should be distributed for free in general. I guess I think that intellectual property protection is a pretty good feature of civilized society. Now of course there are some people who think software development should always be paid for by the government or something, and then distributed free. Well I tend to think that the less the government has to get involved in, the better. Let people who want software pay for it; it really doesn't make sense to tax everyone in order to get software for a small segment of society developed. It's really very selfish on the part of mathematicians or whoever to expect all the taxpayers out there to support their particular software interests.

**SC:**
The reception of the *Mathematica* system in the mathematical comunity
has on occasion raised unexpectedly high feelings, and has sometimes
appeared to take on the dimensions of a zealot's war of disparagement
against hype. Do you have an explanation for this fairly unique
occurrence? What is your view of the matter?

**SW:**
I'm not quite sure what you mean. Any successful enterprise will have its
detractors—that's just the way the world works. I guess mathematicians
can sometimes get a little more righteously out of control than other folk—witness the Unabomber. But I think that considering the level of
success we've had, there have been surprisingly few detractors—even in
mathematics.

**SC:**
One strange aspect of symbolic computation is that the production
of mathematical software is an almost invisible, unrecorded
discipline. Do you have an explanation for this?

**SW:**
That's true in almost any field that involves actually building things.
We've always been very happy for software historians to come in and study
our efforts. But almost nobody's ever done it. And we ourselves are more
interested in developing new technology than in writing academic papers and
things about technology we've already developed.

**SC:**
The use of symbolic computational tools in teaching is a
controversial topic where transatlantic differences are
particularly evident; what is your view on the matter?

**SW:**
I guess the use of calculators is controversial too. I think anything
that's new will be controversial, and will remain so until the people who
didn't grow up with it die off. I think it's fairly obvious that having a
tool available is better than not having it available. And certainly it
looks to me as if some rather nice things have been done with *Mathematica*—and particularly with *Mathematica* notebooks—in the courseware area.

**SC:**
Lisp was built on the tradition of the lambda calculus. When
Prolog became popular a good dozen years ago, it also spawned a
flurry of research into the semantics of logic programming. The
evaluation model of *Mathematica* as a programming language is at
least as complex and interesting: why has there been no
comparable interest?

**SW:**
I've wondered that myself. There has been some work, but there could
certainly be much more. Perhaps it's another sign of the decay of academic
computer science. After all, thinking about evaluation models is
intellectually quite difficult, especially when there's a real system out
there to stop people being able to hide in pure formalism. But I think
there are some really interesting questions to address about evaluation.
There are a few people in my company who study it, but I wish more people
would work on it.

**SC:**
What is your most important short-term plan for *Mathematica?*

**SW:**
To get version 3.0 out. Probably by the time people are reading this, 3.0
will be out. But right now we're still working on putting the finishing
touches to it. We've been working on 3.0 for about five years, which is an
incredibly long time in the modern world. I'm really excited about 3.0—it's got an incredible amount of important new stuff in—both practical
and conceptual. I think 3.0 is really going to blow people away—there's
a lot in it that nobody had any idea could be done. But right now—these
few months—the big thing is grinding through all those details that make
a software really work reliably across all sorts of machines and so on.

**SC:**
What is your most important long-term plan for *Mathematica?*

**SW:**
Well, I'm not sure how long term you mean. I'm sure *Mathematica* will still
be being developed when I'm an old man. The core will be the same, but
there'll be lots of new stuff made possible by new computer technology, new
mathematics, and so on. My plan with our company is to keep doing what
we've been doing for ten years already—trying to push the state of the
art, and trying to do everything we do in a way that is really set up to
survive for posterity. We've managed to build a great team of people at the
company, and I think we're well set up to go on discovering and
implementing important things for a long time to come.

**SC:**
You have been working on a book about science for some
time. Can you sketch some of your ideas? Are there implications
for symbolic computation and symbolic computation systems?

**SW:**
Well, that's a whole other discussion. What I'm trying to do is a pretty
big thing: I'm trying to build a whole new way of thinking about science.
If you look at most of science for the past three hundred or so years,
there's been a common theme all the way through: that nature should be
somehow or another be described by mathematical equations. The idea worked
so well for people like Newton that I guess everyone's been trying to do the same thing ever since. Well, the problem is that in a lot of areas
mathematical equations haven't ended up working—it's been pretty much of
a flop in areas like biology, for instance. So what I've been interested
in for a long time is whether there is an alternative that one can find.
And what I realized about fifteen years ago is that yes, there is. Instead
of using equations, one can use programs. The universe presumably follows
some kind of definite rules. But why should those rules involve just
things like integrals and derivatives—the kinds of constructs invented
in human mathematics? Why not more general logical constructs—like the
ones that we're now familiar with in computer programs?

Well, thinking about that raises a very fundamental question: what do simple computer programs actually typically do? Usually we build programs to perform specific tasks. But what if we just started building programs at random? How would they behave? I started answering this question in the early eighties, with cellular automata. And I found some pretty surprising things. But what I've been doing the last few years is to try to really build a systematic science out of it all. It's really fun—I guess it must be a bit like what happened a few hundred years ago when people first did the obvious physics experiments. I'm doing the obvious computer experiments. And the things I'm discovering are really interesting. In fact, I guess I keep on discovering such interesting stuff that I don't feel ready to finish my book. But hopefully I'll get it done before too long, and then other people will be able to get involved—which will be good.

You ask how what I'm doing might be relevant to symbolic computation. Well, I think I've discovered some things which will really change peoples' view of what the process of computing is all about. But it's a long story; another time.

How does it all relate to *Mathematica?* Well, it's pretty straightforward—*Mathematica* is what's allowed me to do the science I'm doing. I planned
it this way—but it's extremely satisfying to see that it's really worked
out. And in the long term I suspect that the science I'm doing could never
have been discovered if I hadn't taken all the time and effort it's taken
to build *Mathematica.*