Last weekend I decided to have a short break from all the exciting technological things we’re doing… and to give a talk at the Singularity Summit in New York City about the implications of A New Kind of Science for the future, technological and otherwise. Here’s the transcript:

Well, what I wanted to do here was to have some fun—and talk about the future.

That’s something that’s kind of recreational for me. Because what I normally do is work in the trenches just trying to actually build the future… kind of one brick at a time—or at least one big project at a time.

I’ve been doing this now for a bit more than 30 years, and I guess I’ve built a fairly tall tower. From which it’s possible to do and see some pretty interesting things. Continue reading

Hi. I’m pleased to be with you. I’ve been asked to talk a bit about the background and vision of Mathematica.

You know, this month it’s exactly 25 years since I started building Mathematica. It’s been really exciting seeing Mathematica grow and prosper over the years. But I have to say that in just the last few years, something truly remarkable seems to have been happening. It feels like Mathematica is really coming of age. It’s in just the right place at the right time. And it’s making possible some fundamentally new and profoundly powerful things. Like Wolfram|Alpha, and CDF, and yet other things that we’ll have coming over the next year.

But let me start off at the beginning. How did Mathematica come to be in the first place? Here’s the personal story. Continue reading

I’m so sad this evening—as millions are—to hear of Steve Jobs’s death. Scattered over the last quarter century, I learned much from Steve Jobs, and was proud to consider him a friend. And indeed, he contributed in various ways to all three of my major life projects so far: Mathematica, A New Kind of Science and Wolfram|Alpha.

I first met Steve Jobs in 1987, when he was quietly building his first NeXT computer, and I was quietly building the first version of Mathematica. A mutual friend had made the introduction, and Steve Jobs wasted no time in saying that he was planning to make the definitive computer for higher education, and he wanted Mathematica to be part of it. I don’t now remember the details of our first meeting, but at the end of it, Steve gave me his business card, which tonight I found duly still sitting in my files:

Things with Wolfram|Alpha are going well. Really well. So well that I’m now incredibly keen to scale them up dramatically.

When I started the Wolfram|Alpha project, I was not even sure anything like it would be possible. But over the last two years we’ve proved that, yes, with the tower of technology we’ve created, one can in fact take large swaths of knowledge, make them computable, and deliver them for everyone to use.

From the outside, it’s easy to see that there’s been steady growth in the domains of knowledge that Wolfram|Alpha covers. And over the next few months there’ll be some big additions, notably in everyday and consumer areas. But to me what’s most dramatic is what’s happened on the inside. Because what we’ve done is to build a giant system of technology and management processes that allows us systematically to make any area of knowledge computable.

The catch is that it always takes effort. We rely on a huge tower of automation. But in every new area we tackle there are new issues, new opportunities—and new ways that resources and human effort have to be used.

I’m very pleased with how broad and deep the coverage we have already achieved is. But we have an immense to-do list, assembled not least from all the feedback we’ve received from users of Wolfram|Alpha. And the good news is that at this point it’s a straight shot: given enough effort, we can complete the to-do list. We have all the systems we need to scale the knowledge in Wolfram|Alpha up all the way. Continue reading

The precursors of what we’re trying to do with computable data in Wolfram|Alpha in many ways stretch back to the very dawn of human history—and in fact their development has been fascinatingly tied to the whole progress of civilization.

Last year we invited the leaders of today’s great data repositories to our Wolfram Data Summit—and as a conversation piece we assembled a timeline of the historical development of systematic data and computable knowledge.

The story the timeline tells is a fascinating one: of how, in a multitude of steps, our civilization has systematized more and more areas of knowledge—collected the data associated with them, and gradually made them amenable to automation. Continue reading

Two weeks ago we made a major announcement: building on technology that we’ve been developing for more than 20 years, we released Computable Document Format (CDF). I think CDF is going to have a big effect on the way all sorts of things can be communicated. Because for the first time it makes it practical to include live computation as a routine part of a document.

There are many important applications of CDF that we’ll no doubt be seeing over the months and years to come. But today I’m pleased to announce an experimental one from us: Wolfram|Alpha with CDF.

Starting today, as soon as you have the free CDF plugin installed (or if you have Mathematica 8 on your system) you can go to the top right-hand corner of the Wolfram|Alpha website, and set CDF on, with the result that Wolfram|Alpha will generate not just a static web page, but instead full CDF output—that you can directly interact and compute with. Continue reading

This week I’m giving a talk at a conference on Mathematics and Computation in Music (MCM 2011)… so I decided to collect some of my thoughts on such topics…

How difficult is it to generate human-like music? To pass the analog of the Turing test for music?

Though music typically has a certain formal structure—as the Pythagoreans noted 2500 years ago—it seems at its core somehow fundamentally human: a reflection of raw creativity that is almost a defining characteristic of human capabilities.

But what is that creativity? Is it something that requires the whole history of our biological and cultural evolution? Or can it exist just as well in systems that have nothing directly to do with humans?

In my work on A New Kind of Science, I studied the computational universe of possible programs—and found that even very simple programs can show amazingly rich and complex behavior, on a par, for example, with what one sees in nature. And through my Principle of Computational Equivalence I came to believe that there can be nothing that fundamentally distinguishes our human capabilities from all sorts of processes that occur in nature—or in very simple programs.

But what about music? Some people used their belief that “no simple program will ever create great music” to argue that there must be something wrong with my Principle of Computational Equivalence.

So I became curious: is there really something special and human about music? Or can it in fact be created perfectly well in an automatic, computational way?

I got started with science quite early in my life… with the result that I got my PhD (at Caltech, in physics) when I was 20 years old. Last weekend a young woman named Catherine Beni (whom I had met quite a few years ago) sent me mail saying she had just received her PhD from Caltech (in applied math)—also at the age of 20.

Needless to say, we were both curious who had the record for youngest Caltech PhD. Catherine said she was 20 years, 2 months and 12 days old when she did her PhD defense. Well, I knew I’d finished my PhD in November 1979—and I was born August 29, 1959. So that would also have made me around 20 years and 2 months old.

I quickly searched the OCR’ed archive that I have of my paper documents, and found this:

The month was confirmed, but frustratingly, no day was filled in. But then I remembered something about my PhD defense (the little talk that people give to officially get their theses signed off). In the middle of it, I was having a rather spirited discussion (about the second law of thermodynamics) with Richard Feynman, and suddenly the room started shaking—there was a minor earthquake. Continue reading

Wolfram|Alpha, A New Kind of Science, and even Mathematica all have aspects that are philosophy projects. Each of them, in different ways, informs questions in philosophy—and are themselves informed by philosophical ideas and discoveries.

Indeed, the very fact that I decided Wolfram|Alpha might be a possible project was the result of what amounts to a philosophical realization that I learned from A New Kind of Science: there is no bright line that identifies “intelligence”; it is all just computation.

I don’t get to talk much about philosophy. But here is a recording of a keynote speech I was recently asked to give about “computing and philosophy”.

To mark the second anniversary of the launch of Wolfram|Alpha, I did an interactive webcast:

Here’s a transcript of my introduction:

[Note: here is what I wrote for Wolfram|Alpha's first anniversary a year ago.]

So, as of today, Wolfram|Alpha has officially been out in the wild for two years.

And I’m happy to say, it’s doing really well.

You know, I’d been thinking about building Wolfram|Alpha for more than 30 years.

And I’ve been working to build the stack of ideas and technology to make it possible for nearly that long.

At the beginning, I was not really sure that Wolfram|Alpha was going to be possible at all.

And I think if I look a year ago from now my main conclusion was that after a year out in the wild, we’d proved that, yes, Wolfram|Alpha was indeed possible.

Well, now that we’re two years out, I think my conclusion is: Wolfram|Alpha is even a lot more important than I thought it was.

This effort to make all our knowledge computable is really something very fundamental, that’s sort of inevitably going to be needed just all over the place.

In the last several weeks, I’ve given talks about innovation, mobile technology, mathematics and philosophy. Last week I gave a talk at the Bio–IT World conference in Boston.

At the beginning I covered many of my favorite topics: Wolfram|Alpha, Mathematica, A New Kind of Science. But then I turned more specifically to biomedicine, and talked about quite a few topics that I’ve never discussed in public before.

Here’s an edited transcript.

OK. Well. I’m going to talk about some pretty ambitious things here today.

Both in technology and in science.

I’m going to talk about what we can know, and what we can compute, in biomedicine.

And about how we can make use of that.

I’m going to talk both about some practical technology and some basic science that I’ve been involved in building, that tries to address those things.

Many of you I hope will have seen and used Wolfram|Alpha, which has been off entertaining us in the background there.

Let me start with that.

You know–when computers, and I, were a lot younger, it used to be a common assumption that one day one would just be able to walk up to a computer and ask it anything.

And that if what one asked could somehow be answered on the basis of any knowledge that had been accumulated in our civilization, then the computer would be able to figure it out.

Well, 30 years ago I started wondering what it would take to actually do this.

And at first I have to say I thought the only possibility was to build a whole artificial intelligence—a whole brain-like thing that somehow thinks like a human.

And that seemed really hard.

But gradually I realized that actually, that might not be the right direction at all.

And that we might not want to build sort of the analog of a bird—but rather the analog of an airplane.

And that computation—and a bunch of ideas around it—might be the key.

Well, by that point I’d assembled a pretty big stack of technology and science, and organizational capability.

And a little more than five years ago I decided it was time to try a serious assault on the problem—of making the world’s knowledge computable.

Well, the result was Wolfram|Alpha. Which is a very long-term project.

But already gets used every day by millions of people, who manage effectively just to walk up to it and have it answer all kinds of things. Continue reading

Over the past 25 years, we’ve been fortunate enough to make a mark in all sorts of areas of science and technology. Today I’m excited to announce that we’re in a position to tackle another major area: large-scale systems modeling.

It’s a huge and important area, long central to engineering, and increasingly central to fields like biomedicine. To do it right is also incredibly algorithmically demanding. But the exciting thing is that now we’ve finally assembled the technology stack that we need to do it—and we’re able to begin the process of making large-scale systems modeling an integrated core feature of Mathematica, accessible to a very broad range of users.

Lots of remarkable things will become possible. Using the methodology we’ve developed for Wolfram|Alpha, we’ll be curating not only data about systems and their components, but also complete dynamic models. Then we’ll have the tools to easily assemble models of almost arbitrary complexity—and to put them into algorithmic form so that they can be simulated, optimized, validated, visualized or manipulated by anything across the Mathematica system.

And then we’ll also be able to inject large-scale models into the Wolfram|Alpha system, and all its deployment channels.

So what does this mean? Here’s an example. Imagine that there’s a model for a new kind of car engine—probably involving thousands of individual components. The model is running in Mathematica, inside a Wolfram|Alpha server. Now imagine someone out in the field with a smartphone, wondering what will happen if they do a particular thing with an engine.

Well, with the technology we’re building, they should be able to just type (or say) into an app: “Compare the frequency spectrum for the crankshaft in gears 1 and 5″. Back on the server, Wolfram|Alpha technology will convert the natural language into a definite symbolic query. Then in Mathematica the model will be simulated and analyzed, and the results—quantitative, visual or otherwise—will be sent back to the user. Like a much more elaborate and customized version of what Wolfram|Alpha would do today with a question about a satellite position or a tide.

OK. So what needs to happen to make all this stuff possible? To begin with, how can Mathematica even represent something like a car—with all its various physical components, moving and running and acting on each other? Continue reading

About a month before Wolfram|Alpha launched, I was on the phone with a group from IBM, talking about our vision for computable knowledge in Wolfram|Alpha. A few weeks later, the group announced that they were going to use what they had done in natural language processing to try to make a system to compete on Jeopardy.

I thought it was a brilliant way to showcase their work—and IBM’s capabilities in general. And now, a year and a half later, IBM has built an impressive level of anticipation for their upcoming Jeopardy television event. Whatever happens (and IBM’s system certainly should be able to win), one thing is clear: what IBM is doing will have an important effect in changing peoples’ expectations for how they might be able to interact with computers.

When Wolfram|Alpha was launched, people at first kept on referring to it as a “new search engine”—because basically keyword search was the only model they had for how they might find information on a large scale. But IBM’s project gives a terrific example of another model: question answering. And when people internalize this model, they’ll be coming a lot closer to realizing what’s possible with what we’re building in Wolfram|Alpha.

So what really is the relation between Wolfram|Alpha and the IBM Jeopardy project?

Wolfram|Alpha is making possible a whole new very interesting and very powerful kind of computing. And with the release today of version 2.0 of the Wolfram|Alpha API, it’s going to be considerably easier for a broad range of software developers to take advantage of it.

I’m happy to say that it seems as if Wolfram|Alpha is pretty useful to humans—for example through the wolframalpha.com website. But it also turns out that Wolfram|Alpha is extremely useful to programs. And in fact, even today, the number of requests coming to Wolfram|Alpha each second from programs often exceeds by some margin all the requests coming directly from humans.

The reason for this popularity is really pretty simple: Wolfram|Alpha completely changes the economics of a lot of programming. You see, these days a remarkable number of programs rely on having some kind of knowledge. And traditionally, the only way to get knowledge into a program was for the programmer to painstakingly put it there.

But with Wolfram|Alpha in the picture, it’s a different story. Because built into Wolfram|Alpha is already a huge amount of computable knowledge. And if a program is connected to Wolfram|Alpha, then it can immediately make use of all that knowledge.

Whether one’s building a website or a mobile app or desktop software or an enterprise application, the point is that one can use Wolfram|Alpha as a “knowledge-based computing” platform—so that having all sorts of computable knowledge becomes effectively free from an engineering point of view.

How does a program communicate with Wolfram|Alpha? It uses the Wolfram|Alpha API. (These days, API is pretty much a term on its own, but it comes from “Application Program Interface”.) Continue reading

Today we’re releasing the first three of a planned series of “course assistant” apps, built using Wolfram|Alpha technology.

The long-term goal is to have an assistant app for every major course, from elementary school to graduate school. And the good news is that Wolfram|Alpha has the breadth and depth of capabilities to make this possible—and not only in traditionally “computational” kinds of courses.

The concept of these apps is to make it as quick and easy as possible to access the particular capabilities of Wolfram|Alpha relevant for specific courses. Each app is organized according to the major curriculum units of a course. Then within each section of the app, there are parts that cover each of the particular types of problems relevant to that unit. Continue reading