“Someone has to make the first great ebook publishing company; it might as well be us.” So I said a few weeks before the iPad was released this April. And a little while later Touch Press was formed. The iPad was released, and simultaneously, Touch Press’s first book The Elementswas released. The book has been on the iPad bestseller list ever since—in addition to being featured in all sorts of iPad television commercials and the like.

Well, it’s good for a publishing company to have a successful first book. But for me it’s been getting a little old telling people that I’m a partner in a new publishing company, but so far we’ve only published one book. So it’s exciting to be able to say that as of this week, Touch Press has a second book: Solar System.

A hundred years ago this month the first volume of Whitehead and Russell’s nearly-2000-page monumental work Principia Mathematica was published. A decade in the making, it contained page after page like the one below, devoted to showing how the truths of mathematics could be derived from logic.

Principia Mathematica is inspiring for the obvious effort put into it—and as someone who has spent much of their life engaged in very large intellectual projects, I feel a certain sympathy towards it. Continue reading

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica.

But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead?

If you’d asked me a few years ago, I would have said it was hopeless. That perhaps one could make toy examples, but that ultimately natural language just wouldn’t be up to the task of creating useful programs.

But then along came Wolfram|Alpha. In which we’ve been able to make free-form linguistics work vastly better than I ever thought possible.

But still, in Wolfram|Alpha the input is essentially just set up to request knowledge—and Wolfram|Alpha responds by computing and presenting whatever knowledge is requested. But programming is different. It is not about generating static knowledge, but about generating programs that can take a range of inputs, and dynamically perform operations.

So the first question is: how might we represent these programs?

With the release of Mathematica 8 today, the single most dramatic change is that you don’t have to communicate with Mathematica in the Mathematica language any more: you can just use free-form English instead.

Wolfram|Alpha has pioneered the concept of specifying computations with free-form linguistic input. And with Mathematica 8, the powerful methods of Wolfram|Alpha become available within the Mathematica environment.

All one has to do is to type an = at the beginning of a line. Then what follows is taken as free-form linguistic input.

You don’t have to use precise Mathematica syntax. You can type things in just the way you think about them, in free-form English. But what happens is that Mathematica calls on Wolfram|Alpha to try to interpret your input, and turn it into precise Mathematica code.

Mathematica 8 is released today! It’s a huge and important release. With dramatic breakthroughs—and major broadening of the whole scope of Mathematica.

After 8 versions and 22 years most software systems have decayed to slow and lumbering development. But not Mathematica. In fact, with Mathematica it’s quite the opposite. As the years go by, Mathematica development is actually speeding up.

What has made that happen? Partly it’s our tenacious and broadening pursuit of ambitious long-term goals. But partly, it’s a remarkable reflection—and validation—of the core principles on which Mathematica has always been built.

For nearly a quarter of a century, one of the responsibilities that I’ve taken most seriously is the shepherding of the design of Mathematica. Partly that has involved establishing foundational principles, and maintaining unity and consistency across the system. But at some point all the capabilities of Mathematica must get expressed in the individual built-in functions—like Table or NestList—that ultimately make up the system.

Each one of those functions encapsulates some piece of repeated computational work—often implemented by some deep tower of algorithms. And each one of those now 3000 or so functions requires a name.

We’re currently in the closing weeks of a (spectacular!) new version of Mathematica, and I spent part of last week doing final design reviews for some fascinating new areas of the system. And as part of those design reviews, we were confirming and tweaking some of the names we’re going to use for new functions.

The naming of functions is a strange and difficult art—a bit like an ultimately abstracted form of poetry. The goal is to take the concept and functionality of a function, and capture the essence of it in one, or two, or perhaps three, words (like Riffle, or DeleteCases, or FixedPointList)—chosen so that when someone sees those words, they immediately get the right idea about the function. In even the most succinct forms of ordinary poetry, you get at least a handful of words to communicate with. In function names, you typically get at most perhaps three.

Last week I gave a talk at the 2010 Emerging Technologies conference at MIT. I talked about many of my favorite topics, but with a particular orientation toward the future of the technology industry.

Here’s a transcript of the talk:

The Emerging Computation Revolution

When we look back on the history of technology, I think we’ll see that the greatest revolution of the 20th century was the arrival of the concept of computation.

And in these years today, I think we’re seeing something else happen: the emergence of a second set of revolutions made possible by the concept of computation.

And it’s those revolutions that I want to talk about here today.

Now, needless to say, I’m quite involved in these. And for me it’s really been about a 30-year journey getting to the point we’re at today—slowly understanding what’s possible.

Well, behind me here I have one of the fruits of that—Wolfram|Alpha.

And I want to talk about that, and about the idea of knowledge-based computing that it’s making possible.

There’s a lot of knowledge in the world. A lot of data that’s been systematically collected. A lot of methods, models, algorithms, expertise that have been built up.

And ever since I was a kid I’ve wondered whether we could somehow make all of this computable. Whether we could somehow build something that’s a bit like those old science fiction computers.

So that we could just walk up to a machine, and immediately be able to answer any question that can be answered on the basis of the knowledge that our civilization has accumulated.

It’s an ambitious goal. And when I first thought about this nearly 40 years ago, it seemed very far off.

But every decade or so since then I’ve returned to this. And finally, earlier this past decade, I started to think that perhaps it wasn’t crazy to actually try to build something like this.

There were several things that made that possible.

I spent a decade of my life writing A New Kind of Science. Most of that time was devoted to discovering the science in the book. But another part was spent figuring out how to present the science in the best possible way—using words and pictures.

It took a lot of technology to do that presentation. On the software side, the biggest part was using Mathematica to create elaborate algorithmic diagrams—thousands of them. But then came the question of how to actually deliver everything. And back in 2002 when A New Kind of Science was published, the only real possibility was to print a book on paper, using the very best printing technology of the time.

The actual print production process was quite an adventure—going right to the edge of what was possible. But in the end we got many compliments on the object we produced. And from that time to this, that 5.5 lb (2.5 kg) lump of paper has been the definitive representation of my decade-plus of intellectual work.

But today I’m excited to be able to say that there’s something new and in some ways even better: a full version on the iPad.

I like to write. And most days I actually do write a lot. But most of it is not visible to the world at large. Hundreds of internal emails and documents. Pieces of content inside Wolfram|Alpha or Mathematica. The occasional unsigned public webpage or other document.

My purpose in this blog is to have a visible outlet for a little more of what I do, and what I think about.

I’m constantly thinking about new things. Coming up with new ideas. Getting new perspectives. Thinking of new possible projects to do.

Usually I don’t talk much about things until or unless I’ve actually done something real with them. Which can take years, and sometimes decades—if it happens at all.

But I’ve decided it’s time I started writing a little more about what I’m thinking about—rather than always waiting to have a complete, finished, project or product.

I’d also like to write about some of the things that happen in my life. In some ways my life is delightfully simple and ordinary. But in others I’ve chosen to make it pretty far out on the curve.

Some of the wildest and juiciest things that happen I won’t be able to write publicly about, typically because they’re someone’s corporate or personal secrets. Or because, frankly, I don’t want to tell the world about some things I’m doing before I’m ready.

I’m a great believer in the value of history, not least because I think it’s the best way to have an informed view about the future. I’ve also been a collector of stories—often as a participant. Sometimes the stories aren’t appropriate for public consumption, at least at the time. But I’ve now been around long enough that it’s beginning to be OK to tell pretty much any of the earlier ones. So I hope to have a chance to do that on this blog.

There’s a lot that I could write—about all sorts of topics. Some of it is timely; some of it I just think I should write down sometime.

I’ll enjoy writing whatever I end up writing. But if people want to request particular topics, please contact me. I suspect there are a lot of things where I might have something interesting to say, but I’ve never realized it. So ask me!

(This post was originally published on the Wolfram Blog.)

The creation of large data repositories has been a key historical indicator of social and intellectual development—and indeed perhaps one of the defining characteristics of the whole progress of civilization.

And through our work on Wolfram|Alpha—with its insatiable appetite for systematic data—we have gained a uniquely broad view of the many great data repositories that exist in the world today.

Some of these repositories are maintained by national or international agencies, some by companies and other organizations, and some by individuals. A few of the repositories are quite new, but many date back 40 or more years, and some well over a century. But there is one thing in common across essentially every great data repository: a core of diligent and committed people who have carefully shepherded its development.

Curiously, though, few of these people have ever met their counterparts in other domains of data. And in our work on Wolfram|Alpha we are almost certainly the first group ever to have had the pleasure of getting to know such a broad range of leaders of great data repositories.

And one of the things that we have discovered is that there is much in common in both the methods used and the issues faced by these data repositories. So as part of our contribution to the worldwide data community we have decided to sponsor a data summit to bring together for the first time the leaders of today’s great data repositories.

Years ago I wondered if it would ever be possible to systematically make human knowledge computable. And today, one year after the official launch of Wolfram|Alpha, I think I can say for sure: it is possible.

It takes a stack of technology and ideas that I’ve been assembling for nearly 30 years. And in many ways it’s a profoundly difficult project. But this year has shown that it is possible.

Wolfram|Alpha is of course a very long-term undertaking. But much has been built, the direction is set, and things are moving with accelerating speed.

Over the past year, we’ve roughly doubled the amount that Wolfram|Alpha knows. We’ve doubled the number of domains it handles, and the number of algorithms it can use. And we’ve actually much more than doubled the amount of raw data in it.

Things seem to be scaling better and better. The more we put into Wolfram|Alpha, the easier it becomes to add still more. We’ve honed both our automated and human processes, progressively building on what Wolfram|Alpha already does.

When we launched Wolfram|Alpha a year ago, about 2/3 of all queries generated a response. Now over 90% do.

So, what are some of the things we’ve learned over the past year? Continue reading