Reddit Ask-Me-Anything Event (AMA; March 5, 2012)

Q:
What is the most interesting use of Mathematica and/or Wolfram Alpha you've ever seen? —Skydiver79

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

Q:
Are there any uses for WA that are not typically exploited by users? Any underused functions that we should know about? —justfutt

Q:
What was the most difficult technical or design problem that you had to solve during the development of Wolfram|Alpha? —xmachina

SW:
I'd been used to building Mathematica, which is a very systematic and coherently designed language, with no visible "heuristics". In Wolfram|Alpha, heuristics are central; our goal is to make it just "do what anyone means". It took me a while to really get into designing a tight system that's so much based on heuristics.

There were many technical issues for Wolfram|Alpha that I thought might just make it all impossible: too much data in the world; too slow to compute useful things; impossible to understand natural language; etc.

Fortunately we got through all of these. One thing to mention is that when one's dealing with natural language, ordinary notions of system modularity tend to go away; a small change in something to do with chemistry might affect some interpretation in finance. It's been interesting to build development and QA systems around all that.

SW:
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 tones.wolfram.com

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.

Q:
P = NP?

A man can dream... —SheaF91

SW:
I suspect that it may be undecidable ... i.e. independent of typical axiom systems.

An interesting approach to it is an empirical one based on enumerating simple programs.

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

Q:
What's some of the uses you've seen of Wolfram Alpha that you never expected when developing it? It's a fantastic "search engine" and I'm constantly amazed at the weird stuff you can pull out of it. —mekarawr

As we've developed Wolfram|Alpha I've been continually surprised at how much more of the world ends up being computable than I expected. For example, I had no idea that there's be something interesting to compute from a Shakespeare play (try typing in "hamlet").

It's been a repeated experience for me that when I build some big "platform", like Mathematica, or Wolfram|Alpha, I only gradually understand just what the platform makes possible. And that's what's been happening with Wolfram|Alpha. The latest big thing has been with Wolfram|Alpha Pro, starting to understand how the basic ideas of Wolfram|Alpha can be applied not just to short queries, but also to uploaded data, etc.

Q:
Hi Stephen,

Thanks for doing this AMA. I had a question in regards to intelligence in children as it relates to their education and socialization. Your wikipedia page states that your intelligence made it difficult to teach you as a child. You were no doubt bored. Was there anything you wish your parents had done differently to make that go smoother as a child? What about social skills? Kids who are much smarter than their peers tend to find it hard to relate or just lack interest in social skills. This makes it hard for them to make and find friends and can lead to self esteem issues in some cases. Was that the case for you? Any advice there?

I ask all these questions because my first baby is due next month. I want to be prepared to handle these types of issues should they arise. Thanks!

As an unrelated question, what do you think is the single most important thing for the US to do in order to regain prominence as a first class educator of children? —anexanhume

SW:
I think Wikipedia may overstate the difficulty of my education :-)

I went to some very good schools in England, and typically did rather well. However, starting from probably age 8 or so, I ended up learning the things I was really interested in outside of school, from books, etc. (I wish the web had existed; it would have saved an awful lot of bicycle trips to a library).

I guess I never had much trouble with "self esteem" as such. I had a self image of being a "science type". And that made it a little more difficult to realize that I could and should do things like starting companies.

I think it's often challenging in the educational system for people to understand with clarity (a) what they're really good at, and interested in, and (b) what kinds of niches there are in the world. Too often, people get tracked according to what they happen to do well at early on, and never think outside. In that model, I would have done much less interesting things...

Q:
would you consider open sourcing obsolete versions of Mathematica? —Err_Eek

SW:
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 (https://www.wolfram.com/cdf), 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...

Q:
Do you believe that the 'Technological Singularity' is coming, and if so, when? How soon do you think we will see AI pass the Turing test? —anonymous

SW:
I think the Turing test will creep up on us. There will be more and more "outsourcing" of human activities (remembering things, figuring things out, recognizing things, etc.) to automated systems. And the line between what's human and what's machine will blur.

For example, I wouldn't be surprised if a future Wolfram|Alpha wouldn't be inserted in the loop for peoples' email or texts: if you want to ask someone a simple question, their "AI" might respond for them.

A thing to understand about AI (that took me a long time to realize): there's really no such thing as "raw general intelligence". It's all just computation—that's one of the big things I figured out in A New Kind of Science (e.g. https://www.wolframscience.com/nksonline/section-12.10). (Actually, it was this observation that made me realize Wolfram|Alpha might be possible now, without us first having constructed a general AI.)

The issue is not to get something "intelligent"; it's to get something with human-like intelligence. And that's all about details of human knowledge and the human condition. Long story ....

What made you guys decide to put in so many amazing easter eggs into it?

What's the breakdown of the Alpha team? I'm curious how many programmers you have, vs. mathematicians and other specialties. Not necessarily absolute numbers if those are secret but proportions would be very interesting to me.
—malderi

We also have an "advanced R&D group", that works on major new directions (e.g. recently many of the features in Wolfram|Alpha Pro).

In terms of peoples' backgrounds: we've got quite a spectrum, including PhDs in lots of different areas. A remarkable number of people working on core parts of Wolfram|Alpha happen to have worked on NKS—which given some of the methods we're using, may not be a coincidence :-)

For the content areas, we have people with specific expertise and background in those areas (and we're also continually calling on outside experts for help). In other areas, I don't have a precise inventory, but my impression is that we're roughly equally split among physics, computer science and math in terms of educational background.

Q:
What is your opinion on Khan Academy? How do you see education in math and science evolving in the next 10 years as computers become even more central? —McMonty

SW:
It's been a little frustrating to watch over the years how slowly things in math and science education have been evolving. Back when Mathematica first came out nearly 24 years ago, people started doing things with it in education. And a lot of very nice work has been done.

But I can't help but think there's a lot more that can be done.

Given the current curriculum (e.g. in math) we can do much better at letting individual students move forward at their own pace, e.g. using Mathematica and Wolfram|Alpha as computational engines.

But one thing to realize is that most of the current math curriculum was set up a century ago, when the world was very different. And I strongly believe that it's worth rethinking it, given our current tools, and the current uses that math has in the world.

One thing that's really nice given Mathematica and Wolfram|Alpha is that people can much more immediately do "real-world" math and science, exploring genuine questions, not toy ones.

Another educational "experiment" of ours is the Wolfram Science Summer School (https://www.wolframscience.com/summerschool/2012/) which we've been running for 9 years. The idea there is that people come and do an original research project. (One of my roles there is a piece of "extreme professoring" ... trying to figure out an appropriate project for each person, given their interests and experience.)

I always start the summer school by doing a "live experiment" with Mathematica, and trying to discover something new in a couple of hours. (So far, it's never failed.) I think it's great for people to see that it's possible to discover new things—and that's then reinforced in the projects they do themselves.

I don't think every teacher is going to be able to pull off making discoveries with live experiments, but I think there are ways to get closer to that.

I've developed quite a few opinions about what the future of at least "high achieving education" should be ... mostly centered on the idea of people being helped in doing "their own projects", rather than being fed standardized courses and curricula.

Gosh ... there's a lot more to say about this. E.g. about treating NKS as a "pre computer science" subject; about teaching Mathematica as a language to young kids (small inputs -> exciting outputs); etc. etc.

Q:
What are your opinions on Matlab? —pubby8

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

Q: Stephen, first Thank you! Mathematica/ Alpha are both great. I've got a few questions:

Whats the possibility of getting some kind of theorem/proof capabilities into Alpha? I would love to be able to type in a theorem, and get several proofs for it!

—DasCondor

SW:

Actually, I was first interested in physics ... and I learned mathematics as support for that.

I'm not sure if it completely counts as mathematics, but I guess it's the possibility of universal computation. I think that's the most important thing that's been discovered in the past century, and perhaps a lot more.

Well, Wolfram|Alpha obviously is effectively proving theorems in many of the computations it does (e.g. are there solutions to such-and-such an equation?) But if you mean displaying the proofs, that's a somewhat different story.

The "Show steps" buttons for things like college-level integrals are an example of Wolfram|Alpha generating "human understandable explanations" of results it computes.

Mathematica has a fairly powerful general equational logic theorem prover built in, and that can be accessed to some extent from Wolfram|Alpha. We've never figured out a good systematic way to represent proofs in Mathematica ... but it's easier in Wolfram|Alpha, and (though it's not unfortunately a high priority) we will eventually try to do that.

Actually, we have a project that we just started to do "proof-oriented" mathematical structure computations in Wolfram|Alpha. Mathematica works by the user giving input, and Mathematica computing an output "answer".

But in Wolfram|Alpha you can type an input like "caffeine" where there's no specific computation to do; rather one just wants a report. The idea is to do the same kind of thing for math. One might enter "let F be a field with .......". Then Wolfram|Alpha will try to compute "interesting things to say" about that mathematical structure.

It might synthesize new theorems (with heuristics for which ones are "interesting") or it might effectively look up in a computable version of the mathematical literature to see what historical theorems might apply.

Q:
Stephen, Why doesn't Mathematica have built in tables of materials properties that are easy to interface with in a problem? For instance, steam tables for water that can be evaluated at any temperature, or materials stress properties as a function of temperature, that can be plugged into any problem just as a variable.

I started off as a physics major, now I am a PhD candidate in nuclear engineering and require these engineering properties. Why isn't Mathematica more engineer friendly? (I'm waiting to be proven wrong-- that these in fact, do exist.)

TLDR: Why aren't there properties tables, which are easy to call and browse, for every possible alloy, chemical, and property? —ZeroCool1

The Wolfram|Alpha function in Mathematica gets access to them. We're gradually trying to make the access even easier, though.

Q:
How is "A New Kind of Science" faring in the scientific community as of lately? —bohrwhore

SW:
There's a lot to say here.

There's both interesting science to talk about, and there's interesting history, philosophy and sociology of science.

Later this year, it'll be the 10th anniversary of the publication of A New Kind of Science, and I'm hoping to be able to write some serious assessments at that time.

Personally, pretty much what's happened is what I expected would happen (and even said in the Preface to the book). Some good things have happened quickly, others inevitably take a long time. It's all rather classically "paradigm shifty".

I'm pretty happy with what's in the NKS book, and I continue to be pleased at the number of people who are "discovering" the book, and reading it in remarkable detail.

As with any project this "paradigm shifty", there will be people who think (or at least say) that it's all nonsense. I know that some of the people who made a lot of noise when the book came out have subsequently decided it's a lot more sensible than they at first thought. But I certainly can't say about all of them.

I didn't make a big effort to read all the comments and reviews when the book first came out; in fact I made the conscious decision not to engage in "answering critics" right then.

I'm thinking for the 10th anniversary of reading all the stuff that got written, and then contacting some of the more vigorous critics and setting up some appropriate forum (Reddit ??) to interact with them...

Q:
Hi Stephen,

let's define f by

(1-21-s ) f(s) = 1-s - 2-s + 3-s - ...

for complex s with positive real part. How can I find all zeros of this function with Mathematica or Wolfram|Alpha?

Best regards —anonymous

SW:
Type "1-s + 2-s + 3-s + ..." into Wolfram|Alpha ... wow! I'm impressed that it can figure out that this is the Riemann zeta function...

Typing "zeros of the riemann zeta function" into Wolfram|Alpha gives some interesting mathematical facts ... but maybe we need a juicy Easter egg about this...

Q:
I'm fascinated that you worked alongside Feynman and how you both have such opposite (and complementary) approaches to science.

If it isn't too bold a question, how do you feel about the often circulated letter to you from Feynman? In particular, how do you feel his comments have stood the test of time?

Your projects have been great success and are used worldwide and you've successfully run a large organisation for many years. Have you avoided the managing side of things that Feynman warned you about, or have you enjoyed it? —Lave

Richard Feynman and I worked on quite a few projects together. One example was "quantum computers" back around 1980, way before almost anyone thought about quantum computers.

A typical pattern would be that Feynman would do some elaborate hand calculation, and get some result that I didn't really understand. I would do some computer calculation, and get a result that Feynman didn't understand. And then we would have a big "battle of intuitions" about what each of them meant.

About the letter of Feynman's that you link to: I think it's an interesting letter, though I would claim it's more about Feynman than about me. Feynman himself didn't like doing management kinds of things; he believed he was bad at them, though actually I think he was much better at them than he thought.

I guess I have always liked people, and interacting with people ... and for me managing projects and organizations is interesting and satisfying.

Q:
I met you not too long ago at a southern California university. I walked up to you and said hi and thanked you for Wolfram. You spoke to me like I was a moron that didn't deserve your time and brushed me off immediately like I was scum.

I wasn't mad, just disappointed. Hope you have a great life, I still use wolfram all the time! —anonymous

SW:
I'm sorry to hear that. I always enjoy chatting with people at events ... in fact, that's a big part of why I do the events. I also pride myself on trying to respond nicely to all kinds of questions and comments...

I actually haven't visited any university in southern California for nearly a decade ... so conceivably you have me mixed up with someone else... !

Q:
How are your mental math skills? —wabi44

SW:
I always used to think they were terrible ... and that was part of the reason I started a very long time ago using computers to do calculations for me.

However, I have a pretty good memory, and by now I finally know almost every element in the 12x12 multiplication table :-) Also, I think the general level of mental math skills in the population is degrading ... so mine are looking better and better relative to the average.

You might have noticed that Wolfram|Alpha now gives some mental math time estimates for simple computations (e.g. "6+7"). I'm embarrassed to say that I don't always get them in the time it claims for adults... :-)

Q:
I went to school in Champaign, IL, where Wolfram Research is headquartered. The rumor was that Stephen Wolfram is amazingly, jaw droppingly, smart. People who are used to being the smartest person in the room are apparently awed by him.

I was hoping I could get confirmation of another rumor from school. Supposedly he would keep a small duffel bag of clothes in his office. If he got stressed out or pissed about something, he would leave work, fly up to Chicago, and then look at the departure board to figure out where on the planet he wanted to go. He would then take an impromptu vacation for a couple days to relax. I always thought that was an awesome idea and I wish I had the money and clout to pull it off. —Big_Baby_Jesus

SW:
That story is close to correct, though from long ago. I did this particularly in the mid-1980s when I lived in Princeton, NJ, and People Express airline operated from Newark airport. I ended visiting some rather interesting places...

Since then, my life has gotten considerably more structured ... and I haven't been traveling much at all. Recently, though, my children have decided that I should be traveling more ... because they want to come along. So in the next few months, we're going to some interesting places...

Q:
How feasible would it be to give Wolfram Alpha Pro the capability to export plots, tables, etc. into a .tex file or code? I have to do a lot of reports in Latex, and performing the same steps in Matlab over and over to get my plots looking sharp is fairly tedious.

PS: Thank you so much for Wolfram Alpha. This year at university, I have been enrolled in a two-part class that essentially boils down to solving complicated integrals with sometimes up to six dimensions. Being able to plug long expressions into Wolfram Alpha instead of the tedium of figuring it out by hand or sweating proper syntax really saved my sanity. —jwhh91

SW:
Thanks for your kind words...

In Wolfram|Alpha Pro, you can export graphics as EPS ... and that should make it easy to include them in TeX documents.

Q:
Can you comment on Khan Academy? Awesome answer by the way. —Chanz

SW:
I really like the concept of Khan Academy, and the whole idea of "self service education". This is clearly the future. I don't think we've yet hired anyone whose complete education came from places like this ... but I'm sure it will happen.

I've enjoyed meeting Sal Khan, and it's wonderful to see his enthusiasm for the subjects he covers. It's also nice to see Wolfram|Alpha making cameo appearances in recent videos, alongside "pen and paper". (Hmmm ... now I'm thinking about how this might relate to the handwriting-based Wolfram|Alpha that was demoed last week by Samsung on their new tablets at Mobile World...)

Q:
I really hate the requirement to log in. I find it very inconvenient, and don't want to do it. The end result is that I try to get much of the same information on Google, where I'm not forced to register to perform a search. —Moruitelda

SW:
I'm a bit confused by this. You absolutely can use Wolfram|Alpha without logging in or registering in any way.

But if you want even basic personalized features (like history, favorites, etc.) you obviously need to log in.

We're hoping lots of people will want to upgrade to the Pro version (and it seems to be off to a very good start).

I hope other people agree, but I think we're providing rather impressive value for $2.99/month for students.

In a perfect world, should we try to make every feature absolutely free for everyone? Maybe. I've certainly spent a huge amount on the development of Wolfram|Alpha, and on trying to make as widely available as possible. But to be able to accelerate its development, it needs to start to be subsidized by at least its heavy users.

Ultimately it's a fairly simple proposition: the more successful Wolfram|Alpha can be commercially, the more it can be developed, and the more useful it will be to people.