Stephen Wolfram

is a British scientist and the chief designer of the Mathematica software application and the Wolfram Alpha computational knowledge engine.

Hosted AMAs

Highest Rated Comments

StephenWolfram-Real1061 karma

The most useful thing by far that I have is a good email archive, going back 30 years, and well searchable. Also an OCR'ed archive of pretty much every piece of paper in my life. As far as data goes, I find my real-time dashboard of email backlog as a function of time pretty helpful. Oh, and I also find my count-up timer of how long I've been asleep useful. Other personal analytics I end up accumulating, and then look at if I have a specific question.

Actually, there's another thing: I've noticed that a day or two before I get sick with a fever, my heart rate seems to go up. However, in an example of how difficult medical science can be, I've (happily) only gotten sick 3 times in the last 3 years or so since I've been continuously measuring my heart rate. The first two times I saw this effect. But the most recent time I don't think I did, though it was hard to tell because other things were affecting my heart rate...

StephenWolfram-Real1055 karma

There are so many; very hard to pick just one.

An old one for Mathematica: Mike Foale was using it on the Mir space station; there was an accident; the computer it was on got sucked into space; Mike had a backup disk, but needed a password for a different computer; all-time favorite call to customer service ... and finally an in-action solving of equations of motion for a spinning space station.

Of course, for me personally, my favorite Mathematica "uses" are the research for A New Kind of Science, Wolfram|Alpha ... and the building of Mathematica itself.

StephenWolfram-Real684 karma

We've thought about things like this from time to time, but it's never seemed to make much sense. It seems like the wrong thing for people to be using obsolete software, and it destroys uniform compatibility of programs written in the Mathematica language ("is it for the obsolete Mathematica, or the real one?", etc.)

A slightly different issue making aspects of Mathematica freely available. We've done that recently with our CDF initiative for computable documents ( ), and it seems to be working well.

For nearly 20 years we've thought about making the "pure language" aspects of Mathematica more freely available (in fact, for example, that was what Sergey Brin worked on when he was an intern at our company long ago...) And I think we may finally soon figure out the right way to do this.

It'll probably be related to my goal in the next year or two of making Mathematica definitively the world's easiest to learn language...

StephenWolfram-Real592 karma

(My oh my there are a lot of questions ... here goes)

I guess I should start with the top question ...

I'm afraid I know absolutely nothing about your Math Keyboard. Quick web search gives No idea what the "wolfram" URL or the Wolfram|Alpha picture on the page are doing. Seems like something to work out with lawyers; can't imagine it should be difficult...

StephenWolfram-Real498 karma

Our company and I had a long relationship with Apple and Steve Jobs (see e.g. )

We'd also started working the Siri team before their company was bought by Apple.

StephenWolfram-Real491 karma

It's a big challenge letting people know everything that's in Wolfram|Alpha. We try to talk about highlights on Probably the best place to look for an overview is

StephenWolfram-Real487 karma

There'll be quantitative changes in the amount of knowledge in the system that I suspect will have a qualitative effect on how it's used. And there'll be all sorts of computations that become possible because (one assumes) there'll be faster computers that we can use. In Wolfram|Alpha Pro we just started handling input not just of small textual queries, but of data and things like images. As more processing power is available, there'll be some exciting new things to do with those.

Another direction is the ability for Wolfram|Alpha to "invent". Right now it mostly uses existing methods, models, algorithms to compute things. What I'm expecting in the future is that Wolfram|Alpha will be to discover new methods, models and algorithms on the fly. We already do quite a bit of this in our own algorithm development, using ideas I developed in A New Kind of Science. The general idea is to define a task or objective, then search the computational universe for a way to achieve it. The results are often surprising and "clever". An example of this kind of thing is

Another thing that will change a lot in 10 years is the way of accessing Wolfram|Alpha. With Siri, for example, we're seeing voice. There'll be all sorts of interesting directions with augmented reality, etc. etc.

StephenWolfram-Real483 karma

My "reward function" is basically "do I actually go on using it?" I like to make sure I try as much leading-edge tech as possible, because I want to understand it. But when it isn't really useful to me, I stop using it pretty quickly.

I think the main way I stay focused is that I have so many projects that I want to do, and I'm pretty tenacious about pursuing them. So if there's a distraction it usually doesn't have enough "gravitational pull" to snag me. I've also just decided there are "distractions" I'm never going to fall into ... for example, I never watch television. (Though this has the effect that when there's a television in a room I'm not used to it, and I find it hard not to look over at it whenever something moves on the screen...)

My main advice about guarding against distraction is to have something to do that you really like doing...

Having said all that, I can sometimes be a procrastinator ... though I consider myself a "rational procrastinator". E.g. don't prepare a talk until right beforehand, because otherwise I'll forget what I prepared...

StephenWolfram-Real479 karma

Thank you!

StephenWolfram-Real477 karma

Needless to say, I'm not a Matlab user, so I'm not a big expert.

Matlab has certainly at times tried to position itself as a competitor to Mathematica (I'm pretty sure they got the term "technical computing" from a talk I gave---even though I never liked the term in first place).

I haven't run into the authors of Matlab for a very long time ... but my impression is that their goals are rather more modest (at least at a conceptual level) than ours.

My goal with Mathematica has been to cover all areas where systematic computation can be done. And to achieve that, we've built a very general system, based on symbolic programming and symbolic expressions. Matlab is very centered specifically on numerical matrices (hence the name).

Over the years, I've actually been surprised at how much can be turned into a numerical matrix---but ultimately it's a narrow slice of the world, and I think that's now becoming clearer and clearer. In the complete web of algorithms in Mathematica, things that can reasonably be represented as numerical matrices are perhaps 5 or 10% of the total.

By the way, even in terms of numerical matrices, Mathematica is no slouch at this point. 20 years ago Mathematica would have been slower than Matlab at crunching some big numerical matrix. But that's no longer the case ... and in a great many areas, we're able to implement much more advanced algorithms, because in Mathematica we can call on other other capabilities (algebraic, geometric, combinatorial, etc.) to get things done.

Another very important issue is one of philosophy. In Mathematica, my goal has been to make a single coherent system in which one can work, and in which everything fits nicely together. It takes a lot of effort to do this (I've personally spent a large swath of my life doing all the necessary design work). But it's tremendously powerful in actually using (and learning) a system. My impression is that Matlab has taken a different approach, having specific packages that are quite separate (and even bought separately) for different areas, and not really worrying about how they fit together.

Another issue of philosophy is automation. My big idea for Mathematica has been to be able to "delegate" to it as much as possible: I want to just tell the system what I want to do, and I want it to be able to figure out how it should be done. So if there are hundreds of different possible algorithms, I want the system to automatically be able to figure out the best one (unless I happen to feel like tweaking it). In our algorithm development, figuring out how to do this kind of automation is a big part ... but in my experience it's crucial in being able to use a system efficiently.

When I look (which I don't often) at Matlab code, I have to admit to being reminded a little of Fortran (which was one of my first programming languages a very long time ago). Mathematica obviously looks very different (not least because it's a symbolic functional programming language), and even after 25 years, still looks completely modern. (Of course, in Mathematica there's now the quite different possibility of typing pure natural language, which gets interpreted through Wolfram|Alpha.)

There's probably lots more to say here.

One thing I might mention is that closely connected to Matlab is Simulink. We have a major initiative in large-scale systems modeling that I talked a little bit about in:

There are some pretty exciting things in the works here, linking Modelica modeling with Mathematica and with Wolfram|Alpha. I think the landscape for these kinds of things is going to change a lot in the next few years.

One more thing: as a practical matter, we're seeing more and more of Matlab's traditional engineering users not just being interested in Mathematica, but routinely using Wolfram|Alpha. Again ... I think there are interesting things ahead here.