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-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-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.

StephenWolfram-Real361 karma

I'm certainly no expert on fighting ... but here's how I might approach the problem. Basically I would want to make models of these creatures---their mechanics, and if possible their behaviors. I know Mathematica has been used a bunch to model quadruped mechanics (e.g. for dinosaurs in movies, and real things). I'd probably start from models of the biomechanics of ducks and horses. We recently added detailed human anatomy data to the Wolfram Language and Wolfram|Alpha (see e.g. ), and I know from that project (which took a long time) that there isn't readily available comparable data for other species. So one would have to wing it a bit (and, yes, I have no idea about models for the wings...)

So ... after one has a biomechanics model, then there's the question of how these critters would fight. Oh, by the way, there's another issue: how would the anatomies of horses and ducks scale? There are empirical scaling laws for anatomy (how much stronger is a leg if it's x times bigger, etc.), which perhaps one could use. But to be "realistic" one would have to think about how an actual duck the size of a horse would grow. Maybe one could use synthetic biology to fabricate such a thing, but that's out of range for now. We don't even know what genes govern human height ... let alone knowing what to modify to change the size of a duck.

OK ... but let's assume we've got a plausible biomechanics model. Then we've got to model the brains of the critters. In modern times, perhaps we could simply capture training data for a neural network by watching the actual behaviors of ducks and horses when presented with different sensory inputs and situations. At least on short timescales I wouldn't be surprised if some simple recurrent neural network or some such wouldn't be able to reproduce the behavior pretty well.

So let's imagine that we have models for these critters. Now we'd have to work out a strategy for how to fight them. Actually, my tendency might be to try to avoid fighting them, but I'm not sure how it would work negotiating with a horse-sized duck. Maybe by the time we've got a good neural net model for the critter, we'd be able to communicate with it, and have some kind of existential discussion ... with the conclusion that we didn't want to fight anyway. But still, if we did have to fight, then we'd want to develop some algorithm for deciding what to do, and responding to the various actions of the "other side". What I'd tend to do is to search a large space of possible algorithms, looking for ones that perform well in simulations of the fight. Most likely those algorithms will involve a certain amount of apparent randomness ("doing unexpected things").

After all of this, I'd pick the best algorithms, then run simulations of the duck-horse and horse-duck cases. With luck there'd be a definitive separation in the distribution of outcomes for the two cases ... in which case, I'd have an answer! Or it could be that the distributions would overlap a lot ... in which case I guess I'd use some statistical criterion or another ("mean worst-case outcome" or "90% probability of victory" etc.) and pick the answer.

Oh my ... that was long and nerdy ... but it was fun for me ... thanks...

StephenWolfram-Real348 karma

I sometimes think the problem is not the creation of artificial intelligence, but the avoidance of artificial stupidity... I put some of my favorites from the history of Wolfram|Alpha in

E.g. "all the king's horses" used to be interpreted as the total horse livestock population of the world, on Elvis's birthday...