Stephen Wolfram is in the business of making people smart.
When something goes wrong, even if somebody fixes it for you, find out what they did.
Lifehacker:How long have you been working on this piece in particular?
Stephen Wolfram:Were trying to finish version 12 of Wolfram Language.
Usually I am deeply involved in things with our product.
And I was kind of going crazy.
Ive been meaning to write this piece for a decade.
So I [decided to] jump in and do it.
For better or worse Im a fairly fast writer, a write once kind of character.
That, every page I went over endlessly.
But that has made me subsequently prefer the write once strategy.
So Ive been meaning to write this piece for 10 years, but it actually took about a week.
Can you give a broad description?
SW:The big picture is trying to deliver computational intelligence to everything.
The goal is to build as much automation and knowledge into the language as possible.
And then they were excited when they got their first operating systems.
You get a computer and it comes with a user interface, networking, etc.
Thats what Wolfram Language delivers.
I started building the precursors of Wolfram Language more than 40 years ago now.
And weve done that over and over again, building layers of automation for the last 30 years.
My goal is to delegate as much as possible to the machine.
My goal is to delegate as much as possible to the machine.
Wolfram Notebooks is an idea we released 30 years ago.
When write things, I use a mixture of English and Wolfram Language.
Im interested in using computational language as an efficient way to express oneself.
Thats what I built in Wolfram Language.
Its something that both humans and computers can read.
And its a way of organizing ones thoughts, much in the same fashion that mathematical notation helps people.
Another objective is to help clarify ones own thinking.
SW:Yeah, it provides a way of structure.
People debate, for human languages, whether what language you use affects how you think about things.
For computational languages, there is no question that this is the case.
Without that its very hard.
Theres one slightly complicated functional programming construct called subset map.
This whole computational paradigm is the paradigm of the 21st century.
LH:Lets talk about this super-optimization that you have for a lot of your work processes.
How do you decide what you are going to optimize or not?
SW:The meta point is, just keep the thinking apparatus engaged while youre doing what youre doing.
I do try and keep thinking when Im doing stuff.
Something like file system organization.
I think Ive done four file system reorganizations in my life.
Not a huge number.
But every so often Ill decide, This is malfunctioning.
I need to do something about it.
I will have been thinking for a while about it.
And Ill sit down and try and solve the problem.
And thats a lot of what a lot of these kinds of optimization decisions are about.
you’re free to lead your life and do absolutely no planning.
Or it’s possible for you to spend all your time planning and not remember to lead your life.
you could lead your life and do absolutely no planning.
Or it’s possible for you to spend all your time planning and not remember to lead your life.
And there have been people who had thought about projects a bit like that for about 300 years.
If you started it 300 years ago, it was definitely not a doable project.
And Im sure if Id started it 40 years ago it would not have been a doable project either.
Early last summer I noticed that for a couple of weeks my resting heart rate had noticeably gone down.
At first I thought it was just because I happened to be systematically doing
something I liked
then.
But later in the summer, it happened again.
Are you normally checking your heart rate stats every day?
SW:Most of the things that I keep are completely automated and I dont do anything with them.
The heart rate thing, Im sure I noticed just by glancing at that mail.
My fundamental thing about personal analytics is, I dont put any effort into collecting the data.
I put effort into gettingsystemsbuilt to do it, and then I verify the systems keep running.
I was just amazed that I had been doing that.
It seems like way too much work for me!
Or is this more goal-oriented?
SW:Anything I can track, I track.
And most of these systems, once theyre set up, I never have to think about them again.
And thats been running for years and years and years, and I never think about it.
Occasionally I think maybe I should make a movie out of that.
Will I ever use that data for anything?
Its super cheap to keep.
And so why not.
LH:How do you avoid constant maintenance of these tracking systems?
Some report that came in this morning, a piece of it was blank.
So I know that immediately.
This is the value of having a computational language.
Another thing is, I like to keep all my data myself.
If I cant download it, I really dont want it.
Things that were in somebody elses file system or went into some other medium, who knows?
So keep it in your active file system.
All these systems rot at a certain rate.
And thats why I now have the daily dashboard result.
But it tends to be human-initiated.
The fundamental thing about good data science is, can you notice the unexpected.
Its much harder to discover the unexpected when you have already put in a bunch of expectations.
SW:I think its a question of whether its conceptual, or its finding a particular name.
Im about to go to my close to 50-year elementary school reunion.
And so I was tracking down what happened to all these kids and search is the thing for that.
Youve got a name.
But if its a concept like, I dont know, teaching computational thinking to kids.
Ive done a bunch of work on that, Ive collected tons of stuff about that.
What would I search for?
There isnt really a search term [that will turn up every relevant item].
With web search theres the signal of how many people link to this page.
That gives you a signal of how important is this page.
The problem of enterprise search has never been well solved.
Because there isnt a similar obvious signal.
It was beautiful, it was a lovely yellow box, but it was absolutely useless.
And for these more conceptual things, the idea of saying Im going to put in a tag?
Im going to put in the right set of tags?
Ive never found tagging useful.
Its very important to have not too many categories, so you could remember every category.
I think the most important message there is, dont give a shot to be too clever.
Im aware of laying things down so that they are searchable later.
But you cant search for concepts.
Thats sort of hopeless.
I love using archive folders too, they save me from a lot of clutter.
SW:Youre ahead of most people.
Im surprised by how few people seem to have figured it out.
Maybe people who read your publication are the pop in who will have figured this out.
Because you never know whether the projector is going to be ready for your specific computer and its ports.
And I really like the line, I decided Id better actually understand how computers talk to projectors.
Do you have any advice on recognizing bottlenecks like that?
SW:Theres all kinds of stuff like that.
The thing was driving me crazy, Im trying to scroll through 800 things to find my phone.
So I realized I should rename my phone, so it always sorts at the top.
I dont want to make that tip too popular!
LH:It doesnt obey the categorical imperative.
SW:And then well have a fight for the top.
Ive been CEOing a software company for a long time.
Because thats built up, over the course of years, a huge amount of experience.
An example from today.
Some websites of ours mysteriously lost their CSS.
How could this possibly be happening?
I make a point of reporting bugs when I notice them.
My approach to debugging is rooted in my whole computational-thinking way of doing things.
Theres one I wrote a post about actually, aboutfinding a bug in our cloud infrastructure.
People are quite bad at debugging.
Debugging is a complicated skill, kind of like medical diagnosis.
One case, this was a mail system, it might have been Apple Mail or Zimbra.
My mail was bizarrely failing for some reason.
So were looking at all these messages.
This would never have been figured out by looking at individual messages.
What you saw was just, it worked worked worked worked worked, and then splat something failed.
There was no counter that said you just started the 256th thread.
It was just, somewhere in the middle of all of this, boom it fails.
And that turns out to be a really quite powerful methodology.
While it is frustrating at the time, theyre quite interesting intellectual exercises, these debugging things.
The more you know, the better youre going to be at it.
So having this background experience is really useful.
When something goes wrong, even if somebody fixes it for you, find out what they did.
Interview edited for clarity.
For more follow-up on Wolframs essay,read his Reddit AMA.