"When I was writing the NKS book I kept on wondering what the
first "killer app" (to use a phrase from the software industry)
for NKS would be.
I tried to think back what one would have imagined in 1936, when
the idea of universal computing was introduced. Could one have
predicted what the first killer apps for computers would be?
As it was, first there were databases--which drove the mainframe
computer industry, and later there were word processors--which
drove the personal computer industry.
Despite their tremendous practical importance, databases and word
processors are really quite prosaic applications of an idea as
powerful as universal computation.
And both of these applications could probably have been done even
without the full concept of universal computation.
But the point is that the paradigm of universal computation was
crucial in even imagining that either of these applications would
And so it is now with NKS and Wolfram|Alpha.
Wolfram|Alpha is, I believe, going to be the first killer app of
And remarkable though Wolfram|Alpha is, it is at some level still
prosaic relative to the full power of the ideas in NKS.
Yet without the NKS paradigm, I cannot imagine I would ever have
thought that Wolfram|Alpha could make sense.
There is an immensely complex web of systematizable knowledge out
there in the world. And before NKS, I would have assumed that to
handle something of this complexity would have required building
a system that is somehow correspondingly complex--and in practice
completely out of reach.
But from NKS we have learned that even highly complex things can
have their origins in simple rules and simple programs.
And this is what inspired me to believe that building
Wolfram|Alpha might be possible.
As a practical matter, many algorithms in Wolfram|Alpha were
found by NKS methods--by searching the computational universe for
programs that achieve particular purposes.
And there is a curious sense in which the discoveries of NKS
about computational irreducibility are what make Wolfram|Alpha
For one of the crucial features of Wolfram|Alpha is its ability
to take free-form linguistic input, and to map it onto its
precise symbolic representations of computations.
Yet if these computations could be of any form whatsoever, it
would be very difficult to recognize the linguistic inputs that
But from NKS we know that computations fall into two classes:
computationally reducible and computationally irreducible.
NKS shows that in the abstract space of all possible computations
the computationally irreducible are much the most common.
But here is the crucial point: because those computations are not
part of what we have historically studied or discussed, no
systematic tradition of human language exists to describe them.
So when we use natural human language as input to Wolfram|Alpha,
we are inevitably going to be describing that thin set of
computations that have long linguistic traditions, and are
Those computations cover the traditional sciences. But in a sense
it is the very ubiquity of computational irreducibility that
forces there to be only small islands of computational
reducibility--which can readily be identified even from quite
vague linguistic input.
If one looks at Wolfram|Alpha today, much of what it computes is
firmly based on OKS (the "Old Kind of Science"), and in this
sense Wolfram|Alpha can be viewed as a shining example of what
can be achieved with pre-NKS mathematical science.
And curiously, after all these years, it is also perhaps the
first clear consumerized example of universal computation at
work. For now, for the first time, anyone will be able to walk up
to a computer and immediately see just how diverse a range of
possible computations it can do.
So what about NKS? NKS is certainly crucial to the very
conceptualization of Wolfram|Alpha.
And even today one can use Wolfram|Alpha to do a little NKS: one
can type in "rule 30", or ask about other NKS systems that can
readily be specified in linguistic terms.
But in the future there is tremendous opportunity to do more with
NKS in Wolfram|Alpha.
Today, Wolfram|Alpha uses existing models from science and other
areas, then does computations based on these models.
But what if it could find new models? What if it could invent on
the fly? Do science on the fly?
That is precisely what NKS suggests should be possible. Exploring
the computational universe on request, and finding things out
there that are useful for some particular specified purpose.
We started a small experiment a few years ago with WolframTones
(http://www.wolframtones.com) where we use NKS to invent new
musical tunes. But there is vastly more that can be
done--directing with ordinary language, but discovering
automatically with NKS.
Whether today's computers are fast enough to do this well I do
not know. But perhaps by next year, Wolfram|Alpha will not only
be a killer app made possible by NKS--it will also provide an
outlet for the full richness of the computational universe that
has been revealed to us by NKS.
But for now: tomorrow (May 15) is the day we begin to make
Wolfram|Alpha live--the first killer app of NKS.
See the Wolfram|Alpha Blog to follow the launch:
-- Stephen Wolfram"