0
SPEAKER_01
The following is a conversation with Travis Olyphant, one of the most impactful programmers and data scientists ever.
0
SPEAKER_01
He created NumPy, SciPy, and Anaconda.
0
SPEAKER_01
NumPy formed the foundation of tensor-based machine learning in Python, SciPy formed the foundation of scientific programming in Python, and Anaconda, specifically with Conda, made Python more accessible to a much larger audience.
0
SPEAKER_01
Travis s life work across a large number of programming and entrepreneurial efforts has and will continue to have immeasurable impact on millions of lives by empowering scientists and engineers in big companies, small companies, and open source communities to take on difficult problems and solve them with the power of programming.
0
SPEAKER_01
Plus, he s a truly kind human being, which is something that when combined with vision and ambition, makes for a great leader and a great person to chat with.
0
SPEAKER_01
To support this podcast, please check out our sponsors in the description.
0
SPEAKER_01
As usual, I ll do a few minutes of ads now, no ads in the middle.
0
SPEAKER_01
I try to make these interesting, so hopefully you don t skip, but if you do, please still check out the sponsor links in the description.
0
SPEAKER_01
It does happen to be the best way to support this podcast.
0
SPEAKER_01
I use their stuff, I enjoy it, maybe you will too.
0
SPEAKER_01
This show is brought to you by Novo, which is a business banking app.
0
SPEAKER_01
The process is simple.
0
SPEAKER_01
You sign up, they ll mail you a Novo debit card, and you get free ATM use.
0
SPEAKER_01
Honestly, if there s any industry that needs disruption, it s the old school banking industry, and that s exactly what Novo does.
0
SPEAKER_01
It s backed by FDIC insurance, like the old school banks, but there s no hidden fees, no monthly fees, or minimum balance requirements.
0
SPEAKER_01
It has an easy-to-use mobile app you can apply in under 10 minutes.
0
SPEAKER_01
There s always human-powered customer service.
0
SPEAKER_01
I like the way that sounds, human-powered.
0
SPEAKER_01
Free transfers, mailed checks, and incoming wires.
0
SPEAKER_01
Integrates with other small business tools like Stripe, Shopify, QuickBooks, and many more.
0
SPEAKER_01
Refunds all the ATM fees, like I said.
0
SPEAKER_01
thousands of dollars in exclusive perks, go to banknova.com slash lex to sign up for free.
0
SPEAKER_01
That s banknova.com slash lex.
0
SPEAKER_01
I highly encourage you go there and support the disruption of the old school banking industry.
0
SPEAKER_01
This show is also sponsored by All Farm, a furniture company.
0
SPEAKER_01
They ship to your home quickly, take it back for free if you don t like it in the first 100 days.
0
SPEAKER_01
It s easy to assemble, looks beautiful and classy, and it feels amazing.
0
SPEAKER_01
I love it.
0
SPEAKER_01
I have one of their loveseat.
0
SPEAKER_01
It s leather, it s black.
0
SPEAKER_01
It looks gorgeous, it feels great.
0
SPEAKER_01
I hung out with a lot of interesting people on that loveseat.
0
SPEAKER_01
There s something about the dynamics of a loveseat.
0
SPEAKER_01
You do have a little bit of space between you, but you re just close enough to where you have to contend with the challenges of human intimacy.
0
SPEAKER_01
For example, I hung out with Michael Malice in that love seat, although he specifically refuses to acknowledge the emergent humanity in this particular computer s soul.
0
SPEAKER_01
Anyway, go to allform.com slash Lex.
0
SPEAKER_01
They re offering 20% off all orders if you go to allform.com slash Lex.
0
SPEAKER_01
There s small couches there, big ones, and it s beautiful, and it feels great.
0
SPEAKER_01
This episode is also brought to you by Onnit, nutrition, supplement, and fitness company.
0
SPEAKER_01
They make AlphaBrain, which is a nootropic that helps support memory, mental speed, and focus.
0
SPEAKER_01
I take it when I have a difficult deep work session coming up and I really need help to get my mind to that place of clarity, of focus.
0
SPEAKER_01
I don t like to over-caffeinate myself and get jittery.
0
SPEAKER_01
I like what AlphaBrain does.
0
SPEAKER_01
It s like a steady focus that I get from it.
0
SPEAKER_01
I don t use it every day, so it s not part of my ritual.
0
SPEAKER_01
It s more like a jetpack, a super boost that I use when I know the session is going to be difficult, mentally challenging.
0
SPEAKER_01
Obviously, I first heard about Onnit on the Joe Rogan Experience, so it feels surreal to be doing an ad read for them now.
0
SPEAKER_01
But I ve really enjoyed their stuff for a long time, so I m proud and happy.
0
SPEAKER_01
Anyway, go to lexfriedman.com on it to get up to 10% off AlphaBrain.
0
SPEAKER_01
That s lexfriedman.com on it.
0
SPEAKER_01
This show is also brought to you by Athletic Greens and its new renamed AG1 Drink, which is an all-in-one daily drink to support better health and peak performance.
0
SPEAKER_01
It replaced the multivitamin for me and went far beyond that with 75 vitamins and minerals.
0
SPEAKER_01
There s so much good stuff in there.
0
SPEAKER_01
It tastes delicious.
0
SPEAKER_01
It s now like an integral part of my day.
0
SPEAKER_01
I drink it now at least twice a day.
0
SPEAKER_01
and make sure that I get the nutritional base for all the crazy things I do in terms of athletic pursuits, in terms of long sessions of deep work, and also having keto or mostly a carnivore diet.
0
SPEAKER_01
So get the nutrition.
0
SPEAKER_01
that my mind, my body needs given all the diet, given all the hard work I have to undertake.
0
SPEAKER_01
Anyway, they will give you one month supply of fish oil when you sign up at athleticgreens.com slash lex.
0
SPEAKER_01
That s athleticgreens.com slash lex.
0
SPEAKER_01
This episode is also brought to you by Blinkist, my favorite app for learning new things.
0
SPEAKER_01
Blinkist takes the key ideas from thousands of nonfiction books and condenses them down into just 15 minutes that you can read or listen to.
0
SPEAKER_01
I love reading slowly, reading through the whole book, and thinking deeply.
0
SPEAKER_01
through every page, through every paragraph.
0
SPEAKER_01
But coupled with that, I also love using Blinkist to pick which books I m going to read next and using Blinkist to review the key insights from the books I ve already read.
0
SPEAKER_01
So because I read so slowly and so deeply, I can t possibly afford to read a large number of books.
0
SPEAKER_01
So I rely on Blinkist to help me remember the key insights from books and to help pick future books.
0
SPEAKER_01
Go to Blinkist.com slash Lex to start your free seven day trial and get 25% off of a Blinkist premium membership.
0
SPEAKER_01
That s Blinkist.com slash Lex.
0
SPEAKER_01
This is the Lex Friedman Podcast, and here is my conversation with Travis Oliphant.
0
SPEAKER_01
What was the first computer program you ve ever written?
0
SPEAKER_00
Do you remember?
0
SPEAKER_00
Whoa, that s a good question.
0
SPEAKER_00
I think it was in fourth grade.
0
SPEAKER_00
Just a simple loop and basic.
0
SPEAKER_00
Basic.
0
SPEAKER_00
Basic, yeah, on an Atari 400, I think, or maybe it was an Atari 800.
0
SPEAKER_00
It was a part of a class, and we just were just basic loops to print things out.
0
SPEAKER_00
Did you use go-to statements?
0
SPEAKER_00
Yes, yes, we used go-to statements.
0
SPEAKER_01
I remember in the early days, that s when I first realized there s principles to programming, when I was told that don t use go-to statements.
0
SPEAKER_01
Those are bad software engineering principles.
0
SPEAKER_01
It goes against what great, beautiful code is.
0
SPEAKER_01
I was like, oh, okay, there s rules to this game.
0
SPEAKER_00
I didn t see that until high school when I took an AP Computer Science course.
0
SPEAKER_00
I did a lot of other kinds of just programming in TI.
0
SPEAKER_00
But finally, when I took an AP Computer Science course in Pascal.
0
SPEAKER_00
Wow.
0
SPEAKER_00
Yeah, it was Pascal.
0
SPEAKER_00
That s when I, oh, there are these principles.
0
SPEAKER_00
Not C or C++?
0
SPEAKER_00
No, I didn t take C until the next year in college.
0
SPEAKER_00
I had a course in C. But I haven t done much in Pascal, just that AP Computer Science course.
0
SPEAKER_01
Now, sorry for the romanticized question, but when did you first fall in love with programming?
0
SPEAKER_00
Oh, man, good question.
0
SPEAKER_00
I think actually when I was 10.
0
SPEAKER_00
My dad got us a Timex Sinclair, and he was excited about the spreadsheet capability.
0
SPEAKER_00
But I made him get the basic add-ons so we could actually program in BASIC.
0
SPEAKER_00
And just being able to write instructions and have the computer do something.
0
SPEAKER_00
Then we got a TI-99-4A when I was about 12.
0
SPEAKER_00
It had sprites and graphics and music.
0
SPEAKER_00
You could actually program it to do music.
0
SPEAKER_00
That s when I really sort of fell in love with programming.
0
SPEAKER_01
So this is a full, like a real computer with memory and storage and processors and whatnot?
0
SPEAKER_00
Yeah, the Timex Sinclair was one of the very first.
0
SPEAKER_00
It was a cheap, cheap, I think it was
0
SPEAKER_00
Well, it was still expensive, but it was 2K of memory.
0
SPEAKER_00
We got the 16K add-on pack.
0
SPEAKER_00
But yeah, it had memory, and you could program it.
0
SPEAKER_00
In order to store your programs, you had to attach a tape drive.
0
SPEAKER_00
Remember the sound that would play when you converted the modem?
0
SPEAKER_00
It would convert digital bits to audio files.
0
SPEAKER_00
It was set on a tape drive.
0
SPEAKER_00
I still remember that sound, but that was the storage.
0
SPEAKER_00
And what was the programming language, do you remember?
0
SPEAKER_00
It was BASIC.
0
SPEAKER_00
It was BASIC.
0
SPEAKER_00
And then they had a VisiCalc.
0
SPEAKER_00
It s a little bit of spreadsheet programming in VisiCalc, but mostly just some BASIC.
0
SPEAKER_01
Do you remember what kind of things drew you to programming?
0
SPEAKER_01
Was it working with data?
0
SPEAKER_01
Was it video games?
0
SPEAKER_00
Math.
0
SPEAKER_00
Math.
0
SPEAKER_01
Math-y stuff?
0
SPEAKER_00
Yeah, I ve always loved math.
0
SPEAKER_00
A lot of people think they don t like math because I think when they re exposed to it early, it s about memory.
0
SPEAKER_00
You know, when you re exposed to math early, you have a good short-term memory if you remember its timetables.
0
SPEAKER_00
And I do have a reasonably, I mean, I m not perfect, but a reasonably long little short-term memory buffer.
0
SPEAKER_00
And so I did great at times tables.
0
SPEAKER_00
I said, oh, I m good at math.
0
SPEAKER_00
But I started to really like math, just the problem-solving aspect.
0
SPEAKER_00
And so computing was problem-solving applied.
0
SPEAKER_00
And so that s always kind of been the draw, kind of coupled with the mathematics.
0
SPEAKER_01
Did you ever see the computer as like an extension of your mind, like something able to achieve?
0
SPEAKER_01
Not till later.
0
SPEAKER_01
Okay.
0
SPEAKER_01
Yeah, not then.
0
SPEAKER_01
It s just like a little set of puzzles that you can play with and you can play with math puzzles.
0
SPEAKER_00
Yeah, it was too rudimentary early on.
0
SPEAKER_00
Like it was sort of...
0
SPEAKER_00
Yeah, it was a lot of work to actually take a thought you d have and actually get it implemented.
0
SPEAKER_00
And that s still work, but it s getting easier.
0
SPEAKER_00
And so, yeah, I would say that s definitely what s attracting me to Python is that that was more real, right?
0
SPEAKER_00
I could think in Python.
0
SPEAKER_00
Speaking of foreign language, I only speak another language fluently besides English, which is Spanish.
0
SPEAKER_00
And I remember the day when I would dream in Spanish.
0
SPEAKER_00
And you start to think in that language.
0
SPEAKER_00
And then you actually, I do definitely believe that language
0
SPEAKER_00
limits or expands your thinking.
0
SPEAKER_00
There s some languages that actually lead you to certain thought processes.
0
SPEAKER_01
Yeah, like, so I speak Russian fluently, and that s certainly a language that leads you down certain thought processes.
0
SPEAKER_01
Well, yeah, I mean, there s a,
0
SPEAKER_01
There s a history of the two world wars, of millions of people starving to death and years of death throughout its history of suffering, of injustice, like this promise sold to the people and then the carpet or whatever is swept from under them.
0
SPEAKER_01
It s like broken promises and all of that pain and melancholy is in the language, the sad songs, the sad hopeful songs, the over romanticized like,
0
SPEAKER_01
I love you, I hate you, the swings between all the various spectrums of emotion, so that s all within the language.
0
SPEAKER_01
The way it s twisted, there s a strong culture of rhyming poetry, so like the bards, the sync, there s a musicality to the language too.
0
SPEAKER_00
Did Dostoevsky write in Russian?
0
SPEAKER_00
Yeah, so like Dostoevsky, Tolstoy, all the... The ones that I know about, which are translated, and I m curious how the translations... So Dostoevsky did not use the musicality of the language too much.
0
SPEAKER_01
So it actually translates pretty well because it s so philosophically dense that the story does a lot of the work, but there s a bunch of things that are untranslatable.
0
SPEAKER_01
Certainly the poetry is not translatable.
0
SPEAKER_01
I actually have a few conversations coming up offline and also in this podcast with people who ve translated Dostoevsky.
0
SPEAKER_01
And that s for people who work in this field, know how difficult that is.
0
SPEAKER_01
Sometimes you can spend months thinking about a single sentence in the context, because there s just a magic captured by that sentence.
0
SPEAKER_01
And how do you translate it just in the right way?
0
SPEAKER_01
Because those words can be,
0
SPEAKER_01
can be really powerful.
0
SPEAKER_01
There s a famous line, beauty will save the world from Dostoevsky.
0
SPEAKER_01
There s so many ways to translate that.
0
SPEAKER_01
And you re right, the language gives you the tools with which to tell the story, but it also leads your mind down certain trajectories and paths to where over time, as you think in that language, you become a different human being.
0
SPEAKER_00
Yes.
0
SPEAKER_00
Yeah, that s a fascinating reality, I think.
0
SPEAKER_00
I know people have explored that, but it s, I guess, rediscovered.
0
SPEAKER_01
Well, we don t.
0
SPEAKER_01
We live in our own little pockets.
0
SPEAKER_01
This is the sad thing, is I feel like, unfortunately, given time and getting older, I ll never know China, the Chinese world, because I don t truly know the language.
0
SPEAKER_01
Same with Japanese.
0
SPEAKER_01
I don t really know Japanese and Portuguese in Brazil, that whole South American continent.
0
SPEAKER_01
Yeah, I ll go to Brazil and Argentina, but will I truly understand the people if I don t understand the language?
0
SPEAKER_01
It s sad because...
0
SPEAKER_01
I wonder how many geniuses we re missing because so much of the scientific world, so much of the technical world is in English, and so much of it might be lost because we don t have the common language.
0
SPEAKER_00
I completely agree.
0
SPEAKER_00
I m very much in that vein of, there s a lot of genius out there that we miss.
0
SPEAKER_00
And it s sort of, we re sort of fortunate when it bubbles up into something that we can understand or process, there s a lot we miss.
0
SPEAKER_00
So that s why I tend to lean towards really loving democratization or things that empower people or, you know, very resistant to sort of authoritarian structures.
0
SPEAKER_00
Fundamentally for that reason, well, several reasons, but it just hurts us.
0
SPEAKER_00
We re worse off.
0
SPEAKER_01
So speaking of languages that empower you, so Python was the first language for me that I really enjoyed thinking in, as you said.
0
SPEAKER_01
So when did you first, do you remember when you first kind of connected with Python, maybe even fell in love with Python?
0
SPEAKER_00
It s a good question.
0
SPEAKER_00
It was a process that took about a year.
0
SPEAKER_00
I first encountered Python in 1997.
0
SPEAKER_00
I was a graduate student studying biomedical engineering at the Mayo Clinic, and I had previously, I d been involved in
0
SPEAKER_00
taking information from satellites.
0
SPEAKER_00
I was an electrical engineering student, used to taking information and trying to get something out of it, doing some data processing information out of it.
0
SPEAKER_00
And I d done that in MATLAB.
0
SPEAKER_00
I d done that in Perl.
0
SPEAKER_00
I d done that in scripting on a VMS.
0
SPEAKER_00
There s actually a VAX VMS system, and they had their own little scripting tools around Fortran.
0
SPEAKER_00
done a lot of that.
0
SPEAKER_00
And then as a graduate student, I was looking for something and encountered Python.
0
SPEAKER_00
And because Python had an array, it had two things that made me not filter it away.
0
SPEAKER_00
Because I was filtering a bunch of stuff.
0
SPEAKER_00
It was Yorick.
0
SPEAKER_00
I looked at Yorick.
0
SPEAKER_00
I looked at a few other languages that are out there at the time in 1997.
0
SPEAKER_00
But it had arrays.
0
SPEAKER_00
There s a library called Numeric that had just been written in 95, like not very
0
SPEAKER_00
not too much earlier, by an MIT alum, Jim Huganin, and I went back and read the mailing list to see the history of how it grew, and it was very interesting, it s fascinating to do that, actually, to see how this emergent cooperation, unstructured cooperation happens in the open source world that led to a lot of this collective programming, which is something maybe we might get into a little later about what that looks like.
0
SPEAKER_00
What gap did numeric fill?
0
SPEAKER_00
Merrick filled the gap of having an array object.
0
SPEAKER_00
There was no array object.
0
SPEAKER_00
There was a one-dimensional byte concept, but there was no n-dimensional, two, three, four-dimensional tensor, they call it now.
0
SPEAKER_00
I m still in the category that a tensor is another thing, and it s just an empty array, we should call it, but kind of lost that battle.
0
SPEAKER_00
There s many battles in this world, some of which we win, some we lose.
0
SPEAKER_00
That s exactly right.
0
SPEAKER_00
But it had no math to it.
0
SPEAKER_00
So numeric had math and a basic way to think in a race.
0
SPEAKER_00
So I was looking for that and it had complex numbers.
0
SPEAKER_00
A lot of programming languages and you can see
1
SPEAKER_00
it because, you know, if you re just a computer scientist, you think, oh, complex numbers are just two floats.
1
SPEAKER_00
So people can build that on.
1
SPEAKER_00
But in practice, a complex number is one of the significant algebras that helps connect a lot of physical and mathematical ideas, particularly to FFT for an electrical engineer.
1
SPEAKER_00
And it s a really important concept, and not having it means you have to develop it several times, and those times may not share an approach.
1
SPEAKER_00
One of the common things in programming, one of the things programming enables is abstractions.
1
SPEAKER_00
But when you have shared abstractions, it s even better.
1
SPEAKER_00
It sort of gets to the level of language of actually we all think of this the same way, which is both powerful and dangerous, right?
1
SPEAKER_00
Because...
1
SPEAKER_00
powerful in that we now can quickly make bigger and higher level things on top of those abstractions dangerous because it also limits us as to the things we maybe left behind in producing an abstraction, which is at the heart of programming today and actually building around the programming world.
1
SPEAKER_00
So I think it s a fascinating philosophical topic that I m an expert on.
1
SPEAKER_01
Yeah, that will continue for many years, I think.
1
SPEAKER_00
It will continue for many years.
1
SPEAKER_01
As we build more and more and more abstractions.
1
SPEAKER_00
Yes, I often think about, you know, we have a world that s built on these abstractions that, were they the only ones possible?
1
SPEAKER_00
Certainly not, but they led to, now it s very hard to do it differently.
1
SPEAKER_00
Like there s an inertia that s very hard to, you know, push out, push away from.
1
SPEAKER_00
That has implications for things like, you know, the Julia language, which you have heard of, I m sure.
1
SPEAKER_00
And I ve met the creators, and I like Julia.
1
SPEAKER_00
It s a really cool language.
1
SPEAKER_00
But they struggled to kind of, against just the tide of like this inertia of people using Python and
1
SPEAKER_00
And you know, there s strategies to approach that, but nonetheless, it s a phenomenon.
1
SPEAKER_00
And sometimes, so I love complex numbers and I love arrays, so I looked at Python.
1
SPEAKER_00
And then I had the experience, I did some stuff in Python, and I was just doing my PhD, so I was out, my focus was on,
1
SPEAKER_00
I was actually doing a combination of MRI and ultrasound and looking at a phenomenon called elastography, which is you push waves into the body and observe those waves, like you can actually measure them.
1
SPEAKER_00
And then you do mathematical inversion to see what the elasticity is.
1
SPEAKER_00
And so that s the problem I was solving, is how to do that with both ultrasound and MRI.
1
SPEAKER_00
I needed some tool to do that with.
1
SPEAKER_00
So I started using Python in 97.
1
SPEAKER_00
In 98, I went back, looked at what I d written, and realized I could still understand it.
1
SPEAKER_00
which is not the experience I d had when doing Perl in 95, right?
1
SPEAKER_00
I d done the same thing and then I looked back and I d forgotten what I was even saying.
1
SPEAKER_00
Now, you know, I m not saying, so I, that, that may, hey, this may work.
1
SPEAKER_00
I like this.
1
SPEAKER_00
This is something I can retain without becoming an expert per se.
1
SPEAKER_00
And so that led me to go, I m going to push more into this.
1
SPEAKER_00
And then that 98 was kind of the, when I started to fall in love with Python, I would say.
1
SPEAKER_01
A few peculiar things about Python, so maybe compare it to Perl, compare it to some of the other languages, so there s no braces.
1
SPEAKER_01
Yeah.
1
SPEAKER_01
So space is used, indentation, I should say, is used as part of our language.
1
SPEAKER_01
So did you, I mean, that s quite a leap.
1
SPEAKER_01
Were you comfortable with that leap, or were you just very open-minded?
1
SPEAKER_00
It s a good question.
1
SPEAKER_00
I was open-minded, so I was cognizant of the concern, and it definitely has,
1
SPEAKER_00
it has specific challenges.
1
SPEAKER_00
Cut and pasting, for example, your cut and pasting code, and if your editors aren t supportive of that, if you re putting it into a terminal, and particularly in the past when terminals didn t necessarily have the intelligence to manage it now.
1
SPEAKER_00
Now, iPython and Jupyter Notebooks handle it just fine, so there s really no problem, but in the past, it created some challenges, formatting challenges.
1
SPEAKER_00
Also, mixed tabs and spaces.
1
SPEAKER_00
If editors weren t clear on what was happening, you would have these issues.
1
SPEAKER_00
So there were really concrete reasons about it,
1
SPEAKER_00
that I heard and understood, I never really encountered a problem with it personally.
1
SPEAKER_00
It was occasional annoyances, but I really liked the fact that it didn t have all these extra characters.
1
SPEAKER_00
These extra characters didn t show up in my visual field when I was just trying to process understanding a snippet of code.
1
SPEAKER_01
Yeah, there s a cleanness to it.
1
SPEAKER_01
But I mean, the idea is supposed to be that Pearl also has a cleanness to it because of the minimalism of like how many characters it takes to express a certain thing.
1
SPEAKER_01
So it s very compact.
1
SPEAKER_01
But what you realize with that compactness comes
1
SPEAKER_01
There s a culture that prizes compactness, and so the code gets more and more compact and less and less readable to a point where it s like, to be a good programmer in Perl, you write code that s basically unreadable.
1
SPEAKER_01
There s a culture like that.
1
SPEAKER_00
Correct, and you re proud of it.
1
SPEAKER_00
Yeah, you re proud of it.
1
SPEAKER_00
Right, exactly.
1
SPEAKER_00
And it feels good.
1
SPEAKER_00
And it s really selective.
1
SPEAKER_00
It means you have to be an expert in Perl to understand it.
1
SPEAKER_00
Whereas Python allowed you not to have to be an expert.
1
SPEAKER_00
You didn t have to take all this brain energy.
1
SPEAKER_00
You could leverage what I say.
1
SPEAKER_00
You could leverage your English language center.
1
SPEAKER_00
which you re using all the time.
1
SPEAKER_00
I ve wondered about other languages, particularly non-Latin-based languages.
1
SPEAKER_00
You know, Latin-based languages with the characters are at least similar.
1
SPEAKER_00
I think people have an easier time, but I don t know what it s like to be a Japanese or a Chinese person trying to
1
SPEAKER_00
learn a different syntax.
1
SPEAKER_00
Like what would computer programming look like in that?
1
SPEAKER_00
I haven t looked at that at all, but it certainly doesn t, you know, leveraging your Chinese language center, I m not sure Python or any programming language does that.
1
SPEAKER_00
But that was a big deal.
1
SPEAKER_00
The fact that it was accessible, I could be a scientist.
1
SPEAKER_00
What I really liked is many programming languages really demand a lot of you, and you can get a lot, you know, you do a lot if you learn it.
1
SPEAKER_00
But Python enables you to do a lot without demanding a lot of you.
1
SPEAKER_00
And there s nuance to that statement, but it certainly is more accessible.
1
SPEAKER_00
So more people could actually, as a scientist, as somebody who, or an engineer, who was trying to solve another problem besides programming, I could still use this language and get things done and be happy about it.
1
SPEAKER_00
And I was also comfortable in C at that time.
1
SPEAKER_00
And MATLAB you did a little bit.
1
SPEAKER_00
And MATLAB I did a lot before that, exactly.
1
SPEAKER_00
So I was comfortable in C.
1
SPEAKER_00
Those three languages were really the tools I used during my studies and schooling.
1
SPEAKER_00
But to your point about language helping you think, one of the big things about MATLAB and APL before it, I don t know if you remember APL.
1
SPEAKER_00
Nope.
1
SPEAKER_00
APL is actually the predecessor of array-based programming, which I think is really an underappreciated
1
SPEAKER_00
If I talk to people who are just steeped in computer programming, computer science, like most of the people that Microsoft has hired in the past, for example, Microsoft as a company generally did not understand array-based programming.
1
SPEAKER_00
Like culturally, they didn t understand it.
1
SPEAKER_00
So they kept missing the boat, kept missing the understanding of what this was.
1
SPEAKER_00
They ve gotten better, but there s still a whole culture of folks that doesn t.
1
SPEAKER_00
Programming, that s systems programming or web programming or lists and maps.
1
SPEAKER_00
And what about an n-dimensional array?
1
SPEAKER_00
Oh, yeah, that s just an implementation detail.
1
SPEAKER_00
Well, you can think that, but then actually, if you have that as a construct, you actually think differently.
1
SPEAKER_00
APL was the first language to understand that, and it was in the 60s, right?
1
SPEAKER_00
The challenge of APL is APL had very dense, not only glyphs, like new characters, new glyphs, they even had a new keyboard, because to produce those glyphs, this was back in the early days of computing when, you know, the QWERTY keyboard maybe wasn t as established, like, well, we could have a new keyboard, no big deal.
1
SPEAKER_00
But it was a big deal, and it didn t catch on.
1
SPEAKER_00
And the language, APL, very much like Perl, is people would pride themselves on how much could they write the game of life in 30 characters of APL.
1
SPEAKER_00
APL has characters that mean summation, and they have adverbs.
1
SPEAKER_00
They have adjectives and these things called adverbs, which are like methods, like reduction.
1
SPEAKER_00
Reduction would be an adverb on an ad operator.
1
SPEAKER_00
But using these tools, you could construct, and then you start to think at that level.
1
SPEAKER_00
You think in n dimensions, is something I like to say, and you start to think differently about data at that point.
1
SPEAKER_00
It really helps.
1
SPEAKER_01
Yeah, I mean, outside of programming, if you really internalize linear algebra as a course,
1
SPEAKER_01
I mean, it philosophically allows you to think of the world differently.
1
SPEAKER_01
It s almost like liberating.
1
SPEAKER_01
You don t have to think about the individual numbers in the n-dimensional array.
1
SPEAKER_01
You can think of it as an object in itself, and all of a sudden this world can open up.
1
SPEAKER_01
You re saying MATLAB and APL were like the early seed.
1
SPEAKER_01
I don t know if many languages got that right ever.
1
SPEAKER_00
No.
1
SPEAKER_00
No.
1
SPEAKER_00
No, they didn t.
1
SPEAKER_00
Even still.
1
SPEAKER_00
Even still, I would say.
1
SPEAKER_00
I mean, NumPy is an inheritor of the traditions.
1
SPEAKER_00
I would say APLJ was another version.
1
SPEAKER_00
What it did is not have the glyphs, just have short characters, but still a Latin keyboard could type them.
1
SPEAKER_00
And then
1
SPEAKER_00
numeric inherited from that in terms of let s add arrays plus broadcasting plus methods, reduction, even some of the language like rank is a concept that was in Python and is still in Python for the number of dimensions, right?
1
SPEAKER_00
That s different than, say, the rank of a matrix, which people think of as well.
1
SPEAKER_00
So it came from that tradition.
1
SPEAKER_00
But NumPy
1
SPEAKER_00
is a very pragmatic, practical tool.
1
SPEAKER_00
NumPy inherited from Numeric, and we can get to where NumPy came from, which is the current array, at least current as of 2015, 2017.
1
SPEAKER_00
Now there s a ton of them over the past two or three years.
1
SPEAKER_00
We can get into that too.
1
SPEAKER_01
So if we just sort of linger on the early days of what was your favorite feature of Python?
1
SPEAKER_01
Do you remember like what?
1
SPEAKER_01
Yeah.
1
SPEAKER_01
It s so interesting.
1
SPEAKER_01
to linger on what really makes you connect with a language.
1
SPEAKER_00
I m not sure it s obvious to introspect that.
1
SPEAKER_00
No, it isn t.
1
SPEAKER_00
And I ve thought about that to some length.
1
SPEAKER_00
I think definitely the fact that I could read it later, that I could use it productively without becoming an expert.
1
SPEAKER_00
Like other languages I had to put more effort into.
1
SPEAKER_01
That s like an empirical observation, like you re not analyzing any one aspect of the language, it just seems time after time, you look back, it s somehow readable.
1
SPEAKER_00
It s somehow readable, then it was sort of, I could take executable English and translate it to Python more easily, like I didn t have to go, there was no translation layer.
1
SPEAKER_00
as an engineer or as a scientist, I could think about what I wanted to do, and then the syntax wasn t that far behind it.
1
SPEAKER_00
Yeah.
1
SPEAKER_00
Right?
1
SPEAKER_00
Now, there s some warts there still.
1
SPEAKER_00
It wasn t perfect.
1
SPEAKER_00
There s some areas where I m like, I d be better if this were different or if this were different.
1
SPEAKER_00
Some of those things got out of the language too.
1
SPEAKER_00
I was really grateful for some of the early pioneers in the Python ecosystem back because Python got written in 91.
1
SPEAKER_00
That s when the first version came out.
1
SPEAKER_00
But Guido was very open.
1
SPEAKER_00
to users.
1
SPEAKER_00
And one of the sets of users were people like Jim Huganin, and David Asher, and Paul Dubois, and Conrad Hinson.
1
SPEAKER_00
These were people that were on the mailing list, and they were just asking for things like, hey, we really should have complex numbers in this language.
1
SPEAKER_00
So let s, you know, there s a J, there s a one J, right?
1
SPEAKER_00
And the fact they went the engineering route of J is interesting.
1
SPEAKER_00
I don t think that s entirely favoring engineers.
1
SPEAKER_00
I think it s because I is so often used as the index of a for loop.
1
SPEAKER_00
I think that s actually why.
1
SPEAKER_00
Probably.
1
SPEAKER_00
Right.
1
SPEAKER_00
I mean, there s a pragmatic aspect.
1
SPEAKER_00
The fact that complex numbers were there.
1
SPEAKER_00
I love that.
1
SPEAKER_00
The fact that I could write ND array constructs and that reduction was there.
1
SPEAKER_00
Very simple to write summations and broadcasting was there.
1
SPEAKER_00
I could do addition of whole arrays.
1
SPEAKER_00
So that was cool.
1
SPEAKER_00
Those are some things I loved about it.
1
SPEAKER_01
I don t know what to start talking to you about, because you ve created so many incredible projects that basically changed the whole landscape of programming.
1
SPEAKER_01
But okay, let s start with, let s go chronologically with SciPy.
1
SPEAKER_01
You created SciPy over two decades ago now.
1
SPEAKER_00
Yes, I love to talk about sci-fi.
1
SPEAKER_00
Sci-fi was really my baby.
1
SPEAKER_01
What is it?
1
SPEAKER_00
What was its goal?
1
SPEAKER_00
What is its goal?
1
SPEAKER_00
How does it work?
1
SPEAKER_00
Yeah, fantastic.
1
SPEAKER_00
So sci-fi was effectively, here I m using Python to do stuff that I previously used MATLAB to use.
1
SPEAKER_00
And I was using Numeric, which is an array library that made a lot of it possible.
1
SPEAKER_00
But there s things that were missing.
1
SPEAKER_00
Like I didn t have an ordinary differential equation solver I could just call.
1
SPEAKER_00
I didn t have integration.
1
SPEAKER_00
I wanted to integrate this function.
1
SPEAKER_00
Okay, well, I don t have just a function I can call to do that.
1
SPEAKER_00
These are things I remember being critical things that I was missing.
1
SPEAKER_00
Optimization.
1
SPEAKER_00
I just want to pass a function to an optimizer and have it tell me what the optimum value is.
1
SPEAKER_00
Those are things like, well, why don t we just write a library that adds these tools
1
SPEAKER_00
And I started to post on the mailing list, and there had previously been, you know, people have discussed, I remember Conrad Hinson saying, wouldn t it be great if we had this optimizer library, or David Asch would say this stuff.
1
SPEAKER_00
And I m, you know, I m an ambitious, ambitious is the wrong word, an eager, and probably more time than sense.
1
SPEAKER_00
I was, you know, a poor graduate student.
1
SPEAKER_00
My wife thinks I m working on my PhD, and I am, but part of the PhD that I loved was the fact that it s exploratory.
1
SPEAKER_00
You re not just, you know,
1
SPEAKER_00
taking orders, fulfilling a list of things to do, you re trying to figure out what to do.
1
SPEAKER_00
And so I thought, well, you know, I m writing tools for my own use and a PhD, so I ll just start this project.
1
SPEAKER_00
And so in 99, 98 was when I first started to write libraries for Python.
1
SPEAKER_00
But really, when I fell in love with Python 98, I thought, oh, well, there s just a few things missing.
1
SPEAKER_00
Like, oh, I need a reader to read DICOM files.
1
SPEAKER_00
I was in medical imaging, and DICOM was a format that I want to be able to load that into Python.
1
SPEAKER_00
OK, how do I write a reader for that?
1
SPEAKER_00
So I wrote something called
1
SPEAKER_00
It was an IO package, right?
1
SPEAKER_00
And that was my very first extension module, which is C. So I wrote C code to extend Python so that in Python I could write things more easily.
1
SPEAKER_00
That combination kind of hooked me.
1
SPEAKER_00
It was the idea that I could, here s this powerful tool I can use as a scripting language and a high-level language to think about, but that I can extend easily.
1
SPEAKER_00
Easily in C. Easily for me because I knew enough C. And then Guido had written a link.
1
SPEAKER_00
I mean, the only, the hard part of extending Python was something called the way memory management works, and you have to do reference counting.
1
SPEAKER_00
And so there s a tracking of reference counting you have to do manually.
1
SPEAKER_00
And if you don t, you have memory leaks.
1
SPEAKER_00
And so that s hard.
1
SPEAKER_00
Plus then C, you know, it s much more, you have to put more effort into it.
1
SPEAKER_00
It s not just, I have to now think about pointers, and I have to think about stuff that,
1
SPEAKER_00
is different.
1
SPEAKER_00
You re like putting a new cartridge in your brain.
1
SPEAKER_00
Okay, I m thinking about MRI, now I m thinking about programming.
1
SPEAKER_00
And they re distinct modules you end up having to think about.
1
SPEAKER_00
So it s harder.
1
SPEAKER_00
When I was just in Python, I could just think about MRI and high-level writing.
1
SPEAKER_00
But I could do that, and I liked it.
1
SPEAKER_00
I found that to be enjoyable and fun.
1
SPEAKER_00
And so I ended up, oh, let me just add a bunch of stuff to Python to do integration.
1
SPEAKER_00
Well, and the cool thing is, is that, you know, the power of the internet, just looking around, and I found, oh, there s this NetLib, which has hundreds of 4chan routines that people have written in the 60s, and the 70s, and the 80s, and 4chan 77, fortunately.
1
SPEAKER_00
It wasn t 4chan 60s.
1
SPEAKER_00
It had been ported to 4chan 77.
1
SPEAKER_00
And Fortran 77 is actually a really great language.
1
SPEAKER_00
Fortran 90 probably is my favorite Fortran because it s got complex numbers, got arrays, and it s pretty high level.
1
SPEAKER_00
Now, the problem with it is you d never want to write a program in Fortran 90 or Fortran 77.
1
SPEAKER_00
But it s totally fine to write a subroutine in.
1
SPEAKER_00
And then Fortran kind of got a little off course when they tried to compete with C++.
1
SPEAKER_00
But at the time, I just want libraries that do something, like, oh, here s an order-inference equation.
1
SPEAKER_00
Here s integration.
1
SPEAKER_00
Here s Runge-Kutta integration.
1
SPEAKER_00
already done.
1
SPEAKER_00
I don t have to think about that algorithm.
1
SPEAKER_00
I mean, you could, but it s nice to have somebody who s already done one and tested it.
1
SPEAKER_00
And so I sort of started this journey in 98, really.
1
SPEAKER_00
If you look back at the mailing list, there s sort of this productive era of me
1
SPEAKER_00
writing an extension module to connect RungeCAD integration to Python, and making an ordinary additional equation solver, and then releasing that as a package.
1
SPEAKER_00
So we call it ODE pack, I think I called it, then quad pack, and then I just made these packages.
1
SPEAKER_00
Eventually that became multi-pack, because they were originally modular, you can install them separately, but a massive problem in Python was actually just getting your stuff installed.
1
SPEAKER_00
at the time, releasing software for me.
1
SPEAKER_00
Today, people think, what does that mean?
1
SPEAKER_00
Well, then it meant some poorly written web page, I had some bad web page up, and I put a tarball, just a gzip tarball of source code.
1
SPEAKER_00
That was the release.
1
SPEAKER_01
But, okay, can we just stay on that?
1
SPEAKER_00
Sure.
1
SPEAKER_01
that the community aspect of creating the package and sharing that, that s rare.
1
SPEAKER_01
That, to have, to both have the, at that time, so like the raw.
1
SPEAKER_01
Yeah, it was pretty early, yeah.
1
SPEAKER_01
Oh, well, not rare.
1
SPEAKER_01
Maybe you can correct me on this, but it seems like in the scientific community, so many people, you were basically solving the problems you needed to solve,
1
SPEAKER_01
to process the particular application, the data that you need, and to also have the mind that I m going to make this usable for others, that s... I would say I was inspired.
1
SPEAKER_00
I d been inspired by Linux, been inspired by Linus and him making his code available, and I was starting to use Linux at the time, and I went, this is cool.
1
SPEAKER_00
So I d kind of been previously primed that way, and generally I was into science because I liked the sharing notion, I liked the idea of,
1
SPEAKER_00
hey, let s, if collectively we build knowledge and share it, we can all be better off.
1
SPEAKER_01
Okay.
1
SPEAKER_00
So you were energized by that idea.
1
SPEAKER_00
So I was energized by that idea already.
1
SPEAKER_00
Yeah.
1
SPEAKER_00
Right.
1
SPEAKER_00
And I can t deny that.
1
SPEAKER_00
I was.
1
SPEAKER_00
I m sort of, I had this very, I liked that part of science, that part of sharing.
1
SPEAKER_00
And then all of a sudden, oh, wait, here s something, and here s something I could do.
2
SPEAKER_00
And then I slowly, over years, learned how to share better so that you could actually engage more people faster.
2
SPEAKER_00
One of the key things was actually giving people a binary they could install, right?
2
SPEAKER_00
So that it wasn t just, here s source code, good luck.
2
SPEAKER_00
Compile this, and then- It s compiled, ready to install.
2
SPEAKER_00
In fact, a lot of the journey from 98, even through 2012, when I started Anaconda, was about that.
2
SPEAKER_00
It s really the key as to why
2
SPEAKER_00
a scientist with dreams of doing MRI research, ended up starting a software company that installs software.
2
SPEAKER_01
I work with a few folks now that don t program, like on the creative side, the video side, the audio side, and because my whole life is run on scripts, I have to try to get them, I m having now the task of teaching them how to do Python enough to run the scripts.
2
SPEAKER_01
And so I ve been actually facing this, whether it s on the condo, some,
2
SPEAKER_01
with the task of how do I minimally explain, basically to my mom, how to write a Python script.
2
SPEAKER_01
And it s an interesting challenge.
2
SPEAKER_01
It s a to-do item for me to figure out what is the minimal amount of information I have to teach, what are the tools you use, that when you enjoy it, to your effect of it.
2
SPEAKER_00
And they re related.
2
SPEAKER_00
Those are two related questions.
2
SPEAKER_01
And then the debugging, like the iterative process of running the script to figure out what the error is, maybe even for some people to do the fix yourself.
2
SPEAKER_01
So do you compile it?
2
SPEAKER_01
How do you distribute that code to them?
2
SPEAKER_01
And it s interesting because I think
2
SPEAKER_01
it s exactly what you re talking about.
2
SPEAKER_01
If you increase the circle of empathy, the circle of people that are able to use your programs, you increase its effectiveness and its power.
2
SPEAKER_01
And so you have to think, can I write scripts?
2
SPEAKER_01
Can I write programs that can be used by biomedical engineers, by all kinds of people?
2
SPEAKER_01
people that don t know programming, and actually maybe plant a seed, have them catch the bug of programming so that they start on their journey.
2
SPEAKER_01
And that s a huge responsibility, and ultimately has to do with the Amazon one-click buy, like how frictionless can you make the early steps?
2
SPEAKER_00
Frictionless is actually really key.
2
SPEAKER_00
To go in any community is, any friction point, you re gonna lose some people, right?
2
SPEAKER_00
Now, sometimes you may wanna,
2
SPEAKER_00
intentionally do that.
2
SPEAKER_00
If you re early enough on, you need a lot of help.
2
SPEAKER_00
You need people who have the skills.
2
SPEAKER_00
Actually, it s helpful.
2
SPEAKER_00
You don t necessarily have too many users as opposed to contributors if you re early on.
2
SPEAKER_00
Anyway, SciFi started in 98, but it really emerged as this collection of modules that I was just putting on the net, people were downloading.
2
SPEAKER_00
And I think I got 100 users by the end of that year.
2
SPEAKER_00
But the fact that I got 100 users and more than that, people started to email me with fixes.
2
SPEAKER_00
And that was actually intoxicating.
2
SPEAKER_00
That was the, you know, here I m writing papers and I m giving conferences and I get people to say hello, but yeah, good job.
2
SPEAKER_00
But mostly it was, you re viewed with, it s competitive, right?
2
SPEAKER_00
You publish a paper and people are like, oh, it wasn t my paper, you know?
2
SPEAKER_00
I was starting to see that sense of academic life where it was so much... I thought there was a cooperative effort, but it sounds like we re here just to...
2
SPEAKER_00
one up each other.
2
SPEAKER_00
And that s not true across the board, but a lot of that s there.
2
SPEAKER_00
But here in this world, I was getting responses from people all over the world.
2
SPEAKER_00
I remember Piaro Peterson in Estonia was one of the first people, and he sent me back this makefile.
2
SPEAKER_00
Because the first thing he did was, yeah, your build thing stinks, and here s a better makefile.
2
SPEAKER_00
Now, it was a complex makefile.
2
SPEAKER_00
I never understood that makefile, actually.
2
SPEAKER_00
It worked and it did a lot more.
2
SPEAKER_00
And so I said, thanks, this is cool.
2
SPEAKER_00
And that was my first kind of engagement with community.
2
SPEAKER_00
development, but you know, the process was he sent me a patch file.
2
SPEAKER_00
I had to upload a new tarball and I just found, I really love that.
2
SPEAKER_00
And the, and the style back then was, here s a mailing list is very, it wasn t as there s certainly weren t the tools that are available today.
2
SPEAKER_00
It was very early on, but I really started to, that s the whole year.
2
SPEAKER_00
I, I think I did about seven packages that year.
2
SPEAKER_00
Right.
2
SPEAKER_00
And then by the end of the year, I collected them into a thing called multi-pack.
2
SPEAKER_00
So 99, there was this thing called multi-pack and that s when a high school student, no, he s a high school student at the time, a guy named Robert Kern.
2
SPEAKER_00
took that package and made a Windows installer, right?
2
SPEAKER_00
And then, of course, a massive increase of usage.
2
SPEAKER_00
So, by the way, most of this development was under Linux.
2
SPEAKER_00
Yes, yes, it was on Linux.
2
SPEAKER_00
I was a Linux developer doing it on a Unix box.
2
SPEAKER_00
I mean, at the time, I was actually getting into, I had a new hard drive, did some kernel programming to make the hard drive work.
2
SPEAKER_00
I mean, not programming, but modification to the kernel so I could actually get a hard drive working.
2
SPEAKER_00
I love that aspect of it.
2
SPEAKER_00
I was also, at school, I was building a cluster.
2
SPEAKER_00
I took Mac computers, and you put Yellow Dog Linux on them.
2
SPEAKER_00
At the Mayo Clinic, all these Macs that were older, they were just getting rid of, and so I kind of got permission to go grab them together.
2
SPEAKER_00
I put about 24 of them together in a cluster in a cabinet.
2
SPEAKER_00
and put Yellow Dog Linux on them all, and I wrote a C++ program to do MRI simulation.
2
SPEAKER_00
That was what I was doing at the same time for my day job, so to speak.
2
SPEAKER_00
So I was loving the whole process.
2
SPEAKER_00
At the same time, I was, oh, I need an ordinary differential equation.
2
SPEAKER_00
That s why ordinary differential equations were key, was because that s the heart of a block equation for simulating MRI, is an ODE solver.
2
SPEAKER_00
And so that s, but I actually did that
2
SPEAKER_00
It doesn t happen at the same time.
2
SPEAKER_00
That s why what you re working on and what you re interested in, they re coinciding.
2
SPEAKER_00
I was definitely scratching my own itch in terms of building stuff, which helped in the sense that I was using it for me, so at least I had one user.
2
SPEAKER_00
I had one person who was like, well, no, this is better.
2
SPEAKER_00
I like this interface better.
2
SPEAKER_00
I had the experience of MATLAB to guide some of what those APIs might look like.
2
SPEAKER_00
But you re just doing yourself.
2
SPEAKER_00
You re building all this stuff.
2
SPEAKER_00
But with the Windows Installer, it was the first time I realized, oh, yeah, the binary installer really helps people.
2
SPEAKER_00
And so that led to spending more time on that side of things.
2
SPEAKER_00
So around 2000, so I graduated my PhD in 2000, end of year, end of 2000.
2
SPEAKER_00
99 doing a lot of work there, 98 doing a lot of work there, 99 kind of spending more time on my PhD, helping people use the tools, thinking about what do I want to go from here.
2
SPEAKER_00
There was a company, there was a guy actually, Eric Jones and Travis Vought, they were two friends who founded a company called Enthought.
2
SPEAKER_00
It s here in Austin, still here.
2
SPEAKER_00
And they, Eric contacted me at the time when I was a graduate student still, and he said, hey, why don t you come down, we want to build a company
2
SPEAKER_00
You know, we want, we re thinking of, you know, a scientific company and we want to take what you re doing and kind of add it to some stuff that he d done.
2
SPEAKER_00
He d, he d written some tools and then Piero Peterson had done F2Pi.
2
SPEAKER_00
Let s come together and build, pull this all together and call it SciPy.
2
SPEAKER_00
So that s the origin of the SciPy brand.
2
SPEAKER_00
It came from, you know, Multipack and a whole bunch of modules I d written plus a few things from some other folks and then pull together in a single installer.
2
SPEAKER_00
SciPy was really a distribution of Python masquerading as a library.
2
SPEAKER_01
How did you think about SciPy in context of Python, in context of Numeric?
2
SPEAKER_01
Like what?
2
SPEAKER_00
So we saw SciPy as a way to make an R&D environment for Python, like use Python, dependent on Numeric.
2
SPEAKER_00
So Numeric was the array library we depended on.
2
SPEAKER_00
And then from there, extend it with a bunch of modules that allowed for, and at the time, the original vision of SciPy was to have plotting, was to have, you know, REPL environment, and kind of a whole, really a whole data environment.
2
SPEAKER_00
that you could then install and get going with.
2
SPEAKER_00
And that was kind of the thinking.
2
SPEAKER_00
It didn t really evolve that way, right?
2
SPEAKER_00
It sort of had a, for one, it s really hard to do massive scale projects with open source collectives.
2
SPEAKER_00
Actually, there s sort of an intrinsic cooperation limit as to which, you know, too many cooks in the kitchen, you know, you can do amazing infrastructure work.
2
SPEAKER_00
When it comes down to bringing it all together into a single deliverable,
2
SPEAKER_00
that actually requires a little more product management that doesn t really emerge from the same dynamic.
2
SPEAKER_00
So it struggled.
2
SPEAKER_00
It struggled to get almost too many voices.
2
SPEAKER_00
It s hard to have everybody agree.
2
SPEAKER_00
Consensus doesn t really work at that scale.
2
SPEAKER_00
You end up with politics.
2
SPEAKER_00
You end up with the same kind of things that s happened in large organizations trying to decide on what to do together.
2
SPEAKER_00
So consensus building was still challenging at scale as more people came in.
2
SPEAKER_00
Right?
2
SPEAKER_00
Early on, it s fine, because there s nobody there.
2
SPEAKER_00
And so it works.
2
SPEAKER_00
But then as you get more successful and more people use it, all of a sudden, oh, there s this scale at which this doesn t work anymore.
2
SPEAKER_00
And we have to come up with different approaches.
2
SPEAKER_00
So Sidebyte came out officially in 2001.
2
SPEAKER_00
It was the first release.
2
SPEAKER_00
Most of the time, I remember the days of getting that release ready.
2
SPEAKER_00
It was a Windows installer.
2
SPEAKER_00
And there were bugs on how the Windows compiler handled complex numbers.
2
SPEAKER_00
And you were chasing segmentation faults.
2
SPEAKER_00
It s a lot of work.
2
SPEAKER_00
Everett had nothing to do with my area of study.
2
SPEAKER_00
And at the same time, I had just gotten an offer.
2
SPEAKER_00
So he wondered if I wanted to come down and help him start that company with his friend.
2
SPEAKER_00
And at the time, I was like, oh, intrigued.
2
SPEAKER_00
But I was squaring a path, an academic path.
2
SPEAKER_00
And I had just got an offer to go and teach at my alma mater.
2
SPEAKER_00
So I took that tenure track position.
2
SPEAKER_00
And then I started working on Sci-Pi as a professor, too.
2
SPEAKER_00
So that s, I left the Mayo Clinic, graduated, wrote my thesis using SciPy, wrote, you know, there s images that were created.
2
SPEAKER_00
Now the plotting tool I used was something from Yorick, actually.
2
SPEAKER_00
It was a plotting, a PLT, kind of a plotting language that I used.
2
SPEAKER_00
Yorick is a programming language?
2
SPEAKER_00
It was a programming language.
2
SPEAKER_00
It had a plotting tool, Dyslin.
2
SPEAKER_00
It had integration to Dyslin.
2
SPEAKER_00
I ended up using Dyslin plus some of the plotting from Yorick, linked to from Python.
2
SPEAKER_00
Anyway, it was a,
2
SPEAKER_00
People don t plot that way now, but this was before, and SciPy was trying to add plotting, right?
2
SPEAKER_00
It didn t have much success.
2
SPEAKER_00
Really, the success of plotting came from John Hunter, who had a similar experience to my experience, my kind of maverick experience as a person just trying to get stuff done and kind of having more time than money, maybe, right?
2
SPEAKER_01
And John Hunter created what?
2
SPEAKER_00
Matplotlib.
2
SPEAKER_01
He s the creator of Matplotlib?
2
SPEAKER_00
Yeah, so John Hunter was, you know, he wasn t a student at the time, but he was working in quant field, and he said, we need better plotting.
2
SPEAKER_00
So he just went out and said, cool, I ll make a new project, and we ll call it Matplotlib.
2
SPEAKER_00
And he released it in 2001, about the same time that SciPy came out.
2
SPEAKER_00
And it was separate library, separate install, used numeric, SciPy used numeric.
2
SPEAKER_00
And so SciPy, you know, in 2001, we released SciPy.
2
SPEAKER_00
And then Enthought created a conference called SciPy, which brought people together to talk about the space.
2
SPEAKER_00
And that conference is still ongoing.
2
SPEAKER_00
It s one of the favorite conferences of a lot of people.
2
SPEAKER_00
It s changed over the years, but early on it was a collection of 50 people who care about, scientists mostly, practicing scientists who want to care about coding and doing it well and not using MATLAB.
2
SPEAKER_00
I remember being driven by, I like MATLAB, but I didn t like the fact that, so I m not opposed to proprietary software.
2
SPEAKER_00
I m actually not an open source zealot.
2
SPEAKER_00
I love open source for what it brings, but I also see the role for proprietary software.
2
SPEAKER_00
But what I didn t like was the fact that I would develop code
2
SPEAKER_00
and publish it, and then effectively telling somebody here, to run my code, you have to have this proprietary software.
2
SPEAKER_01
Right, and there s also culture around MATLAB, as much, because I ve talked to a few folks, MathWorks creates MATLAB, I mean, there s just a culture, they try really hard, but it just is this corporate IBM style culture that s like,
2
SPEAKER_01
or whatever, I don t wanna say negative things about IBM or whatever, but there s a... No, it s really that connection.
2
SPEAKER_00
It s something I m in the middle of right now is the business of open source and how do you connect the ethos of cooperative development with the necessity of creating profits, right?
2
SPEAKER_00
And like right now today, I m still in the middle of that.
2
SPEAKER_00
That s actually the early days of me exploring this question.
2
SPEAKER_00
Because I was writing sci-fi.
2
SPEAKER_00
I mean, as an aside, I also had... So I had three kids at the time.
2
SPEAKER_00
I have six kids now.
2
SPEAKER_00
I got married early, wanted a family.
2
SPEAKER_00
I had three kids, and I remember reading... I read Richard Stallman s post, and I was a fan of Stallman.
2
SPEAKER_00
I would read his work.
2
SPEAKER_00
I liked his collective ideas he would have.
2
SPEAKER_00
Certainly the ideas on IP law.
2
SPEAKER_00
I read a lot of his stuff.
2
SPEAKER_00
But then he said, you know,
2
SPEAKER_00
I m like, well, how do I make money with this?
2
SPEAKER_00
How do I make a living?
2
SPEAKER_00
How do I pay for my kids?
2
SPEAKER_00
All this stuff was in my mind, young graduate student making no money thinking I gotta get a job.
2
SPEAKER_00
And he said, well, you know, I think just be like me and don t have kids, right?
2
SPEAKER_00
That s just don t... That s his take on it.
2
SPEAKER_00
That was what he said in that moment, right?
2
SPEAKER_00
That s the thing I read and I went, okay, this is a train I can t get on.
2
SPEAKER_00
Yeah.
2
SPEAKER_01
There has to be a way to preserve the culture of open source and still be able to make sufficient money to feed you.
2
SPEAKER_00
Yes, exactly.
2
SPEAKER_00
There s got to be.
2
SPEAKER_00
Well, so that actually led me to a study of economics.
2
SPEAKER_00
Because at the time, I was ignorant, and I really was.
2
SPEAKER_00
I m actually, I m embarrassed for educational system that they could let me, and I was valedictorian in my high school class, and I did super well in college.
2
SPEAKER_00
Academically, I did great, but the fact that I could do that and then be clueless about this key part of life, it led me to go, there s a problem.
2
SPEAKER_00
I should have learned this in fifth grade.
2
SPEAKER_00
I should have learned this in eighth grade.
2
SPEAKER_00
Everybody should come out with a basic knowledge of economics.
2
SPEAKER_01
You re an interesting example because you ve created tools that change the lives of probably millions of people.
2
SPEAKER_01
And the fact that you don t understand at the time of the creation of those tools, the basics economics of how to build up a giant system is a problem.
2
SPEAKER_00
Yeah, it s a problem.
2
SPEAKER_00
And so during my PhD at the same time, this is back in 98, 99, at the same time, I was in a library, I was reading books on capitalism, I was reading books on Marxism, I was reading books on
2
SPEAKER_00
you know, what is this thing?
2
SPEAKER_00
What does it mean?
2
SPEAKER_00
And I encountered a, basically what I, I encountered a set of writings from people that said they were the inheritors of Adam Smith, but Adam Smith for the first time, right?
2
SPEAKER_00
Which is the wealth of nations and kind of this notion of emergent societies and realized, oh, there s this whole world out here of people.
2
SPEAKER_00
And the challenge of economics is also political.
2
SPEAKER_00
Like, because economics, you know, people,
2
SPEAKER_00
different parties running for office, they ll, they want their economic friends.
2
SPEAKER_00
They want their economists to back them up, right.
2
SPEAKER_00
Or to, to be there.
2
SPEAKER_00
to be their magicians, like the magicians in Pharaoh s court, right?
2
SPEAKER_00
The people that are gonna say, hey, this is, you should listen to me because I ve got the expert who says this.
2
SPEAKER_00
And so it gets really muddled, right?
2
SPEAKER_00
But I was looking at it as a scientist going, what is this space?
2
SPEAKER_00
What does this mean?
2
SPEAKER_00
How does Paris get fed?
2
SPEAKER_00
How does, what is money?
2
SPEAKER_00
How does it work?
2
SPEAKER_00
And I found a lot of writings that I really loved.
2
SPEAKER_00
I found some things that I really loved and I learned from that.
2
SPEAKER_00
It was writings from people like Von Mises.
2
SPEAKER_00
He wrote a paper in 1920 that still should be read more than it is.
2
SPEAKER_00
It was the economic calculation problem of the socialist commonwealth.
2
SPEAKER_00
It was basically in response to the Bolshevik Revolution in 1917.
2
SPEAKER_00
And his basic argument was, it s not gonna work to not have private property.
2
SPEAKER_00
You re not gonna be able to come up with prices.
2
SPEAKER_00
The bureaucrats aren t gonna be able to determine how to allocate resources without a price system.
2
SPEAKER_00
And a price system emerges from people making trades.
2
SPEAKER_00
And they can only make trades if they have authority over the thing they re trading.
2
SPEAKER_00
And that creates information flow that you just don t have if you try to top down it.
2
SPEAKER_00
And it s like, huh, that s a really good point.
2
SPEAKER_01
Yeah, prices have a signal that s used, and it s important to have that signal when you re trying to build a community of productive people like you would in the software engineering space.
2
SPEAKER_00
Yeah, the prices are actually an important signaling mechanism, and that money is just a bartering tool.
2
SPEAKER_00
So this is the first time I ve encountered any of this concept, and the fact that, oh, this is actually,
2
SPEAKER_00
really critical, like it s so critical to our prosperity and that we re dangerously not learning about this, not teaching our children about this, you know.
2
SPEAKER_00
So you had the three kids, you had to make some hard decisions.
2
SPEAKER_00
I had to make some money, right, I had to figure it out.
2
SPEAKER_00
But I didn t really care, I mean, I ve never been driven by money, just need it, in fact.
2
SPEAKER_00
Yeah, right, to eat.
2
SPEAKER_00
So how did that resolve itself in terms of side by?
2
SPEAKER_00
So I would say it didn t really resolve itself.
2
SPEAKER_00
It sort of started a journey that I m continuing on.
2
SPEAKER_00
I m still on, I would say.
2
SPEAKER_00
I don t think it resolved itself.
2
SPEAKER_00
But I will say I went in eyes wide open.
2
SPEAKER_00
I knew that there were problems with giving stuff away and creating the market externalities.
2
SPEAKER_00
The fact that, yeah, people might use it, and I might not get paid for it, and I ll have to figure something else out to get paid.
2
SPEAKER_00
At least I can say I m not bitter that
2
SPEAKER_00
A lot of people have used stuff that I ve written and I haven t necessarily benefited economically from it.
2
SPEAKER_00
I ve heard other people be bitter about that when they write or they talk, like, oh, I should have gotten more value out of this.
2
SPEAKER_00
And I m also, I want to create systems that let people like me who might have these desires to do things, let them benefit.
2
SPEAKER_00
So it actually creates more of the same.
2
SPEAKER_01
not to turn on your bitterness mojo, but there s some aspect, I wish there was mechanisms for me to reward whoever created Sci-Pi and NumPy, because it brought so much joy to my life.
2
SPEAKER_00
I appreciate that.
2
SPEAKER_00
You know what I mean?
2
SPEAKER_00
The tip jar notion was there, I appreciate that.
2
SPEAKER_00
But there should be a very frictionless mechanism.
2
SPEAKER_00
There should be a frictionless mechanism, I totally agree.
2
SPEAKER_00
I would love to talk about some of the ideas I have, because I actually came across, I think I ve come up with some interesting notions that could work, but they ll require,
2
SPEAKER_00
You know, anything that will work takes time to emerge, right?
2
SPEAKER_00
Like things don t just turn overnight.
2
SPEAKER_00
That s definitely one thing I ve also understood and learned is any fixes.
2
SPEAKER_00
That s why it s kind of funny.
2
SPEAKER_00
We often give credit to
3
SPEAKER_00
to, you know, oh, this president gets elected, and oh, look how great things have done.
3
SPEAKER_00
And I saw that when I had a transition in a condo when a new CEO came in, right?
3
SPEAKER_00
And it s like the success that s happening, there s an inertia there, right?
3
SPEAKER_01
And sometimes the decision you made like 10 years before is the reason why the success you see.
3
SPEAKER_01
Right, exactly.
3
SPEAKER_00
So we just went around taking credit for stuff.
3
SPEAKER_01
The credit assignment has a delay to it that makes the credit assignment basically wrong more than right.
3
SPEAKER_00
Wrong more than right, exactly.
3
SPEAKER_00
And so I m like, oh, this is... That s the stuff I would read a ton about early on.
3
SPEAKER_00
So I don t... I feel like I m with you.
3
SPEAKER_00
I want the same thing.
3
SPEAKER_00
I want to be able to... And honestly, not for personally, I ve been happy.
3
SPEAKER_00
I ve been happy.
3
SPEAKER_00
I feel like I don t have any... I mean, we ve been done reasonably okay, but I ve had to pursue it.
3
SPEAKER_00
That s really what started my
3
SPEAKER_00
trajectory from academia, is reading that stuff led me to say, oh, entrepreneurship matters.
3
SPEAKER_00
I love software, but we need more entrepreneurs, and I want to understand that better.
3
SPEAKER_00
So once I kind of had that virus infect my brain,
3
SPEAKER_00
Even though I was on a trajectory to go to a tenure track position at a university, and I was there for six years, I was kind of already out the door when I started.
3
SPEAKER_00
And we can get into that, but.
3
SPEAKER_01
Can I just ask a quick question on, is there some design principles that were in your mind around sci-fi?
3
SPEAKER_01
Like, was there some key ideas that were just like sticking to you that this is the fundamental ideas?
3
SPEAKER_00
Yeah, I would say so.
3
SPEAKER_00
I would think it s basically accessibility to scientists.
3
SPEAKER_00
Give scientists and engineers tools that they don t have to think a lot about programming.
3
SPEAKER_00
So give them really good building blocks.
3
SPEAKER_00
Give them functions that they want to call and just the right length of spelling.
3
SPEAKER_00
There s one tradition in programming where it s like, make very, very long names.
3
SPEAKER_00
And you can see it in some programming languages where the names take half the screen.
3
SPEAKER_00
In the 4chan world, characters had to be six letters early on, right?
3
SPEAKER_00
And that s way too much, too little, but I was like, I liked to have names that were informative, but short.
3
SPEAKER_01
So even though Python, well this is a different conversation, but documentation is doing some work there.
3
SPEAKER_01
So when you look at great scientific libraries and functions, there s,
3
SPEAKER_01
there s a richness of documentation that helps you get into the details.
3
SPEAKER_01
The first glance at a function gives you the intuition of all it needs to do by looking at the headers and so on.
3
SPEAKER_01
But to get the depths of all the complexities involved, all the options involved, documentation does some of the work.
3
SPEAKER_00
Documentation is essential.
3
SPEAKER_00
Yeah.
3
SPEAKER_00
So that was actually a, so we thought about several things.
3
SPEAKER_00
One is we wanted plotting.
3
SPEAKER_00
We wanted interactive environment.
3
SPEAKER_00
We wanted good documentation.
3
SPEAKER_00
These are things we knew we wanted.
3
SPEAKER_00
The reality is those took about 10 years to evolve.
3
SPEAKER_00
Right, given the fact that we didn t have a big budget, it was all volunteer labor, it was sort of... When Enthought got created, and they started to try to find projects, people would pay for pieces, and they were able to fund some of it.
3
SPEAKER_00
not nearly enough to keep up with what was necessary.
3
SPEAKER_00
And no criticism, just simply the reality.
3
SPEAKER_00
I mean, it s hard to start a business and then do consulting and then also promote an open source project that s still fairly new.
3
SPEAKER_00
Saipo is fairly niche.
3
SPEAKER_00
We stayed connected all while I was a student, sorry, a professor.
3
SPEAKER_00
I went to BYU and started to teach electrical engineering.
3
SPEAKER_00
all the applied math courses.
3
SPEAKER_00
I loved teaching signal processing, probability theory, electromagnetism.
3
SPEAKER_00
I was, if you look at rate my professor, which my kids love to do, I wasn t, I got some bad reviews because people.
3
SPEAKER_00
What was the criticism?
3
SPEAKER_00
I would speak too high of a level.
3
SPEAKER_00
Like I definitely had a calibration problem coming out of graduate work where I hate to be condescending to people.
3
SPEAKER_00
Like I really have a ton of respect for people fundamentally.
3
SPEAKER_00
Like my fundamental thing is I respect people.
3
SPEAKER_00
Sometimes that can lead to a, I was thinking they were, they had more knowledge than they did.
3
SPEAKER_00
And so I would just speak at a very high level, assume they got it.
3
SPEAKER_01
But they need to rise to the standard that you set.
3
SPEAKER_01
I mean, that s one of the, some of the greatest teachers do that.
3
SPEAKER_00
And I agree.
3
SPEAKER_00
And that was kind of what was inspiring me.
3
SPEAKER_00
But you also have to,
3
SPEAKER_00
I cannot say I was articulate as some of the greatest teachers, right?
3
SPEAKER_00
I was, you know, like one classic example, when I first taught at BYU, my very first class, it was overheads, transparencies, overheads, before projectors were really that common.
3
SPEAKER_00
So transparencies, I m writing my notes out, I go in, room s half dark, I m just blaring through these transparencies, here it is, here it is, here it is.
3
SPEAKER_00
And I gave a quiz after two weeks.
3
SPEAKER_00
Nowhere knew anything.
3
SPEAKER_00
Nothing I had gotten anywhere.
3
SPEAKER_00
And I realized, okay, this is not working.
3
SPEAKER_00
So I put away the transparencies and I turned around and just started using the chalkboard.
3
SPEAKER_00
And what it did is it slowed me down.
3
SPEAKER_00
The chalkboard just slowed me down and gave people time to process and to think, and then that made me focus.
3
SPEAKER_00
My writing wasn t great on the chalkboard, but I really loved that part of the teaching.
3
SPEAKER_00
So that entered SciPy s world in terms of we always understood that there s a didactic aspect of SciPy.
3
SPEAKER_00
How do you take the knowledge and then produce it?
3
SPEAKER_00
The challenge we had was the scope.
3
SPEAKER_00
Ultimately, SciPy was everything, right?
3
SPEAKER_00
And so 2001, when it first came out, people were starting to use it.
3
SPEAKER_00
No, this is cool.
3
SPEAKER_00
This is a tool we actually use.
3
SPEAKER_00
At the same time, 2001 timeframe, there was a little bit of like the Hubble Space Telescope.
3
SPEAKER_00
The folks at Hubble had started to say, hey, Python, we re going to use Python for processing images from Hubble.
3
SPEAKER_00
And so Perry Greenfield was a good friend and running that program.
3
SPEAKER_00
And he had called me before I left BYU and said, you know,
3
SPEAKER_00
We want to do this, but Numeric actually has some challenges in terms of the array doesn t have enough types.
3
SPEAKER_00
We need more operations.
3
SPEAKER_00
Broadcast needs to be a little more settled.
3
SPEAKER_00
They wanted record arrays.
3
SPEAKER_00
Record arrays are like a data frame, but a little bit different.
3
SPEAKER_00
But they wanted more structured data.
3
SPEAKER_00
He had called me even early on then and he said, you know, would you want to work on something to make this work?
3
SPEAKER_00
I said, yeah, I m interested, but I m going here and we ll see if I have time.
3
SPEAKER_00
So in the meantime, while I was teaching and SciPy was emerging and I had a student, I was constantly while I was teaching trying to figure a way to fund this stuff.
3
SPEAKER_00
So I had a graduate student, my only graduate student, a Chinese fellow, Liu Hongze is his name, great guy.
3
SPEAKER_00
He wrote a bunch of stuff for iterative linear algebra, like got into writing some of the iterative linear algebras, tools that are currently there in SciPy, and they ve gotten better since, but this is in 2005.
3
SPEAKER_00
Kept working on SciPy, but Perry had started working on a replacement to Numeric called Numerae.
3
SPEAKER_00
And in 2004, a package called MDImage, it was an image processing library that was written for Numerae.
3
SPEAKER_00
And it had in it a morphology tool.
3
SPEAKER_00
I don t know if you know what morphology is.
3
SPEAKER_00
It s open, dilations, you know, there was sort of this, as a medical imaging student, I knew what it was because it was used in segmentation a lot.
3
SPEAKER_00
And in fact, I had wanted to do something like that in Python, in SciPy, but just had never gotten around to it.
3
SPEAKER_00
So when it came out,
3
SPEAKER_00
that it worked only on numerae, and scipy needed numeric, and so we effectively had the beginning of this...
3
SPEAKER_00
split.
3
SPEAKER_00
And numeric and numeric didn t share data.
3
SPEAKER_00
They were just two.
3
SPEAKER_00
So you could have a gigabyte of numeric data and a gigabyte of numeric data and they wouldn t share it.
3
SPEAKER_00
And so you had these scientific libraries written on top.
3
SPEAKER_00
I got really bugged by that.
3
SPEAKER_00
I got really like, oh man, this is not good.
3
SPEAKER_00
We re not cooperating now.
3
SPEAKER_00
We re sort of redoing each other s work and we re just this young community.
3
SPEAKER_00
So that s what led me
3
SPEAKER_00
Even though I knew it was risky, because I was on a tenure track position, 2004 I got reviewed, they said, hey, things are going okay, you re doing well, paper s coming out, but you re kind of spending a lot of time on this open source stuff, maybe do a little less of that, and a little more of the paper writing and grant writing, which was naive, but it was definitely the thinking.
3
SPEAKER_00
It still goes on.
3
SPEAKER_01
Still goes on.
3
SPEAKER_01
You re basically creating a thing which enables science in the 21st century.
3
SPEAKER_01
Right.
3
SPEAKER_01
uh... maybe don t emphasize that so much and you for your tenure
3
SPEAKER_00
It illustrates some of the challenges.
3
SPEAKER_00
It does.
3
SPEAKER_00
People mean well, but we ve gotten broken in a bunch of ways.
3
SPEAKER_01
Certain things, programming, understanding the role of software engineering and programming in society is a little bit lacking.
3
SPEAKER_00
Exactly.
3
SPEAKER_00
Now, I was in an electrical engineering position.
3
SPEAKER_00
Right.
3
SPEAKER_00
That s even worse.
3
SPEAKER_01
There.
3
SPEAKER_00
Yeah.
3
SPEAKER_00
They were very focused.
3
SPEAKER_00
And so, good people.
3
SPEAKER_00
And I had a great time.
3
SPEAKER_00
I loved my time.
3
SPEAKER_00
I loved my teaching.
3
SPEAKER_00
I loved all the things I did there.
3
SPEAKER_00
The problem was this split was happening in this community that I loved.
3
SPEAKER_00
I saw people and I went, oh my gosh, this is gonna be, this is not great.
3
SPEAKER_00
And so I happened, you know, fate, I had a class I had signed up for.
3
SPEAKER_00
I was trying to build an MRI system.
3
SPEAKER_00
So I had a kind of a radio, instead of a radio, a digital radio class, a digital MRI class.
3
SPEAKER_00
And I had people sign up, two people signed up, then they dropped.
3
SPEAKER_00
And so I had nobody in this class.
3
SPEAKER_00
And I didn t have any other courses to teach, and I thought, oh, I ve got some time, and I ll just write a merger of numeric and number A. I ll basically take the numeric code base, add the features number A was adding,
3
SPEAKER_00
and then kind of come up with a single array library that everybody can use.
3
SPEAKER_00
So that s where NumPy came from, was my thinking, hey, I can do this, and who else is going to?
3
SPEAKER_00
Because at that point, I d been around the community long enough, and I d written enough C code, I knew the structures.
3
SPEAKER_00
In fact, my first contribution to Numeric had been writing the CAPI documentation that went in the first documentation for Numeric.
3
SPEAKER_00
This is Paul Dubois, David Asher, Conrad Hinson, and myself.
3
SPEAKER_00
I got credit because I wrote this chapter, which is all the C API of numeric, all the C stuff.
3
SPEAKER_00
So I said, I m probably the one to do it.
3
SPEAKER_00
Nobody else is going to do this.
3
SPEAKER_00
So it was sort of out of a sense of duty and passion, knowing that I don t think my academic – I don t think the department here is going to appreciate this, but I
3
SPEAKER_00
It s the right thing to do.
3
SPEAKER_01
Can we just link on that moment because the importance of the way you thought and the action you took I feel is understated and is rare and I would love to see so much more of it because what happens as the tools become more popular
3
SPEAKER_01
there s a split that happens.
3
SPEAKER_01
And it s a truly heroic and impactful action to in those early, in that early split to step up and it s like great leaders throughout history, like get, what is the brave heart?
3
SPEAKER_01
Like get on a horse and rile the troops because I think that can have, make a big difference.
3
SPEAKER_01
We have TensorFlow versus PyTorch in the machine learning.
3
SPEAKER_01
We have the same problem today.
3
SPEAKER_01
Yeah, it s actually bigger.
3
SPEAKER_01
I wonder if it s possible in the early days to rally the troops.
3
SPEAKER_00
It is possible, especially in the early days.
3
SPEAKER_00
The longer it goes, the harder, right?
3
SPEAKER_00
And the more energy in the factions, the harder.
3
SPEAKER_00
But in the early days, it is possible, and it s extremely helpful.
3
SPEAKER_00
And there s a willingness there, but
3
SPEAKER_00
But the challenge is there s usually not a willingness to fund it.
3
SPEAKER_00
There s not a willingness to... I was literally walking into a field saying, I m gonna do this.
3
SPEAKER_00
And here I am, I have five kids at home now.
3
SPEAKER_00
Pressure builds.
3
SPEAKER_00
Sometimes my wife hears these stories and she s like,
3
SPEAKER_00
You did what?
3
SPEAKER_00
I thought you were actually on a path to make sure we had resources and money.
3
SPEAKER_00
But again, there s an aspect.
3
SPEAKER_00
I m a very hopeful person.
3
SPEAKER_00
I m an optimistic person by nature.
3
SPEAKER_00
I love people.
3
SPEAKER_00
I learned that about myself later on.
3
SPEAKER_00
Part of my religious beliefs actually lead to that, and it s why I hold them dear, because it s actually how I feel about – it s what leads me to these attitudes, sort of this hopefulness and this sense of, yeah, it may not work out for me financially, but that s not the ultimate gain.
3
SPEAKER_00
that s a thing, but that s not the scorecard for me.
3
SPEAKER_00
And so I just wanted to be helpful, and I knew, and partly because these Sci-Fi conferences, because the mailing list conversations, I knew there was a lot of need for this, right?
3
SPEAKER_00
And so I had this, it wasn t like I was alone in terms of no feedback.
3
SPEAKER_00
I had these people who knew, but it was crazy.
3
SPEAKER_00
Like people who at the time said, yeah, we didn t think you d be able to do it.
3
SPEAKER_00
We thought it was crazy.
3
SPEAKER_01
And also instructive, like practically speaking,
3
SPEAKER_01
that you had a cool feature that you were chasing, the morphology, like the- Yes.
3
SPEAKER_01
It s not just like- There s an end result.
3
SPEAKER_01
It s not some visionary thing, I m going to unite the community.
3
SPEAKER_01
You were like- Correct.
3
SPEAKER_01
You were actually practically, this is what one person actually could do and actually build.
3
SPEAKER_00
Because that is important, because you can get over your skis.
3
SPEAKER_00
Yeah.
3
SPEAKER_00
You can definitely get over your skis.
3
SPEAKER_00
And I had, in fact, this almost got me over my skis, right?
3
SPEAKER_00
I would say, well, in retrospect, I hate looking back.
3
SPEAKER_00
I can tell you all the flaws with NumPy, right?
3
SPEAKER_00
When I go into it, there s lots of stuff that I m like, oh man, that s embarrassing.
3
SPEAKER_00
That was wrong.
3
SPEAKER_00
I wish I had somebody slap me with a wet fish there.
3
SPEAKER_00
Like I needed, like what I d wished I d had was somebody with more experience and certainly library writing and array library.
3
SPEAKER_00
Like I wish I had me.
3
SPEAKER_00
I could go back in time and go do this, do that.
3
SPEAKER_00
There s a Morton Bean.
3
SPEAKER_00
There s things we did that are still there that are problematic, that created challenges for later.
3
SPEAKER_00
And I didn t know it at the time.
3
SPEAKER_00
I didn t understand how important that was.
3
SPEAKER_00
And in many cases, didn t know what to do.
3
SPEAKER_00
There was pieces of the design of NumPy, I didn t know what to do until five years ago.
3
SPEAKER_00
Now I know what they should have been, but I didn t know at the time and I couldn t get the help.
3
SPEAKER_00
Anyway, so I wrote it.
3
SPEAKER_00
It took four months to write the first version, then about 14 months to make it usable.
3
SPEAKER_00
But it was that first four months of intense writing, coding, getting something out the door that worked.
3
SPEAKER_00
It was definitely challenging.
3
SPEAKER_00
And then the big thing I did was create a new type object called Dtype.
3
SPEAKER_00
That was probably the contribution.
3
SPEAKER_00
And then the fact that I added, not just broadcasting, but advanced indexing, so that you could do masked indexing and indirect indexing instead of just slicing.
3
SPEAKER_01
For people who don t know, maybe you can elaborate, NumPy,
3
SPEAKER_01
I guess the vision in the narrowest sense is to have this object that represents n-dimensional arrays.
3
SPEAKER_01
And like at any level of abstraction you want, but basically it could be a black box that you can investigate in ways that you would naturally want to investigate.
3
SPEAKER_01
such objects.
3
SPEAKER_00
Yes, exactly.
3
SPEAKER_00
So you could do math on it easily.
3
SPEAKER_00
Math on it easily, yeah.
3
SPEAKER_00
So it had an associated library of math operations.
3
SPEAKER_00
And effectively, SciPy became an even larger set of math operations.
3
SPEAKER_00
So the key for me was I was going to write NumPy and then move SciPy to depend on NumPy.
3
SPEAKER_00
In fact, early on, one of the initial proposals was that we would just write SciPy and it would have the numeric object inside of it.
3
SPEAKER_00
And it would be SciPy.array or something.
3
SPEAKER_00
That turned out to be problematic because Numeric already had a little mini library of linear algebra and some functions, and it had enough momentum, enough users, that nobody wanted to, they wanted backward compatibility.
3
SPEAKER_00
One of the big challenges of NumPy was I had to be backward compatible with both Numeric and Numery in order to allow both of those communities to come together.
3
SPEAKER_00
There was a ton of work in creating that backward compatibility that also created echoes in today s object.
3
SPEAKER_00
Like some of the complexity in today s object is actually from that.
3
SPEAKER_00
goal of backward compatibility of these other communities, which if you didn t have that, you d do something different, which is instructive because a lot of things are there.
3
SPEAKER_00
And you re thinking, what is that up there for?
3
SPEAKER_00
It s like, well, it s a remnant, it s an artifact of its historical existence.
3
SPEAKER_01
By the way, I love the empathy and the lack of ego behind that, because I feel, you see that in the split, in the JavaScript frameworks, for example, the arbitrary branching is,
3
SPEAKER_01
I think in order to unite people, you have to kind of put your ego aside and truly listen to others.
3
SPEAKER_01
What do you love about Nomurae?
3
SPEAKER_01
What do you love about Numeric?
3
SPEAKER_01
Actually get a sense, we were talking about languages earlier, sort of empathize to the culture, the people that love something about this particular API.
3
SPEAKER_01
the naming style or the actual usage patterns and truly understand them and so that you can create that same draw in the United.
3
SPEAKER_00
I completely agree.
3
SPEAKER_00
And you have to also have enough passion that you ll do it.
3
SPEAKER_00
It can t be just like a perfunctory.
3
SPEAKER_00
Oh, yes, I ll listen to you, and then I m not really that excited about it.
3
SPEAKER_00
So it really is an aspect, it s a philosophical, like there s a philia, there s a love of esteeming of others that s actually at the heart of what is sort of a life philosophy for me, right, that I m constantly pursuing, and that helped, absolutely helped.
3
SPEAKER_01
It makes me wonder in a philosophical, like looking at human civilization as one object, it makes me wonder how we can copy and paste Travis s in this book.
3
SPEAKER_00
Some aspects, maybe.
3
SPEAKER_01
Some aspects, right, right, exactly.
3
SPEAKER_00
It s a good question.
3
SPEAKER_00
How do we teach this?
3
SPEAKER_00
How do we encourage it?
3
SPEAKER_00
How do we lift it?
3
SPEAKER_00
How do we pull it out?
3
SPEAKER_01
Because so much of the software world, it s giant communities, right?
3
SPEAKER_01
But it seems like so much is moved by like little individuals.
3
SPEAKER_01
You talk about like Linus Torvald.
3
SPEAKER_01
It s like, can you, could you have not, could you have had Linux without him?
3
SPEAKER_01
Could you, it s like... Yeah, Guido and Python.
3
SPEAKER_00
Guido and Python.
3
SPEAKER_00
Guido and Python.
3
SPEAKER_00
I mean, the SciPy community particularly, it s like I said, we wanted to build this big thing, but ultimately...
4
SPEAKER_01
we didn t.
4
SPEAKER_01
What happened is we had mavericks and champions like John Hunter, who created Matplotlib.
4
SPEAKER_01
We had Fernando Perez, who created IPython.
4
SPEAKER_01
And so we sort of inspired each other, and then there s sort of a culture of this selfless giving, this stewardship mentality, as opposed to ownership mentality, but stewardship and community-focused
4
SPEAKER_01
community-focused but intentional work, like not waiting for everybody else to do the work, but you re doing it for the benefit of others and not worried about what you re going to get.
4
SPEAKER_01
You re not worried about the credit.
4
SPEAKER_01
You re not worried about what we re going to get.
4
SPEAKER_01
You re worried about, I later realized that I have to worry a little about credit, not because I want the credit, because I want people to understand what led to the results.
4
SPEAKER_01
Like I don t, it s not, it s not about me is I want to understand this is what led to the result.
4
SPEAKER_01
So let s like, I think doing, and this is what had no impact on the result.
4
SPEAKER_01
Like let s, let s promote this.
4
SPEAKER_01
Just like you said, I want to promote the attributes that help make us better off.
4
SPEAKER_01
How do we make more of Wes, Wes McKinney, like Wes McKinney was critical to the success of Python because of his creation of pandas, which is.
4
SPEAKER_01
The roots of that were all the way back in Numeric and NumArray and NumPy, where NumPy created an array of records.
4
SPEAKER_01
Wes started to use that almost like a DataFrame, except it s an array of records.
4
SPEAKER_01
And DataFrame, the challenge is, okay, if you want to augment it at another column, you have to insert, you have to do all this memory movement to insert a column.
4
SPEAKER_01
Whereas DataFrames became, oh, I m going to have a loose collection of arrays.
4
SPEAKER_01
So it s a record of arrays that is a part of a data frame.
4
SPEAKER_01
And we thought about that back in the memory days, but Wes ended up doing the work to build it, and then also the operations that were relevant for data processing.
4
SPEAKER_01
What I noticed is just that each of these little things creates just another tick, another up.
4
SPEAKER_01
So NumPy ultimately took a little while.
4
SPEAKER_01
About six months in, people started joining me.
4
SPEAKER_01
You know, Francesc,
4
SPEAKER_01
Alt-Head, Robert Kern, Charles Harris.
4
SPEAKER_01
And these people are many of the unsung heroes, I would say.
4
SPEAKER_01
People who are, you know, they sometimes don t get the credit they deserve because they were critical both to support, like, you know, it s hard and you need some support.
4
SPEAKER_01
People need support.
4
SPEAKER_01
And I needed just encouragement.
4
SPEAKER_01
And they were helping, encouraged by contributing.
4
SPEAKER_01
And once, the big thing for me was when John Hunter,
4
SPEAKER_01
He had previously done kind of a simple thing called numerics to kind of, you know, between numeric and number A, he had a little high level tool that would just select each one for Matplotlib.
4
SPEAKER_01
In 2006, he finally said, we re gonna just make NumPy the dependency of Matplotlib.
4
SPEAKER_01
As soon as he did that, and I remember specifically when he did that, I said, this, okay, now we ve done it.
4
SPEAKER_01
Like that was when I knew we had succeeded success.
4
SPEAKER_01
Before then it was still, you know, doing sure, but that kind of started a roller coaster and then 2006 to 2009.
4
SPEAKER_01
And then I ve been floored by the, by what it s done.
4
SPEAKER_01
Like I hadn t, I knew it would help.
4
SPEAKER_01
I didn t have no idea how much it would help.
4
SPEAKER_01
Right.
4
SPEAKER_01
So.
4
SPEAKER_00
And it has to do with, again, the language thing.
4
SPEAKER_00
It s just people started to think in terms of NumPy.
4
SPEAKER_00
And that opened up a whole new way of thinking.
4
SPEAKER_00
And part of the story that you kind of mentioned, but maybe you can elaborate, is it seems like at some point in the story, Python took over science and data science.
4
SPEAKER_00
And bigger than that,
4
SPEAKER_00
the scientific community started to think like programmers, or started to utilize the tools of computers to do, like at a scale that wasn t done with Fortran, like at this gigantic scale.
4
SPEAKER_00
They started to open in their heart, and then Python was the thing.
4
SPEAKER_00
I mean, there s a few other competitors, I guess, but Python, I think, really, really took over.
4
SPEAKER_01
I agree, there s a lot of stories here that are kind of during this journey, because this is sort of the start of this journey in 2005, six.
4
SPEAKER_01
So, my tenure committee, I applied for tenure in 2006, 2007.
4
SPEAKER_01
It came back, I split the department.
4
SPEAKER_01
I was very polarizing.
4
SPEAKER_01
I had some huge fans and then some people said, no way, right?
4
SPEAKER_01
So, I was a polarizing figure in the department.
4
SPEAKER_01
It went all the way up to the university president.
4
SPEAKER_01
Ultimately, my department chair had the sway.
4
SPEAKER_01
And they didn t say no, they said, come back in two years and do it again.
4
SPEAKER_01
And I went, at that point I was like, I had this interest in entrepreneurship, this interest in not the academic circles, not the, like, how do we make industry work?
4
SPEAKER_01
So I do have to give credit to that exploration of economics because that led me, oh, I had a lot of opinions.
4
SPEAKER_01
I was actually very libertarian at the time.
4
SPEAKER_01
And I still have some libertarian trends, but I m more of a collectivist libertarian.
4
SPEAKER_01
So you value broadly, philosophically, freedom.
4
SPEAKER_01
I value broadly, philosophically, freedom, but I also understand the power of communities, like the power of collective behavior.
4
SPEAKER_01
And so what s that balance, right?
4
SPEAKER_01
That makes sense.
4
SPEAKER_01
So by the time I was just, I got to go out and explore this entrepreneur world.
4
SPEAKER_01
So I left academia.
4
SPEAKER_01
I said, no thanks.
4
SPEAKER_01
Called my friend Eric here, who had
4
SPEAKER_01
his company was going, I said, hey, could I join you and start this trend?
4
SPEAKER_01
And at that time, they were using SyFy a lot.
4
SPEAKER_01
They were trying to get clients.
4
SPEAKER_01
And so I came down to Texas.
4
SPEAKER_01
And in Texas is where I sort of, it s my entrepreneur world, right?
4
SPEAKER_01
I left academia and went to entrepreneur world in 2007.
4
SPEAKER_01
So I moved here in 2007, kind of took a leap, knew nothing really about business, knew nothing about a lot of stuff there.
4
SPEAKER_01
If there s, you know, for a long time I ve kept some connections to a lot of academics because I still value it.
4
SPEAKER_01
I still love the scientific tradition.
4
SPEAKER_01
I still value the essence and the soul and the heart of what is possible.
4
SPEAKER_01
Don t like
4
SPEAKER_01
a lot of the administration and the kind of, we can go into detail about why and where and how this happens, what are some of the challenges.
4
SPEAKER_00
I mean, I don t know, but I m with you.
4
SPEAKER_00
So I m still affiliated with MIT.
4
SPEAKER_00
I still love MIT because there s magic there.
4
SPEAKER_00
There s people I talk to, like researchers, faculty, in those conversations and the whiteboard and just the conversation, that s magic there.
4
SPEAKER_00
all the other stuff, the administration, all that kind of stuff seems to, you don t wanna say too harshly criticize sort of bureaucracies, but there s a lag that seems to get in the way of the magic.
4
SPEAKER_00
And I m still have a lot of hope that that can change because I don t often see that particular type of magic
4
SPEAKER_00
elsewhere in the industry.
4
SPEAKER_00
So like we need that and we need that flame going.
4
SPEAKER_00
And it s the same thing as exactly as you said, it has the same kind of elements like the open source community does.
4
SPEAKER_00
But then if you, like the reason I stepped away, the reason I m here just like you did in Austin is like, if I want to build one robot,
4
SPEAKER_00
I ll stay at MIT.
4
SPEAKER_00
But if I want to build millions and make money enough to where I can explore the magic of that, then you can t.
4
SPEAKER_00
And I think that dance is... That translational dance has been lost a bit.
4
SPEAKER_01
Yeah.
4
SPEAKER_01
Right?
4
SPEAKER_01
And there s a lot of reasons for that.
4
SPEAKER_01
I m certainly not an expert on this stuff.
4
SPEAKER_01
I can opine like anybody else.
4
SPEAKER_01
I realized that I wanted to explore entrepreneurship and really figure out, and it s been a driving passion for 20 years, 25 years, how do we connect capital markets and company?
4
SPEAKER_01
Because again, I fell in love with the notion of, oh, profit-seeking on its own is not a bad thing.
4
SPEAKER_01
It s actually a coordination mechanism for allocating resources that
4
SPEAKER_01
you know, in an emergent way, right, that respects everybody s opinions, right?
4
SPEAKER_01
So this is actually powerful.
4
SPEAKER_01
So I say all the time, when I make a company and we do something that makes a profit, what we re saying is, hey, we re collecting the world s resources, and voluntarily people are asking us to do something they like.
4
SPEAKER_01
And that s a huge deal.
4
SPEAKER_01
And so I really liked that energy.
4
SPEAKER_01
So that s what I came to do and to learn and to try to figure out.
4
SPEAKER_01
And that s what I ve been kind of stumbling through for the past 14 years.
4
SPEAKER_01
And that s 2007.
4
SPEAKER_01
2007, yeah.
4
SPEAKER_01
And so you were still working on No Pi.
4
SPEAKER_01
So No Pi was just emerging.
4
SPEAKER_00
Just emerging.
4
SPEAKER_01
One of the things I had done, and it s worth mentioning because it emphasizes the exploratory nature of my thinking at the time.
4
SPEAKER_01
I said, well, I don t know how to fund this thing.
4
SPEAKER_01
I ve got a graduate student I m paying for and I ve got no funding for him.
4
SPEAKER_01
And I had done some fundraising from the public to try to get public fundraisers from my lab.
4
SPEAKER_01
I didn t really want to go out and just do the fundraising circuit the way it s traditionally done.
4
SPEAKER_01
So I wrote a book, and I said, I m going to write a book, and I m going to charge for it.
4
SPEAKER_01
It was called Guide to NumPy.
4
SPEAKER_01
And so ultimately, NumPy became documentation-driven development, because I basically wrote the book and made sure the stuff worked so the book would work.
4
SPEAKER_01
So it really helped, actually, make NumPy become a thing.
4
SPEAKER_01
So writing that book,
4
SPEAKER_01
And it was not a... I mean, it s not a page-turner.
4
SPEAKER_01
It s not a book you pick up and go, oh, this is great, over the fire.
4
SPEAKER_01
But it s where you could find the details, like how d all this work.
4
SPEAKER_01
And a lot of people loved that book.
4
SPEAKER_01
And so a lot of people ended up... But I said, look, I need to... So I m gonna charge for it.
4
SPEAKER_01
And I got some flack for that.
4
SPEAKER_01
Not that much, just probably five angry messages, people yelling at me, saying I was a bad guy for charging for this book.
4
SPEAKER_00
Was one of them Richard Stallman?
4
SPEAKER_01
No.
4
SPEAKER_01
Just kidding.
4
SPEAKER_01
No, I haven t really had any interaction with him personally, like I said.
4
SPEAKER_01
But there were a few.
4
SPEAKER_01
But actually, surprisingly not.
4
SPEAKER_01
There was actually a lot of people like, no, it s fine.
4
SPEAKER_01
You can charge for a book.
4
SPEAKER_01
That s no big deal.
4
SPEAKER_01
We know that s a way you can try to make money around open source.
4
SPEAKER_01
So what I did, I did it in an interesting way.
4
SPEAKER_01
I said, well,
4
SPEAKER_01
you know, kind of my ideas around IP law and stuff.
4
SPEAKER_01
I love the idea you can share something and you can spread it.
4
SPEAKER_01
Like once it s, the fact that you have a thing and copying is free, but the creation is not free.
4
SPEAKER_01
So how do we, how do you fund the creation and allow the copying, right?
4
SPEAKER_01
And in software it s a little more complicated than that because creation is actually a continuous thing.
4
SPEAKER_01
It s not like you build a widget and it s done.
4
SPEAKER_01
It s sort of a process of emerging and continuing to create.
4
SPEAKER_01
But I wrote the book and had this market determined price thing.
4
SPEAKER_01
I said, look, I need, I think I said 250,000.
4
SPEAKER_01
If I make 250,000 from this book, I ll make it free.
4
SPEAKER_01
So as soon as I get that much money, or I said five years.
4
SPEAKER_01
So there s a time limit.
4
SPEAKER_01
It s not forever.
4
SPEAKER_01
That s really cool.
4
SPEAKER_01
I didn t know this story.
4
SPEAKER_00
It s amazing.
4
SPEAKER_01
Yeah, so I released it on this.
4
SPEAKER_01
And it s actually interesting, because one of the people who also thought that was interesting ended up being Chris White, who was the director of DARPA project that we got funding through at Anaconda.
4
SPEAKER_01
And the reason he even called us back is because he remembered my name from this book, and he thought that was interesting.
4
SPEAKER_01
Even though we hadn t gone to the demo days, we applied, and the people said, yeah, nobody ever gets this without coming to the demo day first.
4
SPEAKER_01
That s the first time I ve seen it.
4
SPEAKER_01
But it s because I knew Chris had done this and had this interaction.
4
SPEAKER_01
So it did have impact.
4
SPEAKER_01
I was actually really, really pleased by the result.
4
SPEAKER_01
I mean, I ended up in three years, I made 90,000.
4
SPEAKER_01
So I sold 30,000 copies by myself.
4
SPEAKER_01
I just put it up on, used PayPal and sold it.
4
SPEAKER_01
And that was my first taste of kind of,
4
SPEAKER_01
Okay, this can work to some degree, and all over the world, from Germany to Japan, it actually did work.
4
SPEAKER_01
And so I appreciated the fact that PayPal existed and had a way to get the money.
4
SPEAKER_01
The distribution was simple.
4
SPEAKER_01
This is pre-Amazon book stuff, so it was just publishing a website.
4
SPEAKER_01
It was the popularity of Sci-Fi emerging and getting company usage.
4
SPEAKER_01
I ended up not letting it go to five years and not trying to make the full amount because
4
SPEAKER_01
you know, a year and a half later, I was at Enthought.
4
SPEAKER_01
I had left academia at Enthought, and I kind of had a full-time job.
4
SPEAKER_01
And then actually what happened is the documentation people, there was a group that said, hey, we want to do documentation for SciPy as a collective.
4
SPEAKER_01
And they were essentially needing the stuff in the book, right?
4
SPEAKER_01
And so they kind of asked, hey, can we just use the stuff in your book?
4
SPEAKER_01
And at that point, I said, yeah, I ll just open it up.
4
SPEAKER_01
So that s,
4
SPEAKER_01
But it has served its purpose.
4
SPEAKER_01
And the money that I made actually funded my grad student.
4
SPEAKER_01
Like, it was actually, you know, I paid him $25,000 a year out of that money.
4
SPEAKER_00
The funny thing is, if you do a very similar kind of experiment now with NumPy or something like it, you could probably make a lot more.
4
SPEAKER_00
That s probably true.
4
SPEAKER_00
Because of the tooling and the community building.
4
SPEAKER_00
Yeah, I agree.
4
SPEAKER_00
And social media.
4
SPEAKER_00
There s just a virality to that kind of idea.
4
SPEAKER_01
I agree.
4
SPEAKER_01
There d be things to do.
4
SPEAKER_01
I ve thought about that.
4
SPEAKER_01
And really, I ve thought about a couple of books or a couple of things that could be done there.
4
SPEAKER_01
And I just haven t.
4
SPEAKER_01
I tried to hire a ghostwriter this year, too, to see if I could help.
4
SPEAKER_01
But it didn t.
4
SPEAKER_01
Part of my problem is I ve been so excited by a number of things that stemmed from that.
4
SPEAKER_01
So I came here, worked at Enthought for four years.
4
SPEAKER_01
Graciously, Eric made me president, and we started to work closely together.
4
SPEAKER_01
I actually helped him buy out his partner.
4
SPEAKER_01
It didn t end great.
4
SPEAKER_01
Unfortunately, Eric and I aren t friends now.
4
SPEAKER_01
I still respect him.
4
SPEAKER_01
I wish we were.
4
SPEAKER_01
But he didn t like the fact that Peter and I started Anaconda.
4
SPEAKER_01
So there s two sides to that story, so I m not gonna go into it, right?
4
SPEAKER_01
Sure.
4
SPEAKER_00
But you, it s human beings and you wish you still could be friends.
4
SPEAKER_01
I do.
4
SPEAKER_01
I do.
4
SPEAKER_01
It saddens me.
4
SPEAKER_00
I mean, that s a story of great minds building great companies.
4
SPEAKER_00
Yeah.
4
SPEAKER_00
Somehow it s sad that
4
SPEAKER_01
when there s that kind of... And I hold him in esteem.
4
SPEAKER_01
I m grateful for him.
4
SPEAKER_01
I think they re doing... Enthought still exists.
4
SPEAKER_01
They re doing great work helping scientists.
4
SPEAKER_01
They still run the SciPy conference.
4
SPEAKER_01
They have an R&D platform they re selling now that s a tool that you can go get today, right?
4
SPEAKER_01
So Enthought has played a role in the SciPy, in supporting the community around SciPy, I would say.
4
SPEAKER_01
They ended up not being able to
4
SPEAKER_01
They ended up building a tool suite to write GUI applications.
4
SPEAKER_01
Like that s where they could actually make that the business could work.
4
SPEAKER_01
And so the supporting SciPy and NumPy itself wasn t as possible.
4
SPEAKER_01
Like they didn t, they tried.
4
SPEAKER_01
I mean, it was not just because it was just because the business aspect.
4
SPEAKER_01
So, and then I wanted to build a company that could do, that could get venture funding.
4
SPEAKER_01
Right, better for worse.
4
SPEAKER_01
I mean, that s a longer story.
4
SPEAKER_01
We could talk a lot about that, but.
4
SPEAKER_00
And that s where Anaconda came to be.
4
SPEAKER_00
That s where Anaconda came to be.
4
SPEAKER_00
So let me ask you, it s a little bit for fun because you built this amazing thing.
4
SPEAKER_00
And so let s talk about like an old warrior looking over old battles.
4
SPEAKER_00
You ve, you know, there s a sad letter in 2012 that you wrote to the NumPy mailing list announcing that you re leaving NumPy.
4
SPEAKER_00
And some of the things you ve listed, some of the things you regret, or not regret necessarily, but some things to think about.
4
SPEAKER_00
If you could go back and you could fix stuff about NumPy, or both sort of in a personal level, but also like looking forward, what kind of things would you like to see changed?
4
SPEAKER_00
Good question.
4
SPEAKER_01
So I think there s technical questions and social questions right there.
4
SPEAKER_01
First of all, you know, I wrote NumPy as a service, and I spent a lot of time doing it, and then other people came and helped make it happen.
4
SPEAKER_01
NumPy succeeded because of the work of a lot of people, right?
4
SPEAKER_01
So it s important for you to understand that.
4
SPEAKER_01
I m grateful for the opportunity, the role I could play, and I m grateful that things I did had an impact.
4
SPEAKER_01
But they only had the impact they had because the other people that came to the story.
4
SPEAKER_01
And so they were essential.
4
SPEAKER_01
But the way data types were handled, the way data types, we had array scalers, for example, that are really just a substitute for a type concept, right?
4
SPEAKER_01
So we had array scalers or actual Python objects so that there s for every, for a 32-bit float or a 16-bit float or a 16-bit integer, Python doesn t have a natural, it s just a one integer, it s one float.
4
SPEAKER_01
Well, what about these lower precision types, these larger precision types?
4
SPEAKER_01
So we had them in NumPy so that you could have a collection of them, but then have an object in Python that was one of them.
4
SPEAKER_01
And there s questions about, like, in retrospect, I wouldn t have created those if it improved the type system.
4
SPEAKER_01
and made the type system actually a Python type system as opposed to currently it s a Python 1 level type system.
4
SPEAKER_01
I don t know if you know the difference between Python 1 and Python 2.
4
SPEAKER_01
It s kind of technical, kind of depth.
4
SPEAKER_01
But Python 2, one of its big things that Guido did, it was really brilliant, was he actually Python 1
4
SPEAKER_01
all classes, new objects, were one.
4
SPEAKER_01
If you as a user wrote a class, it was an instance of a single Python type called the class type.
4
SPEAKER_01
In Python 2, he used a meta-typing hook to actually go, oh, we can extend this and have users write classes that are new types.
4
SPEAKER_01
So it was able to have your user classes be actual types, and the Python type system got a lot more rich.
4
SPEAKER_01
I barely understood that at the time that NumPy was written, and so I essentially, in NumPy, created a type system that was Python 1 era.
4
SPEAKER_01
It was every D type is an instance of the same type, as opposed to having new D types be really just Python types with additional metadata.
4
SPEAKER_01
What s the cost of that?
4
SPEAKER_01
Is it efficiency?
4
SPEAKER_01
Is it usability?
4
SPEAKER_01
It s usability, primarily.
4
SPEAKER_01
The cost isn t really efficiency.
4
SPEAKER_01
It s the fact that it s clumsy to create new types.
4
SPEAKER_01
It s hard.
4
SPEAKER_01
And then one of the challenges, you want to create new types.
4
SPEAKER_01
You want a quaternion type, or you want to add a new posit type.
4
SPEAKER_01
So it s hard.
5
SPEAKER_01
Now, if we had done that well, when Numba came on the scene where we could actually compile Python code, it would integrate with that type system much cleaner.
5
SPEAKER_01
And now, all of a sudden, you could do gradual typing more easily.
5
SPEAKER_01
You could actually have Python, when you add Numba, plus better typing, could actually
5
SPEAKER_01
you d smooth out a lot of rough edges.
5
SPEAKER_00
But there s already, but are you talking about from the perspective of developers within NumPy or users of NumPy?
5
SPEAKER_01
Developers of new, not really users of NumPy so much, it s the development of NumPy.
5
SPEAKER_00
So you re thinking about how to design NumPy so that it s contributors.
5
SPEAKER_01
Yeah, the contributors, it s easier.
5
SPEAKER_01
It s easier.
5
SPEAKER_01
It s less work to make it better and to keep it maintained.
5
SPEAKER_01
And where that s impacted things, for example,
5
SPEAKER_01
The GPU, like all of a sudden GPUs start getting added and we don t have them in NumPy.
5
SPEAKER_01
Like NumPy should just work on GPUs.
5
SPEAKER_01
The fact that we have to download a whole other object called CuPy to have arrays on GPUs is just an artifact of history.
5
SPEAKER_01
There s no fundamental reason for it.
5
SPEAKER_00
Well, that s really interesting, if we could sort of go on that tangent briefly, is you have PyTorch and other libraries like TensorFlow that basically try to mimic NumPy.
5
SPEAKER_00
Like, you ve created a sort of platonic form of multi-dimensional.
5
SPEAKER_01
Yeah, exactly.
5
SPEAKER_01
Well, and the problem was they didn t realize that.
5
SPEAKER_01
The platonic form has a lot of
5
SPEAKER_01
edges.
5
SPEAKER_01
They re like, well, we should cut those out before we present it.
5
SPEAKER_00
So I wonder if you can comment, is there like a difference between their implementations?
5
SPEAKER_00
Do you wish that they were all using NumPy or like in this abstractional GPU?
5
SPEAKER_00
And sorry to interrupt, there s GPUs, ASICs, there might be other neuromorphic computing, there might be other kind of
5
SPEAKER_00
or the aliens will come with a new kind of computer.
5
SPEAKER_00
Like an abstraction that NumPy should just operate nicely over the things that are more and more and smarter and smarter with this multidimensional arrays.
5
SPEAKER_01
Yeah, yeah.
5
SPEAKER_01
There s several comments there.
5
SPEAKER_01
We are working on something now called data-apis.org.
5
SPEAKER_01
Data-api.org.
5
SPEAKER_01
You can go there today.
5
SPEAKER_01
And it s our answer.
5
SPEAKER_01
It s my answer.
5
SPEAKER_01
It s not just me.
5
SPEAKER_01
It s me and Rolf and Athen and Aaron and a lot of companies are helping us at QuantSight Labs.
5
SPEAKER_01
It s not unifying all the arrays.
5
SPEAKER_01
It s creating an API that is unified.
5
SPEAKER_01
So we do care about this and are trying to work through it.
5
SPEAKER_01
I actually had the chance to go and meet with the TensorFlow team and the PyTorch team and talk to them after exiting Anaconda.
5
SPEAKER_01
The first year after leaving ICON in 2018, I became deeply aware of this and realized that, oh, this split in the array community that exists today makes what I was concerned about in 2005 pretty parochial.
5
SPEAKER_01
It s a lot worse, right?
5
SPEAKER_01
Now, there s a lot more people, so perhaps the industry can sustain more stacks, right?
5
SPEAKER_01
There s a lot of money, but it makes it a lot less efficient.
5
SPEAKER_01
But I ve also learned to appreciate it s okay to have some competition.
5
SPEAKER_01
It s okay to have different implementations.
5
SPEAKER_01
But it s better if you can at least refactor some parts.
5
SPEAKER_01
I mean, you re gonna be more efficient if you can refactor parts.
5
SPEAKER_00
It s nice to have competition over things.
5
SPEAKER_00
They re innovative.
5
SPEAKER_00
It s nice to have competition.
5
SPEAKER_00
They re innovative.
5
SPEAKER_00
Yeah, innovative, and then maybe on the infrastructure, whatever, however you define infrastructure, maybe it s nice to have come together.
5
SPEAKER_01
I agree.
5
SPEAKER_01
And I think, but it was interesting to hear the stories.
5
SPEAKER_01
I mean, TensorFlow came out of the C++ library.
5
SPEAKER_01
Jeff Dean wrote, I think there was basically a how they were doing inference, right?
5
SPEAKER_01
And then they realized, oh, we could do this TensorFlow thing.
5
SPEAKER_01
That C++ library, then what was interesting to me was the fact that both Google and Facebook
5
SPEAKER_01
It s not like they supported Python or NumPy initially, they just realized they had to.
5
SPEAKER_01
They came to this world and then all these were like, hey, where s the NumPy interface?
5
SPEAKER_01
Oh, and then they kind of came late to it and then they had these bolt-ons.
5
SPEAKER_01
TensorFlow s bolt-on, I don t mean to offend, but it was so bad.
5
SPEAKER_01
It s the first time that I m usually, I mean,
5
SPEAKER_01
One of the challenges I have is I don t criticize enough, in the sense that I don t give people input enough.
5
SPEAKER_00
I think it s universally agreed upon that the bulletins on TensorFlow.
5
SPEAKER_01
But I went to a talk given at Mallorca in Spain, and a great guy came and gave a talk, and I said, you should never show that API again at a PyData conference.
5
SPEAKER_01
Like that was, that s terrible.
5
SPEAKER_01
Like you re taking this beautiful system we ve created and like you re corrupting all these poor Python people, forcing them to write code like that or thinking they should.
5
SPEAKER_01
Fortunately, you know, they adopted Keras as their, and Keras is better.
5
SPEAKER_01
And so Keras TensorFlow is fine, is reasonable.
5
SPEAKER_01
But they bolted it on.
5
SPEAKER_01
Facebook did too.
5
SPEAKER_01
Like Facebook had their own,
5
SPEAKER_01
C++ library for doing inference and they also have the same, you know reaction they had to do this One big difference is Facebook maybe because the way it s situated in the in part of fair part of their research library TensorFlow is definitely used and you know, they have to make they couldn t just open it up and let the community You know change what that is because I guess they were worried about disrupting their operations Facebook s been much more open to having
5
SPEAKER_01
community input on the structure itself.
5
SPEAKER_01
Whereas Google and TensorFlow, they re really eager to have community users.
5
SPEAKER_01
People use it and build the infrastructure, but it s much more walled.
5
SPEAKER_01
It s harder to become a contributor to TensorFlow itself.
5
SPEAKER_00
And it s also, this is a very difficult question to answer, and I don t mean to be throwing shade at anybody, but you have to wonder, it s the Microsoft question, of when you have a tool like PyTorch or TensorFlow, how much are you tending to the hackers, and how much are you tending to the big corporate clients?
5
SPEAKER_01
Correct.
5
SPEAKER_00
Correct.
5
SPEAKER_00
Do you tend to the millions of people that are giving you almost no money, or do you tend to the few that are giving you a ton of money?
5
SPEAKER_00
I tend to stand with the people.
5
SPEAKER_00
Right.
5
SPEAKER_00
Because I feel like if you nurture the hackers, you will make the right decisions in the long term that will make the companies happy.
5
SPEAKER_01
I lean that way too.
5
SPEAKER_01
I totally agree.
5
SPEAKER_00
But then you have to find the right dance step.
5
SPEAKER_01
But it s a balance.
5
SPEAKER_01
Because you can lean to the hackers and run out of money.
5
SPEAKER_01
Yeah, exactly.
5
SPEAKER_01
Exactly.
5
SPEAKER_01
Which has been some of the challenge I ve faced in the sense that, like I would look at some of the experiments, like NumPy, the fact that we have this split is a factor of I wasn t able to collect more money towards NumPy development, right?
5
SPEAKER_01
I mean, it didn t succeed in the early days of getting enough financial contribution to NumPy, so they didn t make a good work on it.
5
SPEAKER_01
I couldn t work on it full time.
5
SPEAKER_01
I had to just catch an hour here, an hour there, and I basically not liked that.
5
SPEAKER_01
I wanted to be able to do something about that for a long time and try to figure out how.
5
SPEAKER_01
Well, there s lots of ways.
5
SPEAKER_01
Possibly one could say we had an offer from Microsoft at early days of Anaconda.
5
SPEAKER_01
In 2014, they offered to come buy us.
5
SPEAKER_01
The problem was the right people at Microsoft didn t offer to buy us, and they were still
5
SPEAKER_01
It was really a, we were like a second, they had really bought, they just bought R, the R company called, it was not R Studio, but it was another R company that was emergent.
5
SPEAKER_01
And it was kind of a, well, we should also get a Python play.
5
SPEAKER_01
But they were really doubling down on R, right?
5
SPEAKER_01
And so it was like.
5
SPEAKER_01
It was where you would go to die.
5
SPEAKER_01
So it s not, it wasn t, it was before Satya was there.
5
SPEAKER_01
Satya had just started.
5
SPEAKER_01
Just started.
5
SPEAKER_01
Right, and the offer was coming from someone two levels down from him.
5
SPEAKER_01
Gotcha.
5
SPEAKER_01
Right, and if it had come from,
5
SPEAKER_01
Scott Guthrie, so I got a chance to meet Scott Guthrie.
5
SPEAKER_01
Great guy, I like him.
5
SPEAKER_01
If an offer had come from him, probably would be at Microsoft right now.
5
SPEAKER_00
That d be fascinating.
5
SPEAKER_00
That would be really nice, actually, especially given what Microsoft has since done for the open source community and all those things.
5
SPEAKER_01
Yes, I think they re doing well.
5
SPEAKER_01
I really like some of the stuff they ve been doing.
5
SPEAKER_01
They re still working, and they ve hired Guido now, and they ve hired a lot of Python developers.
5
SPEAKER_01
Wait, Guido s not at Microsoft?
5
SPEAKER_01
Yeah, he works at Microsoft.
5
SPEAKER_01
Which he retired, then he came out of retirement and he s working out.
5
SPEAKER_00
I was just talking to him and he didn t mention this part.
5
SPEAKER_00
Well, I should investigate this further.
5
SPEAKER_00
Because I know he loved Dropbox, but I wasn t sure what he was doing, who he was up to.
5
SPEAKER_01
Well, he was kind of saying he d retire, but it s literally been, I
5
SPEAKER_01
five years since I last sat down and really talked to Guido, right?
5
SPEAKER_01
Guido s a technology expert, right?
5
SPEAKER_01
He s a, so I came, I was excited, because I d finally figured out the type system for NumPy.
5
SPEAKER_01
I wanted to kind of talk about that with him, and I kind of overwhelmed him.
5
SPEAKER_01
He was like.
5
SPEAKER_00
Could you stay in that, just for a brief moment, because you re a fascinating person in the history of programming.
5
SPEAKER_00
He is a fascinating person.
5
SPEAKER_00
What have you learned from Guido about programming, about life?
5
SPEAKER_01
Yeah, yeah, a lot actually.
5
SPEAKER_01
I ve been a fan of Guido s, you know, we have a chance to talk.
5
SPEAKER_01
Some, I wouldn t say, you know, we talk all the time, not at all.
5
SPEAKER_01
But we talk enough to, I respect his, like when I first started NumPy, one of the first things I did was I asked Guido for a meeting.
5
SPEAKER_01
with him and Paul Dubois in San Mateo.
5
SPEAKER_01
And I went and met him for lunch.
5
SPEAKER_01
And basically to say, maybe we can actually, part of the strategy for NumPy was to get it into Python 3 and maybe be part of Python.
5
SPEAKER_01
And so we talked about that.
5
SPEAKER_00
That s a cool conversation.
5
SPEAKER_01
And about that approach, right?
5
SPEAKER_01
I would love to be a fly in the water.
5
SPEAKER_01
That was good.
5
SPEAKER_01
And over the years for Guido, I learned
5
SPEAKER_01
So he was open.
5
SPEAKER_01
He was willing to listen to people s ideas over the years.
5
SPEAKER_01
Now generally, I m not saying universally that s been true, but generally that s been true.
5
SPEAKER_01
So he s willing to listen.
5
SPEAKER_01
He s willing to defer.
5
SPEAKER_01
On the scientific side, he would just defer.
5
SPEAKER_01
He didn t really always understand what we were doing.
5
SPEAKER_01
and he d defer.
5
SPEAKER_01
One place where he didn t enough was we missed a matrix multiply operator, like that finally got added to Python, but about 10 years later than it should have.
5
SPEAKER_01
But the reason was because nobody, it takes a lot of effort.
5
SPEAKER_01
And I learned this while I was writing NumPy, I also wrote tools to, I became a Python dev and I added some pieces of Python.
5
SPEAKER_01
like the memory view object.
5
SPEAKER_01
I wanted the structure of NumPy into Python.
5
SPEAKER_01
So we didn t get NumPy into Python, but we got the basic structure of it into Python, so you could build on it.
5
SPEAKER_01
Nobody did for a while, but eventually, database authors started to.
5
SPEAKER_01
And it s a lot better, they did.
5
SPEAKER_01
And also Antoine Petreau and Stephan Krah actually fixed the memory view object, because I wrote the underlying infrastructure in C, but the Python exposure was terrible.
5
SPEAKER_01
until they came in and fixed it, partly because I was writing NumPy and NumPy was the Python exposure.
5
SPEAKER_01
I didn t really care about if you didn t have NumPy installed.
5
SPEAKER_01
Anyway, Guido opened up ideas, technologically brilliant.
5
SPEAKER_01
I really got a lot of respect for him when I saw what he did with this type class merger thing.
5
SPEAKER_01
It was actually tricky.
5
SPEAKER_01
Right.
5
SPEAKER_01
And then, and then willing to share, willing to share his ideas.
5
SPEAKER_01
So the other thing early on in 1998, I said, I start wrote my first extension module.
5
SPEAKER_01
The reason I could is because he d written this blog post on how to do reference counting.
5
SPEAKER_01
And without it, I would have been lost.
5
SPEAKER_01
But he was willing to at least try to write this post.
5
SPEAKER_01
And so he s been motivated early on with Python.
5
SPEAKER_01
It was a computer science for everybody.
5
SPEAKER_01
He kind of had this early on desire to, oh, maybe we should be pushing programming to more people.
5
SPEAKER_01
So he had this populist notion, I guess, or populist sense.
5
SPEAKER_01
So learn that there s a certain skill, and I ve seen it in other people too, of engaging with contributors sufficiently to, because when somebody engages with you and wants to contribute to you, if you ignore them, they go away.
5
SPEAKER_01
So building that early contributor base requires real engagement.
5
SPEAKER_01
with other people, and he would do that.
5
SPEAKER_00
Can you also comment on this tragic stepping down from his position as the benevolent dictator for life over the wars?
5
SPEAKER_00
The walrus operator?
5
SPEAKER_00
The walrus operator was the last battle.
5
SPEAKER_00
I don t know if that s the cause of it, but there s this, for people who don t know, you can look up, there s the walrus operator, which looks like a colon and equal sign.
5
SPEAKER_01
Yeah, colon, equal sign.
5
SPEAKER_00
And it actually does maybe the thing that an equal sign should be doing.
5
SPEAKER_00
Yeah, maybe, right, exactly.
5
SPEAKER_00
But it s just historically, equal sign means something else.
5
SPEAKER_00
It just means assignment.
5
SPEAKER_00
So he stepped down over this.
5
SPEAKER_00
What do you think about the pressure of leadership?
5
SPEAKER_01
You mentioned the letter I wrote in NumPy at the time.
5
SPEAKER_01
That was a hard time, actually.
5
SPEAKER_01
I mean, there s been really hard times.
5
SPEAKER_01
It was hard.
5
SPEAKER_01
You get criticized, right, and you get pushed, and you get – not everybody loves what you do.
5
SPEAKER_01
Like, anytime you do anything that has impact at all, you re not universally loved, right?
5
SPEAKER_01
You get some real critics.
5
SPEAKER_01
And that s an important energy because it s impossible if you did everything right.
5
SPEAKER_01
You need people to be pushing.
5
SPEAKER_01
But sometimes people can get mean, right?
5
SPEAKER_01
People can – I prefer to get people to benefit the doubt.
5
SPEAKER_01
I don t immediately assume they have bad intentions.
5
SPEAKER_01
And maybe that doesn t happen for everybody.
5
SPEAKER_01
For whatever reason, their past or their experience with people, they sometimes have bad intentions.
5
SPEAKER_01
So they immediately attribute to you bad intentions.
5
SPEAKER_01
You re like, where did this come from?
5
SPEAKER_01
I mean, I m definitely open to criticism, but I think you re misinterpreting the whole point.
5
SPEAKER_01
Because I would get that.
5
SPEAKER_01
Certainly when I started Anaconda, I ve been
5
SPEAKER_01
Sometimes I say to people, I care enough about entrepreneurship to make some open source people uncomfortable.
5
SPEAKER_01
And I care enough about open source to make investors uncomfortable.
5
SPEAKER_01
So I sort of, you know, you create kind of doubters on both sides.
5
SPEAKER_00
So when you have, and this is just a plea to the listener and the public, I ve noticed this too, that there s a tendency, and social media makes this worse,
5
SPEAKER_00
when you don t have perfect information about the situation, you tend to fill the gaps with the worst possible, or at least a bad story that fills those gaps.
5
SPEAKER_00
And I think it s good to live life, maybe not fully naively, but filling in the gaps with the good.
5
SPEAKER_00
with the best, with the positive, with the hopeful explanation of why you see this.
5
SPEAKER_00
So if you see somebody like you trying to make money on a book about NumPy, there s a million stories around that that are positive.
5
SPEAKER_00
And those are good to think about, to project positive intent on the people.
5
SPEAKER_00
Because for many reasons, usually because people are good and they do have good intent,
5
SPEAKER_00
And also when you project that positive intent, people will step up to that too.
5
SPEAKER_00
So like it has this kind of viral nature to it.
5
SPEAKER_00
And of course, with Twitter early on, figured on Facebook is that they can make a lot of money and engagement from the negative.
5
SPEAKER_00
And so like there s this, we re fighting this mechanism, which is challenging.
5
SPEAKER_00
It s just easier to be negative.
5
SPEAKER_00
And then for some reason, something in our minds really enjoys sharing that and getting,
5
SPEAKER_00
getting all excited about the negativity.
5
SPEAKER_00
We do, yeah.
5
SPEAKER_01
Some protective mechanism, perhaps, that we re gonna get eaten if we don t.
5
SPEAKER_00
Exactly, for us to be effective as a group of people in a software engineering project, you have to project positive intent, I think.
5
SPEAKER_01
I totally agree, totally agree, and I think that s very, and so that happens in this space, but Python has done a reasonable job in the past, but here is a situation where I think it started to get this pressure where it didn t.
5
SPEAKER_01
I really didn t know enough about what happened.
5
SPEAKER_01
I ve talked to several people about it, and I know,
5
SPEAKER_01
most of the steering committee members today, one person nominated me for that role, but it s the wrong role for me right now.
5
SPEAKER_01
I have a lot of respect for the Python developer space and the Python developers.
5
SPEAKER_01
I also understand the gap between computer science Python developers and array programming developers or science developers.
5
SPEAKER_01
In fact, Python succeeds in the array space the more it has people in that boundary.
5
SPEAKER_01
There s often very few.
5
SPEAKER_01
I was playing a role in that boundary and working like everything to try to keep up with the
5
SPEAKER_01
with the what even what Gita was saying like
5
SPEAKER_01
I m a C programmer, but not a computer scientist.
5
SPEAKER_01
I was an engineer and physicist and mathematician.
5
SPEAKER_01
And I didn t always understand what they were talking about and why they would have opinions the way they did.
5
SPEAKER_01
So you have to listen and try to understand.
5
SPEAKER_01
Then you also have to explain your point of view in a way they can understand.
5
SPEAKER_01
And that takes a lot of work.
5
SPEAKER_01
And that communication is always the challenge.
5
SPEAKER_01
And it s just what we re describing here about the negativity is just another form of that.
5
SPEAKER_01
How do we come together?
5
SPEAKER_01
And it does appear we re wired anyway to at least have
5
SPEAKER_01
There s a part of us that will, enemy, friend, enemy.
5
SPEAKER_01
And we see, yeah, it s like, why are we wiring on the enemy front?
5
SPEAKER_01
So why are we pushing that?
5
SPEAKER_01
Why are we promoting that so deeply?
5
SPEAKER_00
Assume friend until proven otherwise.
5
SPEAKER_00
Yes, yes.
5
SPEAKER_00
So because you have such a fascinating mind and all of this, let me just ask you these questions.
5
SPEAKER_00
So one interesting side on the Python,
5
SPEAKER_00
history is the move from Python 2 to Python 3.
5
SPEAKER_00
You mentioned move from Python 1 to Python 2, but the move from Python 2 to Python 3 is a little bit interesting because it took a very long time.
5
SPEAKER_00
It broke in a
5
SPEAKER_00
quite a small way backward compatibility, but even that small way seemed to have been very painful for people.
5
SPEAKER_00
Is there lessons you draw from how long it took and how painful it seemed to be?
5
SPEAKER_01
Yeah, tons of lessons.
5
SPEAKER_01
Well, I mentioned here earlier that NumPy was written in 2005.
5
SPEAKER_01
It was in 2005 that I actually went to Guido to talk about getting NumPy into Python 3.
6
SPEAKER_01
Like, my strategy was to, oh, we re moving to Python 3, let s have that be, and it seems funny in retrospect because, like, wait, Python 3, that was in 2020, right, when we finally ended support for Python 2, or at least 2017.
6
SPEAKER_01
The reason, and it took a long time, a lot of time, I think it was because, well, one of the things is there wasn t much to like about Python 3.
6
SPEAKER_01
3.0, 3.1, it really wasn t until 3.3.
6
SPEAKER_01
Like, I consider Python 3.3 to be Python 3.0.
6
SPEAKER_01
It wasn t until Python 3.3 that I felt there was enough stuff in it to make it worth anybody using it.
6
SPEAKER_01
And then 3.4 started to be, oh yeah, I want that.
6
SPEAKER_01
And then 3.5, as the matrix multiply operator, and now it s like, okay, we gotta use that.
6
SPEAKER_00
Plus the libraries that started leveraging some of the features of Python 3.
6
SPEAKER_00
Exactly.
6
SPEAKER_01
So it really, the challenge was, it was, but it also illustrated a truism that,
6
SPEAKER_01
You know, when you have inertia, when you have a group of people using something, it s really hard to move them away from it.
6
SPEAKER_01
You can t just change the world on them.
6
SPEAKER_01
And Python 3, you know, it made some, I think it fixed some things Guido had always hated.
6
SPEAKER_01
I think he didn t like the fact that print was a statement.
6
SPEAKER_01
He wanted to make it a function.
6
SPEAKER_01
But in some sense, that s a bit of gratuitous change to the language.
6
SPEAKER_01
You could argue, and people have.
6
SPEAKER_01
But one of the challenges was there wasn t enough features and too many just changes without features.
6
SPEAKER_01
And so that empathy for the end user as to why they would switch wasn t there.
6
SPEAKER_01
I think also it illustrated just the funding realities.
6
SPEAKER_01
Python wasn t funded.
6
SPEAKER_01
It was also a project with a bunch of volunteer labor.
6
SPEAKER_01
It had more people, so more volunteer labor, but it was still, it was fun in the sense that at least Guido had a job.
6
SPEAKER_01
And I ve learned some of the behind the scenes on that now since, since talking to people who have lived through it.
6
SPEAKER_01
Maybe not on air, we can talk about some of that.
6
SPEAKER_01
But it s interesting to see, but Guido had a job, but his full-time job wasn t just work on Python.
6
SPEAKER_01
He had other things to do.
6
SPEAKER_01
It s wild.
6
SPEAKER_00
It is wild, isn t it?
6
SPEAKER_00
It s wild how few people are funded.
6
SPEAKER_00
Yes.
6
SPEAKER_00
And how much impact they have.
6
SPEAKER_00
Yes.
6
SPEAKER_00
Maybe that s a feature, not a bug.
6
SPEAKER_00
I don t know.
6
SPEAKER_00
Maybe, yes, exactly.
6
SPEAKER_01
At least early on.
6
SPEAKER_01
I know, yeah.
6
SPEAKER_00
It s like Olympic athletes are often severely underfunded, but maybe that s what brings out the greatness.
6
SPEAKER_01
Perhaps.
6
SPEAKER_01
Yes, correct.
6
SPEAKER_01
No, exactly.
6
SPEAKER_01
Maybe this is the essential part of it.
6
SPEAKER_01
Because I do think about that in terms of I currently have an incubator for open source startups.
6
SPEAKER_01
What I m trying to do right now is create the environment I wished had existed when I was leaving academia with NumPy and trying to figure out what to do.
6
SPEAKER_01
I m trying to create those opportunities and environments.
6
SPEAKER_01
And that s what drives me still, is how do I make the world easier for the open source entrepreneur?
6
SPEAKER_00
So let me stay, I mean I could probably stand up by it for a long time, but this is fun question.
6
SPEAKER_00
So Andrej Karpathy leads the Tesla Autopilot team and he s also one of the most like legit,
6
SPEAKER_00
programmers I know.
6
SPEAKER_00
It s like he builds stuff from scratch a lot.
6
SPEAKER_00
And that s how he builds intuition about how a problem works.
6
SPEAKER_00
He just builds it from scratch.
6
SPEAKER_00
And I always loved that.
6
SPEAKER_00
And the primary language he uses is Python for the intuition building.
6
SPEAKER_00
But he posted something on Twitter saying that they got a significant improvement
6
SPEAKER_00
on some aspect of their data loading, I think, by switching away from np.squareroot, so the NumPy s implementation of square root, to math.squareroot.
6
SPEAKER_00
And then somebody else commented that you can get even a much greater improvement by using the vanilla Python square root, which is like
6
SPEAKER_01
Power of 0.5.
6
SPEAKER_00
Power of 0.5.
6
SPEAKER_00
And it s fascinating to me, I just wanted to... Absolutely.
6
SPEAKER_00
That was some shade throwing at some... No, no.
6
SPEAKER_01
Yes, we re talking about.
6
SPEAKER_00
It s a good way to ask the trade-off between usability and efficiency, broadly in NumPy, but also in these specific weird quirks of a single function.
6
SPEAKER_01
Yep.
6
SPEAKER_01
So on that point, if you use a NumPy math function on a scalar, it s going to be slower than using a Python function on that scalar.
6
SPEAKER_01
Yeah.
6
SPEAKER_01
But because the math object in NumPy is more complicated, right?
6
SPEAKER_01
Because you can also call that math object on an array.
6
SPEAKER_01
And so effectively, it goes through a similar machine.
6
SPEAKER_01
There aren t enough of the, which you would do and you could do like checks and fast paths.
6
SPEAKER_01
So yeah, if you re basically doing a list, if you run over a list, in fact, for problems that are less than a thousand,
6
SPEAKER_01
even maybe 10,000 is probably the, if you re going more than 10,000, that s where you definitely need to be using arrays.
6
SPEAKER_01
But if you re less than that, and for reading, if you re doing a reading process, and essentially it s not compute bound, it s IO bound.
6
SPEAKER_01
And so you re really taking lists of thousand at a time and doing work on it.
6
SPEAKER_01
Yeah, you could be faster just using Python, straight up Python.
6
SPEAKER_00
See, but also.
6
SPEAKER_00
And then, this is the, sorry to interrupt, but there s the fundamental questions when you look at the long arc of history, it s very possible that NP dot square root is much faster.
6
SPEAKER_00
It could be.
6
SPEAKER_00
So like, in terms of like, don t worry about it, it s the evils of over-optimization or whatever, all the different quotes around that, is sometimes obsessing about this particular little quirk is not,
6
SPEAKER_01
For somebody like, if you re trying to optimize your path, I mean, I agree, premature optimization creates all kinds of challenges, right?
6
SPEAKER_01
Because now, but you may have to do it.
6
SPEAKER_01
I believe the quote is, it s the root of all evil.
6
SPEAKER_01
The root of all evil, right?
6
SPEAKER_01
Let s give Donald Knuth, I think, or somebody else.
6
SPEAKER_00
Well, Doc Knuth is kind of like Mark Twain, people just attribute stuff to him.
6
SPEAKER_01
And it s fine, because he s brilliant.
6
SPEAKER_01
No, I was a little tech user myself.
6
SPEAKER_01
And so I have a lot of respect.
6
SPEAKER_01
And he did more than that, of course, but yeah, someone I really appreciate in the computer science space.
6
SPEAKER_01
Yeah, I don t I think that s appropriate.
6
SPEAKER_01
There s a lot of little things like that, where people actually, if you understood it, you go, Yeah, of course, that s the case.
6
SPEAKER_01
Yeah.
6
SPEAKER_01
Like, and the other part, the other part I didn t mention, and
6
SPEAKER_01
Numba was a thing we wrote early on, and I was really excited by Numba because it s something we wanted.
6
SPEAKER_01
It was a compiler for Python syntax, and I wanted it from the beginning of writing NumPy because of this function question.
6
SPEAKER_01
The power of arrays is really that you can write functions using all of it.
6
SPEAKER_01
It has implicit looping.
6
SPEAKER_01
So you don t worry about, I write this n-dimensional for loop with four loops, four for statements.
6
SPEAKER_01
You just say, oh, big four-dimensional array.
6
SPEAKER_01
I m going to do this operation, this plus, this minus, this reduction.
6
SPEAKER_01
and you get this, it s called vectorization in other areas, but you can basically think at a high level and get massive amounts of computation done with the added benefit of, oh, it can be parallelized easily.
6
SPEAKER_01
It can be put in parallel.
6
SPEAKER_01
You don t have to think about that.
6
SPEAKER_01
In fact, it s worse to go decompose your, you write the for loops and then try to infer parallelism from for loops.
6
SPEAKER_01
That s actually a harder problem than to take the array problem and just automatically parallelize that problem.
6
SPEAKER_01
That s what,
6
SPEAKER_01
And so functions in NumPy are called universal functions, Ufuncs.
6
SPEAKER_01
So square root is an example of a Ufunc.
6
SPEAKER_01
There are others, sine, cosine, add, subtract.
6
SPEAKER_01
In fact, one of the first libraries to SciPy was something called Special, where I added Bessel functions and all these special functions that come up in physics.
6
SPEAKER_01
And I added them as Ufuncs so they could work on arrays.
6
SPEAKER_01
So I understood Ufuncs very, very well from day one inside of Numeric.
6
SPEAKER_01
That was one of the things we tried to make better in NumPy was how do they work?
6
SPEAKER_01
Can they do broadcasting?
6
SPEAKER_01
What does broadcasting mean?
6
SPEAKER_01
But one of the problems is, okay, what do I do with a Python scaler?
6
SPEAKER_01
So what happens, the Python scaler gets broadcast to a zero-dimensional array, and then it goes through the whole same machinery as if it were a 10,000-dimensional array.
6
SPEAKER_01
And then it kind of unpacks the element and then does the addition.
6
SPEAKER_01
That s not to mention the function it calls
6
SPEAKER_01
in the case of square root, is just the CLIB square root, right?
6
SPEAKER_01
In some cases, like Python s Power, there s some optimizations they re doing that can be faster than just calling the CLIB square root.
6
SPEAKER_01
In the interpreter or in the?
6
SPEAKER_01
No, in the C code, in the Python runtime.
6
SPEAKER_00
In the Python runtime, so they really optimize it and they have the freedom to do that because they don t have to worry about.
6
SPEAKER_01
It s just a scalar.
6
SPEAKER_00
It s just a scalar.
6
SPEAKER_01
Right.
6
SPEAKER_01
They don t have to worry about the fact that, oh, this could be an object with many pieces.
6
SPEAKER_01
The Ufunc machiner is also generic in the sense that typecasting and broadcasting.
6
SPEAKER_01
Broadcasting s idea of I m going to go, I have a zero-dimensional array, I have a scalar with a four-dimensional array, and I add them.
6
SPEAKER_01
Oh, I have to kind of coerce the shape of this guy to make it work against the whole four-dimensional array.
6
SPEAKER_01
So it s the idea of I can do a one-dimensional array against a two-dimensional array and have it make sense.
6
SPEAKER_00
Well, that s what NumPy does is it challenges you to reformulate, rethink your problem as a multidimensional array problem versus like move away from scalars completely.
6
SPEAKER_01
Right, exactly, exactly.
6
SPEAKER_01
In fact, that s where some of the edge cases boundaries are is that, well, they re still there, and this is where array scalars are particular.
6
SPEAKER_01
So array scalars are particularly bad in the sense that they were written so that you could optimize the math on them, but that hasn t happened.
6
SPEAKER_01
And so their default is to coerce the array scaler to a zero-dimensional array and then use the NumPy machinery.
6
SPEAKER_01
That s what, and you could specialize, but it doesn t happen all the time.
6
SPEAKER_01
So in fact, when we first wrote Numba, we d do comparisons and say, look, it s a 1,000x speedup.
6
SPEAKER_01
We were lying a little bit in the sense that, well, first do the 40x slowdown of using array scalers inside of a loop.
6
SPEAKER_01
Because if you used to use Python scalers, you d already be
6
SPEAKER_01
10 times faster.
6
SPEAKER_01
But then we would get 100 times faster over that using just compilation.
6
SPEAKER_01
But what we do is compile the loop from out of the interpreter to machine code.
6
SPEAKER_01
And then that s always been the power of Python is this extensibility so that you can, because people say, oh, Python s so slow.
6
SPEAKER_01
Well, sure, if you do all your logic in the runtime of the Python interpreter, yeah.
6
SPEAKER_01
But the power is that you don t have to.
6
SPEAKER_01
All the logic, what you do at the high level, is just high-level logic.
6
SPEAKER_01
And the actual calls you re making could be on gigabyte arrays of data, and that s all done at compiled speeds.
6
SPEAKER_01
And the fact that integration is
6
SPEAKER_01
One can happen, but two is separable.
6
SPEAKER_01
That s one of the, the language like Julia says, we re going to be all in one.
6
SPEAKER_01
You can do all of it together.
6
SPEAKER_01
And then there s, the jury s out.
6
SPEAKER_01
Is that possible?
6
SPEAKER_01
I tend to think that you re going to, there s separate concerns there.
6
SPEAKER_01
You want to precompile them, but generally you will want to precompile your
6
SPEAKER_01
Some of your loops like sci-fi is a compilation step to install sci-fi.
6
SPEAKER_01
It takes about two hours If you have many many machines, maybe you can get it down to one hour But to compile those libraries takes about takes a while.
6
SPEAKER_01
You don t want to do that at runtime You don t do that all the time.
6
SPEAKER_01
You want to have this pre-compiled binary available that you re then just linking into so there s real questions about
6
SPEAKER_01
The whole source code, running binary code is more than source code.
6
SPEAKER_01
It s creating object code, it s the linker, it s the loader, it s the how does that interpret it inside a virtual memory space.
6
SPEAKER_01
There s a lot of details there that actually I didn t understand for a long time until I read books on the topic.
6
SPEAKER_01
And it led to, the more you know, the better off you are.
6
SPEAKER_01
and you can do more details, but sometimes it helps with abstractions, too.
6
SPEAKER_00
Well, the problem, as we mentioned earlier, with abstractions is you kind of sometimes assume that whoever implemented this thing had your case in mind and found the optimal solution.
6
SPEAKER_00
Or like you assume certain things.
6
SPEAKER_00
I mean, there s a lot of, one of the really powerful things to me early on, I mean, it sounds silly to say, but with Python, probably one of the reasons I fell in love with it is dictionaries.
6
SPEAKER_00
So obviously probably most languages have some mapping concept, but it felt like it was a first class citizen and it was just my brain was able to think in dictionaries.
6
SPEAKER_00
But then there s the thing that I guess I still use to this day is order dictionaries because that seems like a more natural way to construct dictionaries.
6
SPEAKER_00
And from a computer science perspective, the running time cost is not that significant.
6
SPEAKER_00
But there s a lot of things to understand about dictionaries.
6
SPEAKER_00
that the abstraction kind of doesn t necessarily incentivize you to understand.
6
SPEAKER_01
Right, do you really understand the notion of a hash map and how that dictionary is implemented?
6
SPEAKER_01
But you re right, dictionaries are a good example of an abstraction that s powerful.
6
SPEAKER_01
And I agree with you, I love dictionaries too.
6
SPEAKER_01
It took me a while to understand that once you do, you realize, oh, they re everywhere.
6
SPEAKER_01
And Python uses them everywhere too.
6
SPEAKER_01
Like, it s actually constructed that one of the foundational things is dictionaries, and it does everything with dictionaries.
6
SPEAKER_01
So it is, it s powerful.
6
SPEAKER_01
Order dictionaries came later, but it is very, very powerful.
6
SPEAKER_01
It took me a little while coming from just the array programming entirely to understand these other objects, like dictionaries and lists and tuples and binary trees.
6
SPEAKER_01
Like I said, I wasn t a computer scientist.
6
SPEAKER_01
I studied arrays first.
6
SPEAKER_01
And so I was very array-centric.
6
SPEAKER_01
And you realize, oh, these others do have purposes and value, actually.
6
SPEAKER_00
I agree.
6
SPEAKER_00
There s a friendliness about, like one way to think about arrays is arrays are just like full of numbers, but to make them accessible to humans and make them less error prone to human users, sometimes you want to attach names, human interpretable names
6
SPEAKER_00
that are sticky to those arrays.
6
SPEAKER_00
So that s how you start to think about dictionaries.
6
SPEAKER_00
You start to convert numbers into something that s human interpretable.
6
SPEAKER_00
And that s actually the tension I ve had with NumPy because I ve built so much tooling around human interpretability and also protecting me from a year later not making the mistakes by being, I wanted to force myself to use English versus numbers.
6
SPEAKER_01
Yes, so there s a project called Label the Race.
6
SPEAKER_01
Very early it was recognized that, oh, we re indexing NumPy with just numbers, all the columns, and particularly the dimensions.
6
SPEAKER_01
I mean, if you have an image, you don t necessarily need to label each column or row.
6
SPEAKER_01
But if you have a lot of images or you have another dimension, you d at least like to label the dimension as this is X, this is Y, this is Z, or give it some human meaning or some domain-specific meaning.
6
SPEAKER_01
That was one of the impetuses for pandas, actually, was just, oh, we do need to label these things.
6
SPEAKER_01
And LabelArray was an attempt to add a lighter weight version of that.
6
SPEAKER_01
And that s an example of something I think NumPy could add, could be added to NumPy.
6
SPEAKER_01
But one of the challenges, again, how do you fund this?
6
SPEAKER_01
Like I said, one of the tragedies, I think, is that
6
SPEAKER_01
So I never had the chance to, I was never paid to work on NumPy, right?
6
SPEAKER_01
So I ve always just done it in my spare time, always taken from one thing, taken from another thing to do it.
6
SPEAKER_01
And at the time, I mean, today, it would be the wrong damn today, like paying me to work on NumPy now would not be a good use of effort.
6
SPEAKER_01
But we are finally at QuantSight Labs, I m actually paying people to work on NumPy and SciPy, which I m thrilled with, I m excited by.
6
SPEAKER_01
I ve wanted to do that, that s what I ve wanted to do from day one, it just took me a while to figure out a mechanism to do that.
6
SPEAKER_00
Even in the university setting, respecting that, pushing students, young minds, young graduate students to contribute, and then figuring out financial mechanisms that enable them to contribute.
6
SPEAKER_00
and then sort of reward them for their innovative scientific journey, that would be nice.
6
SPEAKER_00
But then also there s just a better allocation of resources.
6
SPEAKER_00
It s 20 year anniversary since 9-11 and I was just looking, we spent over $6 trillion in the Middle East after 9-11 in the various efforts there.
6
SPEAKER_00
And sort of to put politics and all that aside, it s just you think about the education system, all the other ways we could have possibly allocated that money.
6
SPEAKER_00
To me, to take it back, the amount of impact you would have by allocating a little bit of money to the programmers that build the tools that run the world is fascinating.
6
SPEAKER_00
I don t know.
6
SPEAKER_00
I think, again, there is some aspect to being broke as somewhat of a feature, not a bug.
6
SPEAKER_00
you make sure that your values... You still manage that.
6
SPEAKER_00
Right.
6
SPEAKER_00
No, I know.
6
SPEAKER_00
But I don t think that s a big part.
6
SPEAKER_00
So it s like, I think you can have enough money and actually be wealthy while maintaining your values.
6
SPEAKER_01
Agreed.
6
SPEAKER_01
Agreed.
6
SPEAKER_01
There s an old adage that, you know, nations that trade together don t go to war together.
6
SPEAKER_01
I ve often thought about, you know, nations that code together.
6
SPEAKER_01
Yeah, code together.
6
SPEAKER_01
I love that.
6
SPEAKER_01
Because one thing I love about open source is it s global.
6
SPEAKER_01
It s multinational.
6
SPEAKER_01
There aren t national boundaries.
6
SPEAKER_01
One of the challenges with business and open source is the fact that, well, business is national.
6
SPEAKER_01
Businesses are entities that are recognized in legal jurisdictions and have laws that are respected in those jurisdictions and hiring, and yet the open source ecosystem is not there.
6
SPEAKER_01
Currently, one of the problems we re solving is hiring people all over the world because
6
SPEAKER_01
It s a global effort, and I ve had the chance to work, and I love the chance.
6
SPEAKER_01
I ve never been to, like, Iran, but I once had a conference where I was able to talk to people there, right, and talk
7
SPEAKER_00
to folks in Pakistan, never been there, but we had a call, and there are people there, just scientists and normal people.
7
SPEAKER_00
And there s a certain amount of humanizing that gets away from the, we often get the memes of society that bubble up and get discussed, but the memes are not even an accurate reflection of the reality of what people are.
7
SPEAKER_01
Well, if you look at the major power centers that are leading to something like cyber war in the next few decades, it s the United States, it s Russia and China.
7
SPEAKER_01
And those three countries in particular have incredible developers.
7
SPEAKER_01
So if they work together, I think that s one way, the politicians can do their stupid bickering, but there s a layer of infrastructure, of humanity, if they collaborate together, that I think can prevent major military conflict, which would, I think, most likely happen at the cyber level versus the actual hot war level.
7
SPEAKER_01
You re right.
7
SPEAKER_01
I think that s a good prediction.
7
SPEAKER_00
Nations that code together don t go to war together.
7
SPEAKER_00
Don t go to war together.
7
SPEAKER_00
That s a hope, right?
7
SPEAKER_00
That s one of the philosophical hopes.
7
SPEAKER_01
So you mentioned the project of Numba, which is
7
SPEAKER_01
Fascinating, so from the early days, there was kind of a pushback on Python that it s not fast.
7
SPEAKER_01
You know, you see C++, if you wanna write something that s fast, you use C++.
7
SPEAKER_01
If you wanna write something that s usable and friendly but slow, you use Python.
7
SPEAKER_01
And so, what is Numba, what is its goal, how does it work?
7
SPEAKER_00
Great, yeah.
7
SPEAKER_00
Yes, that s what the argument.
7
SPEAKER_00
And the reality was people would write high-level code and use compiled code, but there s still user story, use cases, where you want to write Python, but then have it still be fast.
7
SPEAKER_00
You still need to write a for loop.
7
SPEAKER_00
Like before Numba, it was always don t write a for loop.
7
SPEAKER_00
Write it in a vectorized way, put it in an array.
7
SPEAKER_00
And often that can make a memory trade-off.
7
SPEAKER_00
Like quite often you can do it, but then you use more memory because you have to build this array of data that you don t necessarily need all the time.
7
SPEAKER_00
So Numba was, it started from a desire to have kind of a vectorized that worked.
7
SPEAKER_00
A vectorized was a tool in NumPy, it was released, you give it a Python function, and it gave you a universal function, a ufunc, that would work on arrays.
7
SPEAKER_00
So you get a function that just worked on a scalar, like you could make a, like the classic case was a simple function with an if then statement in it.
7
SPEAKER_00
So sine x over x function, sinc function.
7
SPEAKER_00
If x equals zero, return one, otherwise do sine x over x.
7
SPEAKER_00
The challenge is you don t want that loop going in Python.
7
SPEAKER_00
You want a compiled version of that.
7
SPEAKER_00
But the vectorize in NumPy would just give you a Python function.
7
SPEAKER_00
So it would take the array of numbers and at every call do a loop back into Python.
7
SPEAKER_00
So it was very slow.
7
SPEAKER_00
It gave you the appearance of a Ufunc but it was very slow.
7
SPEAKER_00
So I always wanted a vectorize that would take that Python scalar function and produce a Ufunc working on binary native code.
7
SPEAKER_00
In fact, I had somebody work on that with PyPy and see if PyPy could be used to produce a Ufunc like that early on in 2009 or something like that, 2010.
7
SPEAKER_00
It didn t work that well.
7
SPEAKER_00
It was kind of pretty bulky.
7
SPEAKER_00
But in 2012, Peter and I had just started Anaconda.
7
SPEAKER_00
I d learned to raise money.
7
SPEAKER_00
That s a different topic.
7
SPEAKER_00
But I d learned to raise money from friends, family, and fools, as they say.
7
SPEAKER_00
That s a good line.
7
SPEAKER_00
Oh, that s a good line.
7
SPEAKER_00
But we were trying to do something.
7
SPEAKER_00
We were trying to change the world.
7
SPEAKER_00
Peter and I are super ambitious.
7
SPEAKER_00
We wanted to make array computing.
7
SPEAKER_00
And we had ideas for really what s still the energy right now.
7
SPEAKER_00
How do you do at-scale data science?
7
SPEAKER_00
And we had a bunch of ideas there.
7
SPEAKER_00
But one of them, I had just talked to people about LLVM.
7
SPEAKER_00
And I was like, there s a way to do this.
7
SPEAKER_00
I heard about my friend Dave Beasley at a compiler course.
7
SPEAKER_00
So I was looking at compilers.
7
SPEAKER_00
And I realized, oh, this is what you do.
7
SPEAKER_00
And so I wrote a version.
7
SPEAKER_00
of Numba that just basically mapped Python bytecode to LLVM.
7
SPEAKER_00
Nice.
7
SPEAKER_00
Right?
7
SPEAKER_00
So, and the first version is like, this works and it produces code that s fast.
7
SPEAKER_00
This is cool for, you know, obviously a reduced subset of Python.
7
SPEAKER_00
I didn t support all of the Python language.
7
SPEAKER_00
There had been efforts to speed up Python in the past, but those efforts were, I would say, not from the array computing perspective, not from the perspective of wanting to produce a vectorized improvement.
7
SPEAKER_00
They were from a perspective of speeding up the runtime of Python, which is fundamentally hard because Python allows for some
7
SPEAKER_00
constructs that aren t, you can t speed up.
7
SPEAKER_00
It s generic, there s this variable.
7
SPEAKER_00
So I, from the start, did not try to replicate Python s semantics entirely.
7
SPEAKER_00
I said, I m gonna take a subset of the Python syntax and let people write syntax in Python, but it s kind of a new language, really.
7
SPEAKER_01
So it s almost like for loops, like focusing on for loops.
7
SPEAKER_00
For loops, scalar arithmetic, you know, typed, you know, really typed language, a typed subset.
7
SPEAKER_00
That was the key.
7
SPEAKER_00
But we wanted to add inference of types, so you didn t have to spell all the types out, because when you call a function, so Python is typed, it s just dynamically typed, so you don t tell it what the types are, but when it runs, every time an object runs, there s a type for the variables, you know what it is.
7
SPEAKER_00
And so that was, the design goals of Numba were to make it possible to write functions that could be compiled, and have them used for NumPy arrays, like they needed to support NumPy arrays.
7
SPEAKER_01
And so how does it work?
7
SPEAKER_01
Do you add a comment within Python that tells it to do, like, how do you help out the compiler?
7
SPEAKER_00
Yeah, so there isn t much, actually.
7
SPEAKER_00
You don t.
7
SPEAKER_00
It s kind of magical in the sense that it just looks at the type of the objects and then does type inference to determine any of the other intermediate variables it needs.
7
SPEAKER_00
And then it was also, because we had a use case that
7
SPEAKER_00
that could work early.
7
SPEAKER_00
One of the challenges of any kind of new development is if you have something that, to make it work, it s going to take you a long time, it s really hard to get it off the ground.
7
SPEAKER_00
If you have a project where there s some incremental story, it can start working today and solve a problem,
7
SPEAKER_00
then you can start getting it out there, getting feedback.
7
SPEAKER_00
Because Numba today, now Numba is nine years old today, right?
7
SPEAKER_00
The first two, three versions were not great, right?
7
SPEAKER_00
But they solved a problem, and so people could try it, and we could get some feedback on it.
7
SPEAKER_00
I mean, it was amazing.
7
SPEAKER_01
Not great in that it was very focused.
7
SPEAKER_00
Very fragile, very, the subset it would actually compile was small.
7
SPEAKER_00
And so if you wrote Python code and said, so the way it worked is you write a function, and you say at jit, use decorators.
7
SPEAKER_00
So decorators are just these little constructs,
7
SPEAKER_00
Decorate code with an at and then a name.
7
SPEAKER_00
the app JIT would take your Python function and actually just compile it and replace the Python function with another function that interacts with this compiled function.
7
SPEAKER_00
And it would just do that.
7
SPEAKER_00
And we went from Python bytecode, then we went to AST.
7
SPEAKER_00
I mean, writing compilers is actually, I learned a lot about why computer science is taught the way it is, because compilers can be hard to write.
7
SPEAKER_00
They use tree structures, they use all the concepts of computer science that are needed.
7
SPEAKER_00
And it s actually hard to, it s easy to,
7
SPEAKER_00
to write a compiler and then have it be spaghetti code.
7
SPEAKER_00
Like, the passes become challenging.
7
SPEAKER_00
And we ended up with three versions of Numba, right?
7
SPEAKER_00
Numba got written three times.
7
SPEAKER_01
What programming language is Numba written in?
7
SPEAKER_00
Python.
7
SPEAKER_01
Wait, okay.
7
SPEAKER_00
Yeah, Python.
7
SPEAKER_00
Really?
7
SPEAKER_00
That s fascinating.
7
SPEAKER_00
Yeah, so Python, but then the whole goal of Numba is to translate Python bytecode to LLVM.
7
SPEAKER_00
And so LLVM actually does the code generation.
7
SPEAKER_00
In fact, a lot of times I d say, yeah, it s super easy to write a compiler if you re not writing the parser nor the code generator.
7
SPEAKER_00
So for people who don t know, LLVM is a compiler itself, so you re compiling to- Yeah, it s really badly named, low-level virtual machine, which that part of it is not used.
7
SPEAKER_00
It s really low-level- Chris, he doesn t mean that.
7
SPEAKER_00
Yeah, love Chris.
7
SPEAKER_00
But the name makes you imply that the virtual machine is what it s all about.
7
SPEAKER_00
It s actually the IR and the library, the code generation.
7
SPEAKER_00
That s the real beauty of it.
7
SPEAKER_00
What I love about LLVM was the fact that it was a plateau you could collaborate on.
7
SPEAKER_00
Instead of the internals of GCC or the internals of the Intel compiler, how do I extend that?
7
SPEAKER_00
Here s a place we could collaborate.
7
SPEAKER_00
People had started before.
7
SPEAKER_00
It s a slow compiler.
7
SPEAKER_00
It s not a fast compiler.
7
SPEAKER_00
Some kind of JITs.
7
SPEAKER_00
JITs are common in the language because, one, every browser has a JavaScript JIT.
7
SPEAKER_00
It does real-time compilation of the JavaScript to machine code.
7
SPEAKER_00
For people who don t know, JIT is just-in-time compilation.
7
SPEAKER_00
Thank you.
7
SPEAKER_00
Yeah, just-in-time compilation.
7
SPEAKER_00
They re actually really sophisticated.
7
SPEAKER_00
In fact, I got jealous of how much effort was put into the JavaScript JITs.
7
SPEAKER_00
Well, it s kind of incredible what they ve done.
7
SPEAKER_00
Yes.
7
SPEAKER_00
I completely agree.
7
SPEAKER_00
I m very impressed.
7
SPEAKER_00
But, you know, Numba was an effort to make that happen with Python.
7
SPEAKER_00
And so we used some of the money raised from Anaconda to do it.
7
SPEAKER_00
And then we also applied for this DARPA grant and used some of that money to continue the development.
7
SPEAKER_00
And then we used proceeds from service projects we would do.
7
SPEAKER_00
We get consulting projects that we would then use some of the profits to invest in Numba.
7
SPEAKER_00
So we ended up with a team of two or three people working on Numba.
7
SPEAKER_00
It was a fits and starts, right?
7
SPEAKER_00
And ultimately, the fact that we had a commercial version of it also we were writing.
7
SPEAKER_00
So part of the way I was trying to fund Numba is say, well, let s do the free Numba, and then we ll have a commercial version of Numba called Numba Pro.
7
SPEAKER_00
And what Numba Pro did is it targeted GPUs.
7
SPEAKER_00
So we had the very first CudaJIT and the very first AppJIT compiler that in 2012 for 13, you could run not just a ViewFunc on CPU, but a ViewFunc on GPUs.
7
SPEAKER_00
And it would automatically paralyze it and get 1,000x speed up.
7
SPEAKER_01
And that s an interesting funding mechanism because large companies or larger companies care about speed in just this way.
7
SPEAKER_01
So it s exactly a really good way.
7
SPEAKER_00
Yeah, there s been a couple things, you know, people will pay for one, they ll pay for really good user interfaces.
7
SPEAKER_00
Right.
7
SPEAKER_00
And so and so I m always looking for what are the things people will pay for that you could actually adapt to the open source infrastructure.
7
SPEAKER_00
One is definitely user interfaces.
7
SPEAKER_00
The second is speed.
7
SPEAKER_00
Yeah, like a better runtime, faster runtime.
7
SPEAKER_01
And then when you say people, you mean like a small number of people pay a lot of money, but then there s also this other mechanism that a ton of people pay a little bit.
7
SPEAKER_01
First, we mentioned Anaconda, we mentioned friends, family, and fools.
7
SPEAKER_01
So Anaconda is yet another, so there s a company, but there s also a project that is exceptionally impactful in terms of, for many reasons, but one of which is bringing a lot more people into the,
7
SPEAKER_01
into the community of folks who use Python.
7
SPEAKER_01
So what is Anaconda?
7
SPEAKER_01
What is its goals?
7
SPEAKER_01
Maybe what is Conda versus Anaconda?
7
SPEAKER_00
Yeah, I ll tell you a little bit of the history of that.
7
SPEAKER_00
Because Anaconda, we wanted to scale Python.
7
SPEAKER_00
Peter and I had the goal of when we started Anaconda, we actually started as Continuum Analytics was the name of the company that started.
7
SPEAKER_00
It got renamed to Anaconda in 2015.
7
SPEAKER_00
But we said, we want to scale analytics.
7
SPEAKER_00
NumPy s great.
7
SPEAKER_00
Pandas is emerging.
7
SPEAKER_00
but these need to run at scale with lots of machines.
7
SPEAKER_00
The other thing we wanted to do was make user interfaces that were web.
7
SPEAKER_00
We wanted to make sure the web did not pass by the Python community, that we had a ways to translate your data science to the web.
7
SPEAKER_00
So those are the two kind of technical areas we thought, oh, we ll build products in this space.
7
SPEAKER_00
And that was the
7
SPEAKER_00
idea.
7
SPEAKER_00
Very quickly in, but of course the thing I knew how to do was to do consulting to make money and to make sure my family and friends and fools that had invested didn t lose their money.
7
SPEAKER_00
So it s a little different than if you take money from a venture fund.
7
SPEAKER_00
If you take money from a venture fund, the venture fund, they want you to go big or go home.
7
SPEAKER_00
They re kind of like expecting 9 out of 10 to fail or 99 out of 100 to fail.
7
SPEAKER_00
It s different.
7
SPEAKER_00
I was at a barbell strategy.
7
SPEAKER_00
I was like, I can t fail.
7
SPEAKER_00
I mean, I may not do super well, but I cannot lose their money.
7
SPEAKER_00
So I m going to do something I know can return a profit, but I want to have exposure to an upside.
7
SPEAKER_00
So that s what happened in Anaconda.
7
SPEAKER_00
There was lots of things we did
7
SPEAKER_00
not well in terms of that structure, and I ve learned from since and how to do it better.
7
SPEAKER_00
But we did a really good job of kind of attracting the interest around the area to get good people working and then funnel some money on some interesting projects.
7
SPEAKER_00
Super excited about what came out of our energy there, like a lot did.
7
SPEAKER_00
So what are some of the interesting projects?
7
SPEAKER_00
So Dask, Numba, Bokeh, Conda.
7
SPEAKER_00
There was a data shader, Panel, HoloViz.
7
SPEAKER_00
These are all tools that are extremely relevant in terms of helping you build applications, build tools, build faster code.
7
SPEAKER_00
There s a couple I m forgetting.
7
SPEAKER_00
Oh, JupyterLab.
7
SPEAKER_00
JupyterLab came out of this too.
7
SPEAKER_00
Fascinating.
7
SPEAKER_00
Yeah.
7
SPEAKER_01
Okay, so Bokeh does plotting?
7
SPEAKER_00
Bokeh does plotting.
7
SPEAKER_00
So Bokeh was one of the foundational things to say, I want to do plot in Python, but have the thing show up in a web.
7
SPEAKER_00
Right, that s right, that s right, that s right.
7
SPEAKER_01
And plotting, to me, still, with all due respect to Matplotlib and Bokeh, it feels like still an unsolved problem, not a solved problem.
7
SPEAKER_00
It is, it s a big problem.
7
SPEAKER_01
Right, because you re...
7
SPEAKER_01
I mean, I don t know, it s visualization broadly, right?
7
SPEAKER_00
It s so important.
7
SPEAKER_00
Yes, I think we ve got a pretty good API story around certain use cases of plotting, but there s a difference between static plots versus interactive plots versus I m an end user, I just want to write a simple, you know, Panda started the idea of here s a data frame, I m going to dot plot.
7
SPEAKER_00
I m just going to attach plot as a method to my object.
7
SPEAKER_00
which was a little bit controversial, right?
7
SPEAKER_00
But works pretty well, actually, because there s a lot less you have to pass in, right?
7
SPEAKER_00
You can just say, here s my object.
7
SPEAKER_00
You know what you are.
7
SPEAKER_00
You tell the visualization what to do.
7
SPEAKER_00
And there s things like that that have not been super well-developed entirely.
7
SPEAKER_00
But Bokeh was focused on interactive plotting.
7
SPEAKER_00
So it s a short path between interactive plotting and application, dashboard application.
7
SPEAKER_00
And there s some incredible work that got done there.
7
SPEAKER_00
And it was a hard project because then you re basically doing JavaScript and Python.
7
SPEAKER_00
So we wanted to tackle some of these hard problems and just go after them.
7
SPEAKER_00
We got some DARPA funding to help, and it was super helpful.
7
SPEAKER_00
It s a funny story there.
7
SPEAKER_00
We actually did two DARPA proposals, but one we were five minutes late for.
7
SPEAKER_00
And DARPA has a very strict cutoff window.
7
SPEAKER_00
And so we had two proposals, one for the Bokeh and one for actually Numba and the other work.
7
SPEAKER_01
Which one were you late for?
7
SPEAKER_00
the foundational numerical work.
7
SPEAKER_00
So Poki got funded.
7
SPEAKER_00
Fortunately, Chris let us use some of the money to fund still some of the other foundational work.
7
SPEAKER_00
But it wasn t as, yeah, his hands were tied.
7
SPEAKER_00
He couldn t do anything about it.
7
SPEAKER_00
That was a whole interesting story.
7
SPEAKER_00
So one of the incredible projects that you worked on is Conda.
7
SPEAKER_00
Yes.
7
SPEAKER_00
So what is Conda?
7
SPEAKER_00
So how did that come about?
7
SPEAKER_00
Yeah, Conda, it was early on, like I said, with SciPy.
7
SPEAKER_00
SciPy was a distribution, masking, and arranging a library.
7
SPEAKER_00
And you heard me talking about compiler issues and trying to get the stuff shipped and the fact that people can use your libraries if they have it.
7
SPEAKER_00
So for a long time, we d understood the packaging problem in Python.
7
SPEAKER_00
And one of the first things we did at Continuum Analytics, became Anaconda, was organize the PyData ecosystem in conjunction with NumFocus.
7
SPEAKER_00
We actually started NumFocus with some other folks in the community the same year we started Anaconda.
7
SPEAKER_00
I said, we re gonna build a corporation, but we re also gonna reify the community aspect and build a nonprofit.
7
SPEAKER_00
So we did both of those.
7
SPEAKER_01
Can we pause real quick and can you say what is PyPy, the Python package index, like this whole story of packaging in Python?
7
SPEAKER_00
Yeah, that s what I m going to get to, actually.
7
SPEAKER_00
This is exactly the journey I m on.
7
SPEAKER_00
It s to sort of explain packaging in Python.
7
SPEAKER_00
I think it s best expressed through the conversation I had with Guido at a conference where I said, so, you know, yeah, packaging is kind of a problem.
7
SPEAKER_00
And Guido said, I don t ever care about packaging.
7
SPEAKER_00
I don t use it.
7
SPEAKER_00
I don t install new libraries.
7
SPEAKER_00
I m like, I guess if you re the language creator and if you need something, you just put it in the distribution.
7
SPEAKER_00
Maybe you don t worry about packaging.
7
SPEAKER_00
But Guido has never really cared about packaging, right?
7
SPEAKER_00
And never really cared about the problem of distribution.
7
SPEAKER_00
It s somebody else s problem.
7
SPEAKER_00
And that s a fair position to take, I think, as a language creator.
7
SPEAKER_00
In fact, there s a philosophical question about, should you have different development packaging managers?
7
SPEAKER_00
Should you have a package manager per language?
7
SPEAKER_00
Is that really the right approach?
7
SPEAKER_00
I think there are some answers of
7
SPEAKER_00
It is appropriate to have development tools, and there s an aspect of a development tool that is related to packaging, and every language should have some story there to help their developers create.
7
SPEAKER_00
So you should have language-specific development tools?
7
SPEAKER_00
Language-specific development tools that relate to package managers.
7
SPEAKER_00
But then there s a very specific user story around package management that those language-specific package managers have to interact with, and currently aren t doing a good job of that.
7
SPEAKER_00
That was one of the challenges of not seeing that difference, and it still exists in the difference today.
7
SPEAKER_00
Conda always was a user, I m going to use Python to do data science.
7
SPEAKER_00
I m going to use Python to do something.
7
SPEAKER_00
How do I get this installed?
7
SPEAKER_00
It was always focused on that.
7
SPEAKER_00
So it didn t have a develop.
7
SPEAKER_00
A classic example is Pip has a Pip develop.
7
SPEAKER_00
It s like, I want to install this into my current development environment today, now.
7
SPEAKER_00
Khan doesn t have that concept because it s not part of the story.
7
SPEAKER_01
For people who don t know, Pip is a Python-specific package manager.
8
SPEAKER_01
Right.
8
SPEAKER_01
That s exceptionally popular.
8
SPEAKER_00
That s probably like the default thing you learn.
8
SPEAKER_00
It s the default user.
8
SPEAKER_00
Yeah.
8
SPEAKER_00
And so the story there emerged because what happened is in 2012, we had this meeting at the Googleplex, and Guido was there to come talk about what we re going to do, how we re going to make things work better.
8
SPEAKER_00
West McKinney, me, Peter.
8
SPEAKER_00
Peter has a great photo of me talking to Guido, and he pretends we re talking about this story.
8
SPEAKER_00
Maybe we were, maybe we weren t, but we did at that meeting talk about it and ask Guido, Guido, we need to fix packaging in Python.
8
SPEAKER_00
People can t get the stuff.
8
SPEAKER_00
And he said, go fix it yourself.
8
SPEAKER_00
I don t think we re going to do it.
8
SPEAKER_00
All right.
8
SPEAKER_00
It s the origin story right there.
8
SPEAKER_00
All right.
8
SPEAKER_00
You said, OK, you said to do this ourselves.
8
SPEAKER_00
So at the same time, people did start to work on the packaging story in Python.
8
SPEAKER_00
It just took a little longer.
8
SPEAKER_00
So in 2012, kind of motivated by our training courses we were teaching, very similar to what you just mentioned about your mother.
8
SPEAKER_00
It was motivated by the same purpose.
8
SPEAKER_00
How do we get this into people s hands?
8
SPEAKER_00
And it s this big, long process.
8
SPEAKER_00
It takes too expensive.
8
SPEAKER_00
It was actually hurting NumPy development because I would hear people were saying, don t make that change to NumPy because I just spent a week getting my Python environment, and if you change NumPy, I have to reinstall everything.
8
SPEAKER_00
Reinstalling is such a pain, don t do it.
8
SPEAKER_00
I m like, wait, okay, so now we re not making changes to a library because of the installation problem that will cause for end-users.
8
SPEAKER_00
Okay, there s a problem with installation, we ve got to fix this.
8
SPEAKER_00
We said we re going to make a distribution of Python, and we d previously done that at mDot.
8
SPEAKER_00
I wanted to make one that would give away for free, that everyone could just get.
8
SPEAKER_00
It was critical that we just get it.
8
SPEAKER_00
It wasn t tied to a product, it was just you could get it.
8
SPEAKER_00
And then we had constantly thought about, well, do we just leverage RPM?
8
SPEAKER_00
But the challenge had always been, we want a package manager that works on Windows, Mac OS X, and Linux the same, right?
8
SPEAKER_00
And it wasn t there.
8
SPEAKER_00
You don t have anything like that.
8
SPEAKER_01
You have- And for people who don t know, RPM is- Red Hat s package manager.
8
SPEAKER_01
Operating system specific package.
8
SPEAKER_00
Correct.
8
SPEAKER_01
It s an operating specific.
8
SPEAKER_01
Yes.
8
SPEAKER_01
So do you create, the design question is, do you create an umbrella package manager that works across operating systems?
8
SPEAKER_01
Yes, that was the decision.
8
SPEAKER_01
And a neighboring design question is, do you also create a package manager that spans multiple programming languages?
8
SPEAKER_00
Correct.
8
SPEAKER_00
Exactly.
8
SPEAKER_00
That was the world we faced, and we decided to go multiple operating systems, multiple, and programming language independent.
8
SPEAKER_00
Because even Python, and particularly what was important was SciPy has a bunch of Fortran in it, right?
8
SPEAKER_00
And Scikit-learn has links to a bunch of C++.
8
SPEAKER_00
There s a lot of compiled code.
8
SPEAKER_00
And the Python package managers, especially early on, didn t even support that.
8
SPEAKER_00
So in 2000, so we,
8
SPEAKER_00
We released Anaconda, which is just a distribution of libraries, but we started to work on Conda in 2012.
8
SPEAKER_00
First version of Conda came out in early 2013, summer of 2013, and it was a package manager.
8
SPEAKER_00
So you could say, Conda install scikit-learn.
8
SPEAKER_00
In fact, scikit-learn was a fantastic project that emerged.
8
SPEAKER_00
It was the classic example of the scikits.
8
SPEAKER_00
I talked to you earlier about SciPy being too big to be a single library.
8
SPEAKER_00
Well, what the community had done is said, let s make scikits.
8
SPEAKER_00
And there s scikit-image, there s scikit-learn, there s a lot of scikits.
8
SPEAKER_00
And it was a fantastic move, you know, that the community did.
8
SPEAKER_00
I didn t do it.
8
SPEAKER_00
I was like, okay, that s a good idea.
8
SPEAKER_00
I didn t like the name.
8
SPEAKER_00
I didn t like the fact that you type scikit-image.
8
SPEAKER_00
I was like, it has got to be simpler.
8
SPEAKER_00
SKlearn.
8
SPEAKER_00
We ve got to make that smaller.
8
SPEAKER_00
I don t like typing all this stuff from imports.
8
SPEAKER_00
So I was kind of a pressure that way, but I love the energy and love the fact that they went out and they did it.
8
SPEAKER_00
And lots of people, Jared Millman, and then of course, Gael, and, and there s people I m not even naming that scikit-learn really emerged as fantastic project.
8
SPEAKER_01
And the documentation around that is also incredible.
8
SPEAKER_00
And the documentation is incredible, exactly.
8
SPEAKER_01
I don t know who did that, but they did a great job.
8
SPEAKER_00
A lot of people in INRIA, a lot of people, a lot of European contributors.
8
SPEAKER_00
Andreas, there s some Andreas in the US.
8
SPEAKER_00
There s a lot of just people I just adore, I think are amazing people.
8
SPEAKER_00
Awesome use of Sci-Fi, right?
8
SPEAKER_00
I love the fact that they were using Sci-Fi effectively to do something I love, which is machine learning, but couldn t install it.
8
SPEAKER_00
Because there s so many pieces involved.
8
SPEAKER_00
So many dependencies, right?
8
SPEAKER_00
Yeah.
8
SPEAKER_00
So our use case of conda was conda install scikit-learn.
8
SPEAKER_00
Right, and it was the best way to install scikit-learn in 2013 to really 2018, 17, 18.
8
SPEAKER_00
Pip finally caught up.
8
SPEAKER_00
I still think you should con-install scikit-learn for the pip install scikit-learn, but you can pip install scikit-learn.
8
SPEAKER_00
The issue is the package they created was wheels, and pip does not handle the multi-vendor approach.
8
SPEAKER_00
They don t handle the fact you have C++ libraries you re depending on.
8
SPEAKER_00
They just stop at the Python boundary.
8
SPEAKER_00
And so what you have to do in the wheel world is you have to
8
SPEAKER_00
Vendor you have to take all the binary and vendor it now if your change happens in their lane dependency
8
SPEAKER_00
you have to redo the whole wheel.
8
SPEAKER_00
So TensorFlow is a good example, but you should not pip install TensorFlow.
8
SPEAKER_00
It s a terrible idea.
8
SPEAKER_00
People do it because the popularity of pip, many people think, oh, of course that s how I install everything in Python.
8
SPEAKER_01
Yeah, this is one of the big challenges.
8
SPEAKER_01
You take a GitHub repository or just a basic blog post, the number of time pip is mentioned over conda is like 100x to one.
8
SPEAKER_00
Correct.
8
SPEAKER_00
So it just has to do with the- And that was increasing.
8
SPEAKER_00
It wasn t true early because PIP didn t exist.
8
SPEAKER_00
Like, Conda came first.
8
SPEAKER_01
So, but that s like the long tail of the internet documentation, user generated, so that, like you think, how do I install, you Google, how do I install TensorFlow?
8
SPEAKER_01
You re just not gonna see Conda in that first page.
8
SPEAKER_01
It s not correct.
8
SPEAKER_00
Not today, you would have in 2016, 2017.
8
SPEAKER_00
And it s sad because Conda solves a lot of usability issues.
8
SPEAKER_01
Correct.
8
SPEAKER_01
Especially super challenging things, I don t know.
8
SPEAKER_01
One of the big pain points for me was just on the computer vision side, OpenCV installation.
8
SPEAKER_00
Yes, perfect example.
8
SPEAKER_01
I think, I don t know if Conda has solved that one.
8
SPEAKER_00
Conda has an OpenCV package.
8
SPEAKER_01
I don t know, I certainly know Pip has not solved
8
SPEAKER_01
I mean, there s complexities there because I actually don t know.
8
SPEAKER_01
I should probably know a good answer for this.
8
SPEAKER_01
But if you compile OpenCV with certain dependencies, you ll be able to do certain things.
8
SPEAKER_01
So there s this kind of flexibility of what options you compile with.
8
SPEAKER_01
And I don t think it s trivial to do that with Conda or with- So Conda has a notion of variance.
8
SPEAKER_00
of a package, you can actually have different compilation versions of a package.
8
SPEAKER_00
So not just the version s different, but oh, this is compiled with these optimizations on it.
8
SPEAKER_00
So it kind of does have an answer.
8
SPEAKER_00
It has those flavors, yeah.
8
SPEAKER_00
It has flavors, basically.
8
SPEAKER_00
Well, PIP, as far as I know, does not have flavors.
8
SPEAKER_00
No, no, PIP generally hasn t thought deeply about the binary dependency problem, right?
8
SPEAKER_00
And that s why, fundamentally, it doesn t work for the SciPy ecosystem.
8
SPEAKER_00
It barely, you can sort of paper over it and duct tape and it kind of works.
8
SPEAKER_00
Until it doesn t, it falls apart entirely.
8
SPEAKER_00
So it s been a mixed bag.
8
SPEAKER_00
And I ve been having lots of conversations with people over the years because, again, it s an area where if you understand some things, but not all the things, but they ve done a great job of community appeal.
8
SPEAKER_00
This is an area where I think Anaconda, as a company, needed to do some things in order to make Conda more community-centric.
8
SPEAKER_00
And I talk about this all the time.
8
SPEAKER_00
There s a balance between
8
SPEAKER_00
Every project starts with what I call company-backed open source.
8
SPEAKER_00
Even if the company is yourself, it s just one person, doing business as.
8
SPEAKER_00
But ultimately, for projects to succeed virally and become massive influencers, they have to get community people on board.
8
SPEAKER_00
They have to get other people on board.
8
SPEAKER_00
So it has to become community-driven.
8
SPEAKER_00
And a big part of that is engagement with those people, empowering people, governance around it.
8
SPEAKER_00
And what happened with Conda in the early days, PIP emerged, and we did do some good things.
8
SPEAKER_00
Conda Forge.
8
SPEAKER_00
Conda Forge community is sort of the community recipe creation community.
8
SPEAKER_00
But Conda itself, I still believe, and Peter is CEO of Anaconda.
8
SPEAKER_00
He s my co-founder.
8
SPEAKER_00
I ran Anaconda until 2017, 2018.
8
SPEAKER_01
It s Peter Still and Anna.
8
SPEAKER_00
Peter Still and Anna Konda, right.
8
SPEAKER_00
And we re still great friends.
8
SPEAKER_00
We talk all the time.
8
SPEAKER_00
I love them to death.
8
SPEAKER_00
There s a long story there about like why and how and we can cover in some other podcast perhaps.
8
SPEAKER_00
Yeah.
8
SPEAKER_00
It s sort of a more, maybe a more business focused one.
8
SPEAKER_00
But this is one area where I think Konda should be more community driven.
8
SPEAKER_00
Like he should be pushing more to get more community contributors to Konda and let the
8
SPEAKER_00
Not, like Anaconda shouldn t be fighting this battle.
8
SPEAKER_00
It s actually a, it s really a developers.
8
SPEAKER_00
Like you said, like help the developers and then they ll actually move us the right direction.
8
SPEAKER_01
That was the problem I have is many of the cool kids I know don t use Conda and that to me is confusing.
8
SPEAKER_00
It is confusing.
8
SPEAKER_00
It s really a matter of, Conda has some challenges, first of all.
8
SPEAKER_00
Conda still needs to be improved.
8
SPEAKER_00
There s lots of improvements to be made.
8
SPEAKER_00
And it s that aspect of, wait, who s doing this?
8
SPEAKER_00
And the fact that then the Pi PA really stepped up.
8
SPEAKER_00
They were not solving the problem at all.
8
SPEAKER_00
And now they kind of got to where they re solving it for the most part.
8
SPEAKER_00
And then effectively, you could get, like Conda solved a problem that was there, and it still does, and there s still great things it can do.
8
SPEAKER_00
But, and we still use it all the time at QuantSight and with other clients.
8
SPEAKER_00
But you can kind of do similar things with PIP and Docker, right?
8
SPEAKER_00
So, especially with the web development community, that part of it again is there s a lot of different kind of developers in the Python ecosystem.
8
SPEAKER_00
And there s still a lack of some clear understanding.
8
SPEAKER_00
I go to the Python conference all the time, and there s only a few people in the PyPA who get it.
8
SPEAKER_00
and then others who are just massively trumpeting the power of PIP, but just do not understand the problem.
8
SPEAKER_01
Yeah, so one of the obvious things to me from a mom, from a non-programmer perspective, is the cross-operating system usability that s much more natural.
8
SPEAKER_01
So there s people that use...
8
SPEAKER_01
Windows and just it seems much easier to to recommend conda there, but then it you should also recommend it across the board So I I ll definitely serve but what I recommend now is a hybrid I do I mean I have no is it possible to use it is it is what I like build the environment with pip with conda build an environment with conda and Then pip install on top of that.
8
SPEAKER_00
That s fine.
8
SPEAKER_00
Be careful about pip installing on
8
SPEAKER_00
OpenCV or TensorFlow.
8
SPEAKER_00
Because if somebody s allowed that, it s going to be most surely done in a way that can t be updated that easily.
8
SPEAKER_01
So install the big packages, the infrastructure, Wakanda, and then the weirdos, the weird implementation for some.
8
SPEAKER_01
There s a cool library I used.
8
SPEAKER_01
that based on your location and time of day and date, tells you the exact position of the sun relative to the earth.
8
SPEAKER_01
And it s just like a simple library, but it s very precise.
8
SPEAKER_01
And I was like, all right.
8
SPEAKER_01
That was, and it s like PIP.
8
SPEAKER_00
Well, the thing they did really well is Python developers who want to get their stuff published, you have to have a PIP recipe, right?
8
SPEAKER_00
I mean, even if it s,
8
SPEAKER_00
You know, the challenge is, and there s a key thing that needs to be added to PIP, just simply add to PIP the ability to defer to a system package manager.
8
SPEAKER_00
Like, because it s, you know, recognize you re not going to solve all the dependency problem.
8
SPEAKER_00
So let, like, give up and allow the system packager to work.
8
SPEAKER_00
That way, an account is installed and it has PIP.
8
SPEAKER_00
it would default to Conda to install its stuff, but Red Hat RPM would default to RPM to install more things.
8
SPEAKER_00
That s a key, not difficult, but somewhat work.
8
SPEAKER_00
Some work.
8
SPEAKER_00
Feature needs to be added.
8
SPEAKER_00
That s an example of something I ve known we need to do it.
8
SPEAKER_00
It s where I wish I had more money.
8
SPEAKER_00
I wish I was more successful in the business side.
8
SPEAKER_00
Trying to get there, but I wish my family, friends, and Fool community that I know was larger and had more money, because I know tons of things to do effectively with more resources.
8
SPEAKER_00
But, you know, I have not yet been successful at Channel.
8
SPEAKER_00
Tons of, you know, some, you know, I m happy with what we ve done.
8
SPEAKER_00
We ve created again at QuantSite what we created to get Anaconda started.
8
SPEAKER_00
We created Community Analytics to get Anaconda started.
8
SPEAKER_00
Done it again with QuantSite.
8
SPEAKER_00
Super excited by that.
8
SPEAKER_01
But it took three years to do it.
8
SPEAKER_01
What is QuantSight?
8
SPEAKER_01
What is its mission?
8
SPEAKER_01
We ve talked a few times about different fascinating aspects of it, but let s like big picture, what is QuantSight?
8
SPEAKER_00
Big picture of QuantSight.
8
SPEAKER_00
QuantSight is, its mission is to connect data to an open economy.
8
SPEAKER_00
So it s basically consulting of the pi data ecosystem, right?
8
SPEAKER_00
It s a consulting company.
8
SPEAKER_00
And what I ve said when I started it was we re trying to create products, people, and technology.
8
SPEAKER_00
So it s divided into two groups, and a third one as well.
8
SPEAKER_00
The two groups are a consulting services company that just helps people do data science and data engineering and data management better and more efficiently.
8
SPEAKER_00
Like full stack, full thing.
8
SPEAKER_00
Full stack, full thing.
8
SPEAKER_00
We ll help you build a infrastructure if you re using Jupyter.
8
SPEAKER_00
We do staff augmentation, need more programmers, help you use DAS more effectively, help you use GPUs more effectively.
8
SPEAKER_00
Just basically, a lot of people need help.
8
SPEAKER_00
So we do training as well to help people both
8
SPEAKER_00
immediate help and then learn from somebody.
8
SPEAKER_00
We ve added a bunch of stuff, too.
8
SPEAKER_00
We ve kind of separated some of these other things into another company called Open Teams that we currently started.
8
SPEAKER_00
One of the things I loved about what we did at Anaconda was creating a community innovation team.
8
SPEAKER_00
And so I wanted to replicate that.
8
SPEAKER_00
This time, we did a lot of innovation at Anaconda.
8
SPEAKER_00
I wanted to do innovation, but also contribute to the projects that existed, like create a place where maintainers, so the SciPy and NumPy and all these projects we already started,
8
SPEAKER_00
can pay people to work on them and keep them going.
8
SPEAKER_00
So that s labs.
8
SPEAKER_00
Quansight Labs is a separate organization.
8
SPEAKER_00
It s a nonprofit mission.
8
SPEAKER_00
The profits of Quansight help fund it.
8
SPEAKER_00
And in fact, every project that we have at Quansight, a portion of the money goes directly to Quansight Labs to help keep it funded.
8
SPEAKER_00
So we ve got several mechanisms we keep Quansight Labs funded.
8
SPEAKER_00
So I m really excited about Labs, because it s been a mission for a long time.
8
SPEAKER_01
So what kind of projects are within Labs?
8
SPEAKER_00
So Labs is working to make the software better, like make NumPy better, make SciPy better.
8
SPEAKER_00
It only works on open source.
8
SPEAKER_00
So companies do, we have a thing called a community work order, we call it.
8
SPEAKER_00
If a company says, I want to make Spyder better.
8
SPEAKER_00
Okay, cool.
8
SPEAKER_00
You can pay for a month of a developer of Spyder.
8
SPEAKER_00
or developer of NumPy or developer of SciPy, you can t tell them what you want them to do.
8
SPEAKER_00
You can give them your priorities and things you wish existed, and they ll work.
8
SPEAKER_00
on those priorities with the community to get what the community wants, and what emerges is what the community wants.
8
SPEAKER_01
Is there some aspect on the consulting side that is helping, as we were talking about morphology and so on, is there specific applications that are particularly like driving, sort of inspiring the need for updates to Cypher?
8
SPEAKER_00
Correct, absolutely.
8
SPEAKER_00
Absolutely, GPUs are absolutely one of them.
8
SPEAKER_00
GPUs.
8
SPEAKER_00
And new hardware beyond GPUs, I mean.
8
SPEAKER_00
Tesla s dojo chip.
8
SPEAKER_00
I m hoping we ll have a chance to work on that perhaps Things like that are definitely driving it.
8
SPEAKER_00
The other thing is driving is scalable like speed and scale How do I write NumPy code or NumPy light code if I wanted to run across a cluster?
8
SPEAKER_00
You know, that s Dask or maybe it s Ray.
8
SPEAKER_00
I mean, there s sort of ways to do that now and
8
SPEAKER_00
or there s Modin, and there s, so Pandas code, NumPy code, SciPy code, Scikit-learn code, that I want to scale.
8
SPEAKER_00
So that s one big area.
8
SPEAKER_01
Have you gotten a chance to chat with Andre and Elon about, because like... No, I would love to, by the way.
8
SPEAKER_00
I have not, but I d love to.
8
SPEAKER_00
I just saw their Tesla AI days video.
8
SPEAKER_00
Super excited.
8
SPEAKER_01
So this one of the, you know, I love great engineering, software engineering teams and engineering teams in general, and they re doing a lot of incredible stuff with Python.
8
SPEAKER_01
They re like revolutionary.
8
SPEAKER_01
So many aspects of the machine learning pipeline that s operating in the real world, and so much of that is Python.
8
SPEAKER_01
Like you said, the guy running, you know, Andrej Karpathy running Autopilot is tweeting about optimization of NumPy versus,
8
SPEAKER_00
I would love to talk to them.
8
SPEAKER_00
In fact, we have at QuantSight, we ve been fortunate enough to work with Facebook on PyTorch directly.
8
SPEAKER_00
So we have about 13 developers at QuantSight.
8
SPEAKER_00
Some of them are in labs working directly on PyTorch.
8
SPEAKER_00
On PyTorch, that s great.
8
SPEAKER_00
So basically when we started QuantSight, I went to both TensorFlow and PyTorch and said, hey, I want to help connect what you re doing to the broader SciPy ecosystem.
8
SPEAKER_00
Because I see what you re doing, but we have this bigger mission.
8
SPEAKER_00
We want to make sure we don t lose energy here.
8
SPEAKER_00
And Facebook responded really positively.
8
SPEAKER_00
I didn t get the same reaction.
8
SPEAKER_01
Not yet.
8
SPEAKER_01
Not yet.
8
SPEAKER_01
I love the folks at TensorFlow.
8
SPEAKER_00
I really love the folks at TensorFlow, too.
8
SPEAKER_00
They re fantastic.
8
SPEAKER_00
I think it s just how it integrates with their business.
8
SPEAKER_00
I mean, like I said, there s a lot of reasons, just the timing, the integration with their business, what they re looking for.
8
SPEAKER_00
They re probably looking for more users, and I was looking to kind of cut some development effort, and they couldn t receive that as easily, I think.
8
SPEAKER_00
So I m hoping, I m really hopeful, and love the people there.
8
SPEAKER_00
What s the idea behind OpenTeams?
8
SPEAKER_00
So OpenTeams, I m super excited about OpenTeams because it s one of the, I mentioned my idea for investing directly in open source.
8
SPEAKER_00
So that s a concept called FerroSS.
8
SPEAKER_00
But one of the things we, when we started QuantSight, we knew we would do is we develop products and ideas and new companies might come out.
8
SPEAKER_00
At Anaconda, this was clear.
8
SPEAKER_00
Anaconda, we did so much innovation that five or six companies could have come out of that.
8
SPEAKER_00
And we just didn t structure it so they could.
8
SPEAKER_00
But in fact, they have.
8
SPEAKER_00
You look at Dask, there s two companies coming out of Dask.
8
SPEAKER_00
Bokeh could be a company.
8
SPEAKER_00
There s lots of companies that could exist off the work we did there.
8
SPEAKER_00
And so I thought, oh, here s a recipe for an incubation, a concept that we could actually spawn new companies and new innovations.
8
SPEAKER_00
And then the idea has always been, well,
9
SPEAKER_00
money they earn should come back to fund the open source project.
9
SPEAKER_00
So labs, I think there should be a lot of things like QuantSight Labs.
9
SPEAKER_00
I think this concept is one that scales.
9
SPEAKER_00
You could have a lot of open source research labs.
9
SPEAKER_00
Along the way, so in 2018, when the bigger idea came, how to make open source investable, I said, oh, I need to create a venture fund.
9
SPEAKER_00
So we created a venture fund called QuantSight Initiate at the same time.
9
SPEAKER_00
It s an angel fund, really.
9
SPEAKER_00
We started to learn that process.
9
SPEAKER_00
How do we actually do this?
9
SPEAKER_00
How do we get LPs?
9
SPEAKER_00
How do we actually go in this direction and build a fund?
9
SPEAKER_00
And I m like, every venture fund should have an associated open source research lab, which is no reason.
9
SPEAKER_00
Like our venture fund, the carried interest portion of it goes to the lab.
9
SPEAKER_00
It directly will fund the lab.
9
SPEAKER_01
That s fascinating, by the way.
9
SPEAKER_01
So you use the power of the organic formation of teams in the open source community, and then naturally that leads to a business that can make a lot of money.
9
SPEAKER_01
There are some, yeah, correct.
9
SPEAKER_00
It always maintains and loops back to the open source.
9
SPEAKER_00
Loops back to open source, exactly.
9
SPEAKER_00
I mean, to me it s a natural fit.
9
SPEAKER_00
There s something, there s absolutely a repeatable pattern there.
9
SPEAKER_00
And it s also beneficial because, oh, I have natural connections to the open source if I have an open source research lab.
9
SPEAKER_00
They ll all be out there talking to people.
9
SPEAKER_00
We ve had a chance to talk to a lot of early-stage companies, and our fund focuses on the early stage.
9
SPEAKER_00
So QuantSite has the services, the lab, the fund.
9
SPEAKER_00
In that process, a lot of stuff started to happen.
9
SPEAKER_00
We started to do recruiting and support and training, and I was starting to build a bigger sales team and marketing team and people besides just developers.
9
SPEAKER_00
And one of the challenges with that is you end up with different cultural aspects.
9
SPEAKER_00
You know, there s a, in any company you go to, you kind of go, look, is this a business-led company, a developer-led company?
9
SPEAKER_00
Do they kind of coexist?
9
SPEAKER_00
What s the interface between them?
9
SPEAKER_00
There s always a bit of a tension there, like we were talking about before.
9
SPEAKER_00
You know, what is the tension there?
9
SPEAKER_00
With OpenTeams, I thought, wait a minute, we can actually just create, like this concept of QuantSite plus Labs, while it s specific to the PyData ecosystem, the concept is general for all open source.
9
SPEAKER_00
So OpenTeams emerged as a, oh, we can create a business development company for
9
SPEAKER_00
many, many quant sites, like thousands of quant sites.
9
SPEAKER_00
And it can be a marketplace to connect, essentially be the enterprise software company of the future.
9
SPEAKER_00
If you look at what enterprise software wants from the customer side, and during this journey, I ve had the chance to work and sell to lots of companies, Exxon and Shell and JP Morgan, Bank of America, like the Fortune 100.
9
SPEAKER_00
and talk to a lot of people in procurement and see what are they buying and why are they buying.
9
SPEAKER_00
So, you know, I don t know everything, but I ve learned a lot about, oh, what are they really looking for?
9
SPEAKER_00
And they re looking for solutions.
9
SPEAKER_00
They re constantly given products from the, from enterprise software.
9
SPEAKER_00
Here s open source lead enterprise software.
9
SPEAKER_00
Now I buy it and then they have to stitch it together into a solution.
9
SPEAKER_00
Open source is fantastic for gluing those solutions together.
9
SPEAKER_00
So whereas they keep getting new platforms they re trying to buy, what most enterprises want is tools that they can customize that are as inexpensive as they can.
9
SPEAKER_01
Yeah, and so you always want to maintain the connection to the open source, because that s the way the tools.
9
SPEAKER_00
Yeah, so OpenTeams is about solving enterprise software problems.
9
SPEAKER_01
Brilliant, brilliant idea, by the way.
9
SPEAKER_00
With a connect, but we do it honoring the topology.
9
SPEAKER_00
We don t hire all the people.
9
SPEAKER_00
We are a network connecting the sales energy and the procurement energy, and we were on the business side, get the deals closed, and then have a network of partners, like QuantSite and others, who we hand the deals to.
9
SPEAKER_00
to actually do the work.
9
SPEAKER_00
And then we have to maintain, I feel like we have to maintain some level of quality control, so that the client can rely on open teams to ensure the delivery.
9
SPEAKER_00
It s not just, here s a lead, go figure that out.
9
SPEAKER_00
But no, we re gonna make sure you get what you need.
9
SPEAKER_01
Right?
9
SPEAKER_01
By the way, it s such a skill, and I don t know if I have the patience, or ever will have the patience to talk to the business people, or more specifically, I mean, there s all kinds of flavors of business people, or like marketing people.
9
SPEAKER_00
There s a challenge, I hear what you re saying, because I ve had the same challenge.
9
SPEAKER_00
And it s true, there s sometimes you think, okay, this is way overwrought.
9
SPEAKER_01
You have to become an adult, because the companies have needs, they have ways to make money, and they also want to learn and grow, and it s your job to kind of educate them in the best way, like the value of open source, for example.
9
SPEAKER_00
Right.
9
SPEAKER_00
And I m really grateful for all my experiences over the past 14 years, understanding that side of it and still learning for sure, but not just understanding from companies, but also dealing with marketing professionals and sales professionals and people that make a career out of that and understanding what they re thinking about and also understanding, well, let s make this better.
9
SPEAKER_00
Like we can really make a place, like open teams I see as the transmission layer between companies and open source communities.
9
SPEAKER_00
producing enterprise software solutions.
9
SPEAKER_00
Today we re taking on SAS and MATLAB and tools that we know we can replace for folks.
9
SPEAKER_00
Really, anytime you have a software tool at an organization where you have to do a lot of customization to make it work for you.
9
SPEAKER_00
It s not you re just buying this thing off the shelf and it works.
9
SPEAKER_00
It s like, okay, you buy this system and then you customize it a lot, usually with expensive consultants, to actually make it work for you.
9
SPEAKER_00
All of those should be replaced by open source foundations with the same customization.
9
SPEAKER_01
You re doing such important work, such important work in these giant organizations that are doing exactly that, taking some proprietary software and hiring a huge team of consultants that customize it.
9
SPEAKER_01
And then that whole thing gets outdated quick.
9
SPEAKER_01
Correct.
9
SPEAKER_01
And so, I mean, that s brilliant.
9
SPEAKER_01
The one solution to that
9
SPEAKER_01
is kind of what Tesla s doing a little bit of, which is basically build up a software engineering team.
9
SPEAKER_01
Like build a team from scratch.
9
SPEAKER_00
Build a team from scratch.
9
SPEAKER_00
And companies are doing it well, that s what they re doing right now.
9
SPEAKER_00
And that s okay.
9
SPEAKER_01
And you re creating a topology for some of that.
9
SPEAKER_00
You re right, you just don t have to do it.
9
SPEAKER_00
That s not the only answer.
9
SPEAKER_00
And so other companies can access this, be more accessible.
9
SPEAKER_00
We usually say Open Team is the future of enterprise software.
9
SPEAKER_00
We re still early.
9
SPEAKER_00
This idea just percolated over the past year as we ve kind of grown QuantSight and realized the extensibility of it.
9
SPEAKER_00
We just finished our seed round to help get more salespeople and then push the messaging correctly.
9
SPEAKER_00
There s lots of tools we re building to make this easier.
9
SPEAKER_00
We want to automate the processes.
9
SPEAKER_00
We feel like a lot of the power is the efficiency of the sales process.
9
SPEAKER_00
There s a lot of wasted energy in small teams and the sales energy to get into large companies and make a deal.
9
SPEAKER_00
There s a lot of money spent on that process.
9
SPEAKER_01
So creating the tools and processes for that sales.
9
SPEAKER_00
So it makes that super seamless.
9
SPEAKER_00
So a single company can go, oh, I ve got my contract with OpenTeams.
9
SPEAKER_00
We ve got a subscription they can get.
9
SPEAKER_00
They can make that procurement seamless.
9
SPEAKER_00
And then the fact they have access to the entire open source ecosystem.
9
SPEAKER_00
So we have a part of our work that s embracing open source ecosystems and making sure we re doing things useful for them.
9
SPEAKER_00
We re serving them.
9
SPEAKER_00
and then companies making sure they re getting solutions they care about, and then figuring out which targets we have.
9
SPEAKER_00
We re not taking on all of enterprise software yet, but we re step by step.
9
SPEAKER_01
The idea and the vision is brilliant.
9
SPEAKER_01
Can I ask you, why do you think Microsoft bought GitHub, and what do you think is the future of GitHub?
9
SPEAKER_00
Great point.
9
SPEAKER_00
I thought it was a brilliant move.
9
SPEAKER_00
I think they did because Microsoft has always had a developer-centric culture.
9
SPEAKER_00
Like, they always have.
9
SPEAKER_00
Like, one of the things Microsoft s always done well is understand that their power is the developers, right?
9
SPEAKER_00
It s been, you know, Ballmer didn t necessarily make a good meme about how he approached that, but they re broadening that.
9
SPEAKER_00
I think that s why, because they recognize GitHub is where developers are at.
9
SPEAKER_01
But do they have a vision like open teams type of situation?
9
SPEAKER_00
I don t think so yet.
9
SPEAKER_01
Are they just basically throwing money at developers to show their support?
9
SPEAKER_01
I think so.
9
SPEAKER_01
Without a topology, like you put it, like a way to leverage that, like to give developers actual money.
9
SPEAKER_00
Right.
9
SPEAKER_00
I don t think so.
9
SPEAKER_00
I think there s still – it s an enterprise software company and they make a bunch of money.
9
SPEAKER_00
They make a bunch of games.
9
SPEAKER_00
They re a big company and they sell products.
9
SPEAKER_00
I think part of it is they know there s opportunity to make money from GitHub.
9
SPEAKER_00
There s definitely a business there to sell to developers or to sell to people using development.
9
SPEAKER_00
I think there s part of that.
9
SPEAKER_00
I think part of it is also they had definitely wanted to recognize that you need to value open source to get great developers, which is an important concept that was emerging over the past 10 years.
9
SPEAKER_00
we were able to convince J.P.
9
SPEAKER_00
Morgan to support PyData because of that fact, right?
9
SPEAKER_00
That was where the money for them putting a couple hundred thousand into supporting PyData for several conferences was they want developers.
9
SPEAKER_00
And they realized that developers want to participate in open source.
9
SPEAKER_00
So enterprise software folks don t always understand how their software gets used.
9
SPEAKER_00
Having spent a lot of time on the floors at J.P.
9
SPEAKER_00
Morgan, at InShell, at ExxonMobil, you see, oh, these companies have large development teams.
9
SPEAKER_00
And then they re kind of dealing with what s being delivered to them.
9
SPEAKER_00
So I really feel kind of a privilege that I had a chance to learn some of these people and see what they re doing and even work alongside them, you know, as a consultant, using open source and trying to think, how do we make this work inside of our large organization?
9
SPEAKER_01
Some of it is actually, for a large organization, some of it is messaging to the world that you care about developers and you re the cool, you care.
9
SPEAKER_01
Like for example, like if Ford, because I talked to them, like car companies, right?
9
SPEAKER_01
They want to attract, you know, you want to take on Tesla and Autopilot, you want to take that, right?
9
SPEAKER_01
And so what do you do there?
9
SPEAKER_01
You show that you re cool.
9
SPEAKER_01
Like you try to show off that you care about developers and they have a lot of trouble doing that.
9
SPEAKER_01
And like one way, I think like Ford should have bought GitHub.
9
SPEAKER_01
It s just a show off thing.
9
SPEAKER_01
Like these old school companies, and it s in a lot of different industries, there s probably different ways, it s probably an art to show that you care to developers.
9
SPEAKER_01
And the developers, it s exactly what you, like for example, just spitballing here, but like Ford or somebody like that could give,
9
SPEAKER_01
$100 million to the development of NumPy and literally look at the top most popular projects in Python and just say, we re just going to give money.
9
SPEAKER_01
That s going to immediately make you cool.
9
SPEAKER_00
They could actually.
9
SPEAKER_00
In fact, we set up NumFocus to make it easy.
9
SPEAKER_00
But the challenge was also you have to have some business development.
9
SPEAKER_00
Like, it s a bit of a seeding problem, right?
9
SPEAKER_00
And you look at how, I ve talked to the folks at Linux Foundation, I know how they re doing it, I know how, and starting NumFocus, because we had two babies in 2012, one was Anaconda, one was NumFocus, right?
9
SPEAKER_00
And they were both important efforts, they had distinct journeys, and super grateful that both existed, and still grateful both exist.
9
SPEAKER_00
But there s different energies in getting donations as there is getting, this is important to my business.
9
SPEAKER_00
Like I m selling you something, I m gonna make money this way.
9
SPEAKER_00
If you can tie the message to an ROI for the company, it becomes a no-brainer.
9
SPEAKER_00
That s more effective.
9
SPEAKER_00
It s much more effective, right?
9
SPEAKER_00
And there are rational arguments to make.
9
SPEAKER_00
I ve tried to have conversations with especially marketing departments.
9
SPEAKER_00
Like very early on it was clear to me that, oh,
9
SPEAKER_00
you could just take a fraction of your marketing budget and just spend it on open source development, and you get better results from your marketing.
9
SPEAKER_01
Because... Sorry, I m gonna try not to go on a rant here.
9
SPEAKER_01
What have you learned from the interaction with the marketing folks on that kind of, because you gave a great example of something that will obviously be a much better investment in terms of marketing, is supporting open source projects.
9
SPEAKER_00
The challenge is not dissimilar from the challenge you have in academia at the different colleges.
9
SPEAKER_00
Right?
9
SPEAKER_00
Knowledge gets very specific and very channeled.
9
SPEAKER_00
Right?
9
SPEAKER_00
And so people get, they get a lot of learning in the thing they know about.
9
SPEAKER_00
And it s hard then to bridge that and to get them to think differently enough to
9
SPEAKER_00
have a sense that you might have something to offer, because it s different.
9
SPEAKER_00
It s like, well, how do I implement that?
9
SPEAKER_00
What do I do with that?
9
SPEAKER_00
Which budget do I take from?
9
SPEAKER_00
Do I slow down my spend on Google ads or my spend on Facebook ads, or do I not hire a content creator?
9
SPEAKER_00
There s an operational aspect to that, that you have to be the CMO.
9
SPEAKER_00
or the CEO, you have to get the right level.
9
SPEAKER_01
So you have to hire at a high position level, people that care about this.
9
SPEAKER_00
Or they won t know how.
9
SPEAKER_00
And because you can also do it very clumsily.
9
SPEAKER_00
And I ve seen, because you can, you absolutely have to honor and recognize the people you re going to and the fact that if you just throw money at them, it could actually create more problems.
9
SPEAKER_01
Can I just say, this is not you saying, can I just, because I just need, I need to say this.
9
SPEAKER_01
I ve been very surprised
9
SPEAKER_01
how often marketing people are terrible at marketing.
9
SPEAKER_01
I feel like the best marketing is doing something novel and unique that anticipates the future.
9
SPEAKER_01
It feels like so much of the marketing practice is like what they took in school or maybe they re studying for what was the best thing that was done in the past decade and they re just repeating that over and over, as opposed to innovating, like taking the risk
9
SPEAKER_01
To me, marketing is taking the big risk.
9
SPEAKER_00
That s a great point.
9
SPEAKER_01
And being the first one to risk.
9
SPEAKER_00
Yeah, there s an aspect of data observation from that risk, right, that s, I think, could share to what they re doing already.
9
SPEAKER_00
But it absolutely, it s about, I think it s content.
9
SPEAKER_00
Like, there s this whole world on content marketing that you could almost say, well, yeah, it can get over, you can get inundated with stuff that s not relevant to you.
9
SPEAKER_00
Whereas what you re saying would be highly relevant and highly useful and highly beneficial.
9
SPEAKER_01
Yeah, but it s risky.
9
SPEAKER_01
I mean, that s why there s a lot of innovative ways of doing that.
9
SPEAKER_01
Tesla s an example of people that basically don t do marketing.
9
SPEAKER_01
They do marketing in a very, it s like Elon hired a person who s just good at Twitter for running Tesla s Twitter account.
9
SPEAKER_01
I mean, that s exactly what you want to be doing.
9
SPEAKER_01
You want to be constantly innovating.
9
SPEAKER_00
There s an aspect of telling, I mean, I ve definitely seen people doing great work where you re not talking about it.
9
SPEAKER_00
Like, I would say that s actually a problem I have right now with Quansight Labs.
9
SPEAKER_00
Quansight Labs has been doing amazing work, really excited about it, but we have not been talking about it enough.
9
SPEAKER_00
We haven t been.
9
SPEAKER_01
And there s different ways to talk about it.
9
SPEAKER_01
There s different ways to, there s different channels through which to communicate.
9
SPEAKER_01
There s also, like, I ll just throw some shade at companies I love
9
SPEAKER_01
So, for example, iRobot, I just had a conversation with them, they make Roombas, and I think they re incredible robots, but every time they do marketing type stuff, it just looks so corporate.
9
SPEAKER_01
And to me,
9
SPEAKER_01
the incredible, maybe wrong in the case of iRobot, I don t know, but to me when you re talking about engineering systems, it s really nice to show off the magic of the engineering and the software and all the geniuses behind this product and the tinkering and the raw authenticity of what it takes to build that system versus the marketing people who want to have pretty people standing there all pretty with the robots moving perfectly.
9
SPEAKER_01
So to me, there s some aspect, it s like speaking to the hackers, you have to throw some bones, some care towards the engineers, the developers, because there s some aspect, one, for the hiring, but two, there s an authenticity to that kind of communication that s really inspiring to the end user as well.
9
SPEAKER_01
Like if they know that brilliant people, the best in the world are working at your company, they start to believe that that product that you re creating is really good.
9
SPEAKER_00
Because your initial reaction would be, wait, there s different users here.
9
SPEAKER_00
Why would you do that?
9
SPEAKER_00
My wife bought a Roomba.
9
SPEAKER_00
And she loves developers.
9
SPEAKER_00
She loves me.
9
SPEAKER_00
But she doesn t care about that.
9
SPEAKER_00
So essentially what you said is actually the authenticity, because everyone has a friend.
9
SPEAKER_00
Everyone knows people.
9
SPEAKER_00
There s word of mouth.
9
SPEAKER_00
Word of mouth is so, so powerful.
9
SPEAKER_00
Yeah, exactly.
9
SPEAKER_00
That s interesting.
9
SPEAKER_00
Because I think it s the lack of that realization.
9
SPEAKER_00
There s this halo effect that influences your general marketing.
9
SPEAKER_01
I, for some stupid reason, I do have a platform and it seems that the reason I have a platform, many others like me, millions of others, is like the authenticity and like we get excited naturally about stuff.
9
SPEAKER_01
And like, I don t want to get excited about that iRobot video because it s boring, it s marketing, it s corporate, as opposed to, I wanted to do some fun, this is me, like a shout out to iRobot, is they re not letting me get into the robot.
9
SPEAKER_00
Yeah, well, there s an aspect that could be benefiting from a culture of modularity, like add-ons, and that could actually dramatically help.
9
SPEAKER_00
You ve seen that over history.
9
SPEAKER_00
I mean, Apple is an example of a company like that.
9
SPEAKER_00
I can see what your point is, is that you have something that needs to be adopted broadly.
9
SPEAKER_00
The concept needs to be adopted broadly.
9
SPEAKER_00
And if you want to go beyond this one device, you need to engage this community.
9
SPEAKER_01
Yeah, and connecting to the open source, as you said.
9
SPEAKER_01
I ve got to ask you.
9
SPEAKER_01
You re a programmer, one of the most impactful programmers ever.
9
SPEAKER_01
You ve led many programmers, you lead many programmers.
9
SPEAKER_01
What are some, from a programmer perspective, what makes a good programmer?
9
SPEAKER_01
What makes a productive programmer?
9
SPEAKER_01
Is there a device you can give?
9
SPEAKER_01
to be a great programmer in this world?
9
SPEAKER_00
That s a great, great question.
9
SPEAKER_00
And there are times in my life I d probably answer this even better than I hope maybe give an answer today.
9
SPEAKER_00
Because I ve thought about this numerous times.
9
SPEAKER_00
Like right now, I ve spent on so much time recently hiring salespeople that... That your mind is a little bit on something else.
9
SPEAKER_00
That my mind is a little bit on something else.
9
SPEAKER_00
But I
10
SPEAKER_00
reflecting on the past and also, you know, I have some really, the only way I can do this is I have some really great programmers that I work with who lead the teams that they lead.
10
SPEAKER_00
And my goal is to inspire them and hopefully help them, encourage them and help them encourage with their teams.
10
SPEAKER_00
I would say there s a number of things, a couple of things.
10
SPEAKER_00
One is curiosity.
10
SPEAKER_00
Like, I think a programmer without curiosity
10
SPEAKER_00
is mundane.
10
SPEAKER_00
You ll lose interest.
10
SPEAKER_00
You won t do your best work.
10
SPEAKER_00
So it s an affect.
10
SPEAKER_00
Have some curiosity about things.
10
SPEAKER_00
I think, two, don t try to do everything at once.
10
SPEAKER_00
Recognize that we re limited as humans.
10
SPEAKER_00
You re limited as a human.
10
SPEAKER_00
And each one of us are limited in different ways.
10
SPEAKER_00
We all have our different strengths and skills.
10
SPEAKER_00
So it s adapting the art of programming to your skills.
10
SPEAKER_00
One of things that always works is to limit what you re trying to solve.
10
SPEAKER_00
If you re part of a team, usually maybe somebody else has put the architecture together and they ve gotten given a portion for you if you re young.
10
SPEAKER_00
If you re not part of a team, it s sort of breaking down the problem into smaller parts is essential for you to make progress.
10
SPEAKER_00
It s very easy to take on a big project and try to do it all at once, and you get lost, and then you do it badly.
10
SPEAKER_00
So thinking about very concretely what you re doing, defining the inputs and outputs, defining what you want to get done.
10
SPEAKER_00
Even just talking about that and like writing down before you write code, just what are you trying to accomplish?
10
SPEAKER_00
I mean, very specific about it really, really helps.
10
SPEAKER_00
I think using other people s work, right?
10
SPEAKER_00
Don t be afraid that somehow you re like, you should do it all.
10
SPEAKER_00
Nobody does.
10
SPEAKER_00
Stand on the shoulders of giants.
10
SPEAKER_00
And copy and paste from Stack Overflow.
10
SPEAKER_00
Copy and paste from Stack Overflow.
10
SPEAKER_00
But don t just copy and paste.
10
SPEAKER_00
That s particularly relevant in the era of codex and the auto-generated code, which is essentially, I see as an indexing of Stack Overflow.
10
SPEAKER_00
Right, exactly.
10
SPEAKER_00
It s a search engine.
10
SPEAKER_00
It s a search engine over Stack Overflow, basically.
10
SPEAKER_00
We ve had this for a while.
10
SPEAKER_00
But really, you want to cut and paste, but not blindly.
10
SPEAKER_00
Absolutely have cut and paste to understand.
10
SPEAKER_00
But then you understand, oh, this is what this means.
10
SPEAKER_00
Oh, this is what it s doing.
10
SPEAKER_00
And understand as much as you can.
10
SPEAKER_00
So it s critical.
10
SPEAKER_00
That s where the curiosity comes in.
10
SPEAKER_00
If you re just blindly cutting and pasting, you re not going to understand.
10
SPEAKER_00
And so understand.
10
SPEAKER_00
And then be sensitive to hype cycles.
10
SPEAKER_00
Every few often there s always a, oh, test-driven development is the answer.
10
SPEAKER_00
Oh, object-oriented is the answer.
10
SPEAKER_00
Oh, there s always an answer.
10
SPEAKER_00
Agile is the answer.
10
SPEAKER_00
be cautious of jumping onto a hype cycle.
10
SPEAKER_00
Like, likely there s signal, like there s a thing there that s actually valuable you can learn from, but it s almost certainly not the answer to everything you need.
10
SPEAKER_01
What lessons do you draw from you having created NumPy and SciPy, like in service of sort of answering the question of what it takes to be a great programmer and giving advice to people?
10
SPEAKER_01
How can you be the next person to create a SciPy?
10
SPEAKER_00
Yeah, so one is listen.
10
SPEAKER_00
To?
10
SPEAKER_00
Listen.
10
SPEAKER_00
To who?
10
SPEAKER_00
To people that have a problem.
10
SPEAKER_00
Right?
10
SPEAKER_00
Which is everybody, right?
10
SPEAKER_00
But listen, and listen to many.
10
SPEAKER_00
And then try to, and then do.
10
SPEAKER_00
You re gonna have to do an experiment.
10
SPEAKER_00
Do, fall down, don t be afraid to fall down.
10
SPEAKER_00
Don t be afraid, the first thing you do is probably gonna suck.
10
SPEAKER_00
And that s okay, right?
10
SPEAKER_00
It s honestly, I think iteration is the key to innovation.
10
SPEAKER_00
And it s almost that psychological,
10
SPEAKER_00
hesitation we have to just iterate.
10
SPEAKER_00
Like, yeah, we know it s not great, but next time it ll be better.
10
SPEAKER_00
I mean, just keep learning and keep improving.
10
SPEAKER_00
So it s an attitude.
10
SPEAKER_00
And then it doesn t take intense concentration, right?
10
SPEAKER_00
Good things don t happen just
10
SPEAKER_00
It s not quite like TikTok or like Facebook.
10
SPEAKER_00
You can t scroll your way to good programming, right?
10
SPEAKER_00
There are sincere hours of deep, don t be afraid of the deep problem.
10
SPEAKER_00
Often people will run away from something because, oh, I can t solve this.
10
SPEAKER_00
And you might be right, but give it an hour.
10
SPEAKER_00
Give it a couple of hours and see.
10
SPEAKER_00
And just five minutes is not gonna give you that.
10
SPEAKER_01
Was it lonely when you were building SciPy and NumPy?
10
SPEAKER_00
Hugely, yeah, absolutely lonely in the sense of,
10
SPEAKER_00
You have to have an inner drive, and that inner drive for me always comes from, I have to see that this is right in some angle.
10
SPEAKER_00
I have to believe it, that this is the right approach, the right thing to do.
10
SPEAKER_00
With SciPy, it was like, oh yeah, the world needs libraries in Python.
10
SPEAKER_00
Clearly Python s popular enough with enough influential people to start, and it needs more libraries.
10
SPEAKER_00
So that is a good in and of itself, so I m gonna go do that good.
10
SPEAKER_00
So find a good, find a thing that you know is good, and just work on it.
10
SPEAKER_00
So that has to happen, and it is.
10
SPEAKER_00
And you kind of have to have enough realization of your mission to be okay with the naysayer or the fact that not everybody joins you up front.
10
SPEAKER_00
In fact, one thing I ve talked to people a lot, I ve seen a lot of projects come and some fail.
10
SPEAKER_00
Not everything I ve done has actually worked perfectly.
10
SPEAKER_00
I ve tried a bunch of stuff that, okay, that didn t really work, or this isn t working, and why.
10
SPEAKER_00
But you see the patterns.
10
SPEAKER_00
And one of the key things is you can t even know for
10
SPEAKER_00
I say 18 months right now.
10
SPEAKER_00
If you re starting a new project, you ve got to give it a good 18-month run before you even know if the feedback s there.
10
SPEAKER_00
You re not going to know in six months.
10
SPEAKER_00
You might have the perfect thing, but six months from now, it s still emerging.
10
SPEAKER_00
Give it time because you re dealing with humans, and humans have an inertia energy that just doesn t change that quickly.
10
SPEAKER_01
Let me ask a silly question, but like you said, you re focused on the sales side of things currently, but back when you were actively programming, maybe in the 90s, you talked about IDs.
10
SPEAKER_01
What s a setup that you have that brings you joy?
10
SPEAKER_01
Keyboard, number of screens, Linux?
10
SPEAKER_00
I do still like to program some.
10
SPEAKER_00
It s not as much as I used to.
10
SPEAKER_00
I have two projects I m super interested in.
10
SPEAKER_00
I m trying to find funding for them, trying to figure out some good teams for them, but I could talk about those.
10
SPEAKER_00
I m an Emacs guy.
10
SPEAKER_00
Great, thank the superior editor, everybody.
10
SPEAKER_01
I don t often delete tweets, but one of the tweets I deleted when I said Emacs was better than Vim, and then the hate I got from them, I was like,
10
SPEAKER_00
I m walking away from this.
10
SPEAKER_00
I m bored.
10
SPEAKER_00
I do too.
10
SPEAKER_00
I don t push it.
10
SPEAKER_00
I mean, I m not.
10
SPEAKER_00
I m just joking, of course.
10
SPEAKER_00
Yeah, exactly.
10
SPEAKER_00
It s kind of like, but people do take the editor seriously, right?
10
SPEAKER_00
I did as a joke.
10
SPEAKER_00
It s your life.
10
SPEAKER_01
It is, but there s something beautiful to me about Emacs, but there s, for people that love them, there s something beautiful to them about that.
10
SPEAKER_00
There is.
10
SPEAKER_00
I mean, I do use them for quick editing.
10
SPEAKER_00
Like, command line, if I send quick editing, I will still sometimes use it, but not much.
10
SPEAKER_00
Like, it s simple, correct a single editor character.
10
SPEAKER_00
So, when you were developing SciPy, you were using Emacs?
10
SPEAKER_00
Yeah, so I ve been umpire already in an Emacs on a Linux box and CVS and then SVN version control.
10
SPEAKER_00
Git came later, like Git has, I love distributed branch stuff.
10
SPEAKER_00
I think Git is pretty complicated, but I love the concept.
10
SPEAKER_00
And I also, of course, GitHub is, and then GitLab make Git.
10
SPEAKER_00
definitely consumable, but that came later.
10
SPEAKER_00
Did you ever touch Lisp at all?
10
SPEAKER_00
What were your emotional feelings about all the parentheses?
10
SPEAKER_00
Yeah, so great question.
10
SPEAKER_00
So I find myself appreciating Lisp today much more than I did early, because when I came to programming, I knew programming, but I was a domain expert, right?
10
SPEAKER_00
And to me, the parentheses were in the way.
10
SPEAKER_00
It s like, wow, there s just all this, it just gets in the way of my thinking about what I m doing, so why would I have all these, right?
10
SPEAKER_00
That was my initial reaction to it, you know now as I appreciate kind of the structure that kind of naturally maps to the to a logical thinking about a program I can appreciate them right and why it s actually you could you could create editors that make it not so
10
SPEAKER_00
problematic, right, honestly.
10
SPEAKER_00
So I actually have a much more appreciation of Lisp and things like Clojure and there s Hy-Vee, which is a Python, you know, a Lisp that compiles the Python bytecode.
10
SPEAKER_00
I think it s challenging, like typically these languages are, you know, I even saw a whole data science programming system in Lisp that somebody created, which is, you know, cool.
10
SPEAKER_00
But again, I think it s the lack of recognition of the fact that there exists what I call occasional programmers.
10
SPEAKER_00
People are never going to be programmers for a living.
10
SPEAKER_00
They don t want to have all this cuteness in their head.
10
SPEAKER_00
It s why basic, you know, Microsoft had the right idea with basic in terms of having that be the language of
10
SPEAKER_00
Visual Basic, the language of Excel and SQL Server, they should have converted that to Python 10 years ago.
10
SPEAKER_00
The world would be a better place if they had, but.
10
SPEAKER_01
There s also, there s a beauty and a magic to the history behind a language, and Lisp, you know, some of the most interesting people in the history of computer science and artificial intelligence have used Lisp, so.
10
SPEAKER_00
Yes.
10
SPEAKER_01
You feel.
10
SPEAKER_00
Well, especially that language, when you have a language, you can think in it.
10
SPEAKER_01
Yeah.
10
SPEAKER_00
And it helps you think better.
10
SPEAKER_01
And it attracts certain kinds of people that think in a certain kind of way, and then that s there.
10
SPEAKER_01
Okay, so what about, like, small laptop with a tiny keyboard, or is there, like, three screens?
10
SPEAKER_00
You know, good question.
10
SPEAKER_00
I ve never gotten into the many screens, to be honest.
10
SPEAKER_00
I mean, and maybe it s because in my head I kind of just, I just swap between windows.
10
SPEAKER_00
Like, partly because I guess I really can t process three screens at once anyway.
10
SPEAKER_00
I just am looking at one, and I just flip.
10
SPEAKER_00
I flip an application open.
10
SPEAKER_00
So where it s really helpful is actually when I m trying to do, here s data, and I want to input it from here.
10
SPEAKER_00
This is the only time I really need another screen.
10
SPEAKER_01
So now, because you re both a developer, lead developers, but then there s also these businesses, and there s salespeople, and you re working with large companies.
10
SPEAKER_01
Operations people, hiring people, yeah.
10
SPEAKER_01
The whole thing.
10
SPEAKER_01
Which operating system is your favorite at this point?
10
SPEAKER_01
So Linux was the early days.
10
SPEAKER_00
Yeah, I love Linux as a server side and it was early days I had my own Linux desktop.
10
SPEAKER_00
I ve been on Mac laptops for...
10
SPEAKER_00
10 years now.
10
SPEAKER_00
Yeah.
10
SPEAKER_00
This is what leadership looks like.
10
SPEAKER_00
You switch to Mac.
10
SPEAKER_00
Okay, great.
10
SPEAKER_00
Yeah, pretty much.
10
SPEAKER_00
I mean, just the fact that I had to do PowerPoints, I had to do presentations and, you know, plug in.
10
SPEAKER_00
I just couldn t mess with plugging in laptops.
10
SPEAKER_00
It wouldn t project.
10
SPEAKER_01
So you mentioned also Quonset Labs and things like that.
10
SPEAKER_01
Can you give advice on how to hire great programmers and great people?
10
SPEAKER_00
Yeah, I would say produce an open source project.
10
SPEAKER_00
Get people contributing to it and hire those people.
10
SPEAKER_01
Yeah, I mean, you re doing it sort of, you may be perhaps a little biased, but that s probably 100% really good advice.
10
SPEAKER_00
I find it hard to hire.
10
SPEAKER_00
I still find it hard to hire.
10
SPEAKER_00
In terms of, I don t think, it s not hard to hire if I ve worked with somebody for a couple of weeks.
10
SPEAKER_00
But an hour or two of interviews, I have no idea.
10
SPEAKER_01
So that instinct, that radar of knowing if you re good or not, you ve found that you re still not able to really do it.
10
SPEAKER_00
It s really hard.
10
SPEAKER_00
I mean, the resume can help.
10
SPEAKER_00
But again, the resume is like a presentation of the things they want you to see, not the reality of.
10
SPEAKER_00
And there s also,
10
SPEAKER_00
You have to understand what you re hiring for.
10
SPEAKER_00
There are different stages and different kinds of skills.
10
SPEAKER_00
One of the things I talk a lot about internally at my companies is that
10
SPEAKER_00
The whole idea of measuring ourselves against a single axis is flawed, because it s a multidimensional space, and how do you order a multidimensional space?
10
SPEAKER_00
There isn t one ordering.
10
SPEAKER_00
So this whole idea, you immediately get projected into a thing when you re talking about hiring, or best, or worst, or better, or not better.
10
SPEAKER_00
So what is the thing you re actually needing?
10
SPEAKER_00
And you can hire for that.
10
SPEAKER_00
There is such a thing.
10
SPEAKER_00
Generally, I really value people who have the affect
10
SPEAKER_00
that care about open source.
10
SPEAKER_00
So in some cases, their affinity to open source is simply kind of a filter of an affect.
10
SPEAKER_00
However, I have found this interesting dichotomy between open source contributors and product creation.
10
SPEAKER_00
I don t know if it s fully true, but there does seem to be the more experience, the more affect somebody has to an open source community,
10
SPEAKER_00
the less ability to actually produce product that they have.
10
SPEAKER_00
And the opposite s kind of true, too.
10
SPEAKER_00
The more product-focused are, I find a lot of people, I ve talked to a lot of people who produce really great products, and they have a, they re looking over the open source communities, kind of wanting to participate and play, but they ve played here.
10
SPEAKER_00
And they do a great job here, and then they
10
SPEAKER_00
don t necessarily have some of the same, I don t think that s entirely necessary, I think part of it is cultural, how they ve emerged, because one of the things that open source communities often lack is great product management, like some product management energy.
10
SPEAKER_01
That s brilliant, but you want both of those energies in the same place together.
10
SPEAKER_00
Yes, you really do, and so a lot of it s creating these teams of people that have these needed skills and attributes that are hard, and so,
10
SPEAKER_00
So one of the big things I look for is somebody that fundamentally recognizes their need to learn.
10
SPEAKER_00
One of the values that we have in all of the things we do is learning.
10
SPEAKER_00
If somebody thinks they know it all, they re going to struggle.
10
SPEAKER_01
And some of that is just, there s more basic things like humility, just being humble in the face of all the things you don t know.
10
SPEAKER_01
And that s step one of learning.
10
SPEAKER_00
That s step one of learning, right?
10
SPEAKER_00
And I ve spent a lot of time learning, right?
10
SPEAKER_00
Other people spend a lot more time, but I ve spent a lot of time learning.
10
SPEAKER_00
I mean, my whole goal was to get a PhD because I love school and I wanted to be a scientist.
10
SPEAKER_00
And then,
10
SPEAKER_00
What I found is what s been written about elsewhere as well is the more I learned, the more I didn t know.
10
SPEAKER_00
The more I realized, man, I know about this, but this is such a tiny thing in the global scope of what I might want to know about.
10
SPEAKER_00
So I need to be listening a whole lot better than I am just talking.
10
SPEAKER_00
That s changed a little bit, actually.
10
SPEAKER_00
My wife says that I used to be a better listener.
10
SPEAKER_00
Now that I m so full of all these ideas I want to do, she kind of says, you ve got to give people time to talk.
10
SPEAKER_01
So you ve succeeded on multiple dimensions.
10
SPEAKER_01
So one is the tenure track faculty, the other s just creating all these products, then building up the businesses, then working with businesses.
10
SPEAKER_01
Do you have advice for young people today in high school, in college, of how to live a life as nonlinear and as successful as yours?
10
SPEAKER_01
A life that they could be proud of?
10
SPEAKER_00
Well, Lex, that s a super compliment.
10
SPEAKER_00
I m humbled by that, actually.
10
SPEAKER_00
Honestly, one thing I ve said to people is, first, find people you love and care about them.
10
SPEAKER_00
Family matters to me a lot, and family means people you love and have committed to.
10
SPEAKER_00
It can be whatever you mean by that, but you need to have a foundation.
10
SPEAKER_00
So find people you love and want to commit to and do that.
10
SPEAKER_00
Because it anchors you in a way that nothing else can.
10
SPEAKER_00
And then you find other things.
10
SPEAKER_00
And then from out there, you find other kinds of things you can commit to, whether it s ideas or people or groups of people.
10
SPEAKER_00
So especially in high school, I would say don t settle on what you think you know.
10
SPEAKER_00
Give yourself 10 years to think about the world.
10
SPEAKER_00
I see a lot of high school students who seem to know everything already.
10
SPEAKER_00
I think I did too.
10
SPEAKER_00
I think it s maybe natural.
10
SPEAKER_00
But recognize that the things you care about, you might change your perspective over time.
10
SPEAKER_00
I certainly have over time.
10
SPEAKER_00
I was really passionate about one specific thing, and that s kind of softened.
10
SPEAKER_00
I was a big... I didn t like the Federal Reserve, right?
10
SPEAKER_00
And there s still... We can have a longer conversation about monetary policy and finances, but
10
SPEAKER_00
I m a little more nuanced in my perspective at this point.
10
SPEAKER_00
But that s one area where you learn about something and go, oh, I want to attack it.
10
SPEAKER_00
Build, don t destroy.
10
SPEAKER_00
Build.
10
SPEAKER_00
So often the tendency is to not like something, they want to go attack it.
10
SPEAKER_00
Build something.
10
SPEAKER_00
Build something to replace it.
10
SPEAKER_00
Build up.
10
SPEAKER_00
Attract people to your new thing.
10
SPEAKER_00
you ll be far better.
10
SPEAKER_00
You don t need to destroy something to build something else.
10
SPEAKER_00
So that s, I guess, generally.
10
SPEAKER_00
Like curiosity, you know, follow your curiosity and let it, don t just follow the money.
10
SPEAKER_01
And all of that, like you said, is grounded in family, friendship, and ultimately love.
10
SPEAKER_01
Yes.
10
SPEAKER_01
Which is a great way to end it.
10
SPEAKER_01
Travis, you re one of the most impactful people in the engineering, the computer science, in the human world, so I truly appreciate
10
SPEAKER_01
everything you ve done, and I really appreciate that you would spend your valuable time with me.
10
SPEAKER_01
It was an honor.
10
SPEAKER_01
It was a real pleasure for me.
10
SPEAKER_01
I appreciate that.
10
SPEAKER_01
Thanks for listening to this conversation with Travis Olyphant.
10
SPEAKER_01
To support this podcast, please check out our sponsors in the description.
10
SPEAKER_01
And now, let me leave you with something that, in the programming world, is called Hodgkinson s Law.
10
SPEAKER_01
Every sufficiently advanced LISP application
11
SPEAKER_00
application will eventually be re-implemented in Python.
11
SPEAKER_00
Thank you for listening, and hope to see you next time.