Python - The Documentary
Python - The Documentary
[Music]
Python has contributed to making critical thinking a little more approachable
by more people. You can spend one to two hours, learning programming
fundamentals and then you can write like 10 to 20 line of code that do
something interesting. The language, the community, the ecosystem, the
market, the whole thing has had such an impact on humanity. Today, I think
it's safe to say that almost anywhere there's a computer, there's probably
some Python. It's literally on Mars. The impact of AI, I think we're still seeing
what that's going to be. Python is incredibly important for that. To fully
understand how Python got so big, we have to go back in time. Maybe not
that far back. Everything started back in Amsterdam in the 80s during my
time at CWI, a Dutch research facility. The CWI had been behind a lot of major
programming language developments. Algol 60 and Algol 68 for instance. And
Lambert Meertens had tried teaching programming to artists and discovered
things about programming that are easy, if you're a scientist or a geek. But
for somebody like an artist, those things weren't obvious because you had to
know something about the computer. The cause of the frustration was the low
level of the languages that were available. The computers were immensely
expensive and compared with that a programmer was really really cheap and
so programming languages were designed with that economic relationship in
mind. It didn't matter if it took a long time to program as long as it didn't
demand too much of the computer because that's where the cost was. We
looked at each other and said, can't we do a better job? Can't we design a
language that is easy to learn, easy to teach, but also easy to use. So that
beginners could understand how to program without having to go into all
those messy hardware details. And that's how the ABC project was born. One
of the members of the team was Guido van Rossum. [Music] I was hired to
work on ABC for which there was a small prototype but every part of the
prototype had to be expanded to fully working according to the spec. In 1985,
we made the release of ABC. And then we hit the problem: how to make the
world know that there was ABC? We did not have a good way of reaching our
intended audience. The web did not exist. Most people had never heard of a
computer or even seen one. If anybody wanted a copy, they had to send us a
letter and we'd send them a floppy disc. So I'm afraid ABC reached very few
people and at some point the directors for reason, that I still don't understand,
killed that project. I had spent, well, 3 and 1/2 years of hard work on this
language and the implementation to make it as as good as we could. So it was
disappointing. [Music] Guido was transferred to another project on a
distributed operating system, the amoeba system. One of my jobs at that
project as the programmer, not the researcher, was to write, or help write, a
large number of user applications. And I didn't actually think that for many of
those utilities C was a very good language. And I thought, well, oh man, if we
just could program ABC instead of C, each of those utilities would be like half a
page of code and I could write the entire suite of utilities in a couple of weeks
instead of the years that it looked like it was going to take us. Except that ABC
was so high and abstract, it wasn't a good language to talk to servers and file
systems and processes and it sort of the whole operating system thing was
abstracted away from ABC. So I thought, well, there really ought to be a
language that sort of bridges the gap between C and shell. And we looked at
Perl and we didn't think it was any good as a programming language. It was
about as bad as as Basic, although in different ways. So, Python was also in a
part built as an alternative to Perl. That's where I decided, oh well, I'm going
to see if I can make my own programming language. [Music] One Christmas
holiday, I believe, he decided to spend his time designing and building a new
programming language for the operating system based on the principles that
he'd learned while on the ABC project. It was logical that I would start with
ABC as an example. The most prominent feature that Python borrowed from
ABC is actually the use of indentation for statement grouping. But it was also
logical that I sort of dropped the things from ABC that I didn't particularly like.
That's how we ended up with Python. Okay. I finally was confident enough of
the interpreter was complete enough that I showed it to Lambert. He showed
me a language he had developed stealthily, which he called Python, named
after Monty Python. I said look what I made. It was clear to me that it had
some resemblance to ABC. The command line prompt is even the same. So
Lambert watched me type a few things and.. Guido was excited about it and
he apparently thought I would be excited as well. At some point he had seen
enough and he said, "Can I try something?" And he types one very short line
of code and it crashes the interpreter. And he knew that that it would. The
point escaped me. I didn't know why he thought this was better than ABC and
why he had done this whole project. I went back and the next day I had a fix
for it. But it was a pretty crushing experience to be honest. It must have been
at least half a year later, that I first got acquainted with Python. So this is the
office where Guido and I were holed up when he created Python. There were
two important users. Sjoerd was one of them and the other was Jack Jansen.
Guido was sitting over there and I was sitting over there. If you want to
prototype a program, you sort of write the outlines of the program, but it
doesn't actually work. When you do this in Python, it actually works. It's
readable. It's very easy to program and the indentation is totally natural as far
as I'm concerned anyway. Sjoerd and Jack were the most active in using
Python. You find bugs, you find the things that you want to extend and then
telling me about it because all they had to do was say, "Hey, Guido." It was
the first real interactive systems programming language. So, you could just sit
and write and run it immediately without any compilation. So, it was much
more fun to use than the old programming languages, but slower. I think it
was mostly Jack's idea in the end, while we all worked on it, to make an open-
source release. CWI allowed Guido to distribute Python to the world as long as
its copyright notice was there. They would have held back if they had known it
would be such an incredible success, which is good that they didn't know.
Nobody knew. I didn't either. Because if they had held back, it would never
have become an incredible success.
20 years ago, a computer that cost a million dollars and filled an entire room
had less capability than an 11 pounds desktop computer today. With costs
going down and capabilities going up, the computer has entered our lives
quickly and unobtrusively. There were lots of things changing in a major way
that made computing particularly exciting to be in. At that time, computers
suddenly were coming out of the machine room and landing up on your desk.
And then of course the web happened. Then it all exploded. After the internet
came to Europe, it was much easier for software to be distributed. Python very
slowly took off. Then there was a growing Python community which was very
supportive like a big family you could almost say. Part of the benefit of this is
that I don't.. I'm like, there's no strain on my body at all. I was working on
developing a kind of distributed equipment database and a colleague at the
lab, Michael McLay, knew that I was looking for what was called a scripting
language that was also sophisticated that would enable you to build
substantial things and not get bogged down in the ragged edges. Scripting
languages were designed to glue things together, to connect things that
already worked, that already existed. Immediately on trying it, I was just
amazed and thought this can't be as good as it is. And it was. Mike was
interested in bringing Guido over and Guido was interested in coming over.
99% of the people that I got in touch with were in the United States. So Guido
ended up coming and then Mike and Guido and I wanted to arrange a
workshop so people who were interested in Python could gather and talk
about what they were working on and what they felt was needed. This is the t-
shirt for the first conference. And so this yeah that that was just sort of flowy
writing and on the on the back it gave the date of the conference. Spam,
spam, spam, spam. It's such a fantastic song. That workshop really is for me
the beginning of the Python community. November 1994, Gaithersburg,
Maryland in this windowless government office building at NIST. That was a
great experience. It was about two days. We had 20 people. I still have the t-
shirt from that workshop. There was just kind of this feel of, hey, there's
something happening. This will be fun to hang out with the people that I chat
with online, to actually see Guido in person and actually make decisions. And
we knew that if you impressed him with the feature and it was an easy thing
to install, he would add it to the language right there so that we can at least
try it out in beta form. There was like a whole room of people who knew what
you were talking about because they had all studied Python deeply or almost
all. One of the people was Barry Warsaw. [Music] Around 1994, I joined a
company, CNRI, Corporation for National Research Initiatives, and we were
building these software agents, little programs that can move around to
different computers on a network, and they pickle themselves up and move
around to another place and reconstitute themselves and do some more work.
A friend of mine from NIST sent me an email and said, "Hey, we've got this
guy coming over from the Netherlands and he's going to talk about his
language. Do you want to come?" And so we went to the workshop and just
absolutely fell in love with of course Python and of course Guido. Even then, it
had the feeling that there was a there there was something that was going to
happen that there was potential. I remember coming back to CNRI saying,
"Oh, this is great. we're going to use Python for sure in our project. And one of
our colleagues at CNRI said, "Well, what do you think? Why don't we just hire
Guido?" CNRI was set up to sort of promote information infrastructure and
foster research, help build pilot projects, take the results and put them out
into the public so that others could then leverage it. Part of CNRI's mission
was to cultivate internet based things. That's why our name Corporation for
National Research Initiatives has the word "initiatives" in there. We had a need
for a language that would be easier for people to deal with than any other
traditional languages that were around at the time. I ran across a photograph.
There was a party at CNRI, years ago. It was probably I think 1996. And it's it's
a Guido. Yeah. I used to say Guido. Many people say Guido, but I said Guido
and I'm sure I don't pronounce it right. Oh, he was a very stylish person and
he was a very strong fellow. Got introduced to him and it just seemed like it
was a good fit and so I made the job offer. For me, it was fantastic. There is no
doubt about that. One of the things he insists on if you want to get him to
work for you is that he has some fraction of his time, preferably as much as
halftime if not more, to work on the language itself. the fact that they could
work full-time on Python because it turned out that the Knowbots project was
almost more an excuse to to hire me than I did much for that. I kind of feel like
our work on Python was a little subversive. You know, we tended to spend a
lot more time on Python than maybe we should have. I went to CNRI and since
I had been a systems person, I was responsible for setting up python.org. We
should have also grabbed python.com even though we didn't think of Python
as a commercial enterprise because someone else got it and uh used it to
host a stupid porn site. For years we had to warn people go to python.org,
not .com. It really was the perfect home, I think, for doing all of that early
Python development - and develop a lot of the infrastructure around Python.
We had a meeting discussing making some kind of user group or software
organization where the Python software activity was proposed. We need a
little bit of governance, a little bit of organization, but we don't want too much
because I don't think any of us really liked bureaucracy. And then the question
came up about what we should call Guido as part of that. I think it was me
who suggested that Guido be called the Benevolent Dictator and then Barry
suggested Benevolent Dictator for Life and that became an internet meme or
actually a software meme. Benevolent Dictator for Life was.. you can find it on
Wikipedia. Ultimately, you know, Guido was the inventor of the language and
the final decider about yes, this is going to make it in or this is not going to
make it in. I think I developed my own style during those first years. All ideas
are welcome, but I will choose which ideas I believe are right to add to the
language. There's dozens and dozens of aspects of Python today where
somebody had a vision for, if you just add this to Python, look at all these
amazing things that I can do. [Music] I'm one of the many people that came to
Python, not as a programmer, but as a scientist. Python wasn't the first
language I used for science. I was doing satellite data processing and I used
Perl to do it and then a year later I would come back and try to figure out what
I'd done and I had no idea. Python had the opposite experience. I first started
using Python in 1997. I just used it to do some scripting, do some data
processing with some medical imaging data and I was like this is nice. This is
pretty cool. A year later, so 1998, I came back to look at the code I'd written
and I could read it. I understood what I did. And that was kind of for me the
convincing data that said, "Oh, I need to dig in on this language." And there
were a few really key people at that time who were publishing or talking about
how to use Python for science. Not very many, but a few. Konrad Hinsen was
one of them, I remember, and David Ascher and Jim Hugunin. There's been a
number of stages in the life cycle of Python, when it just grew from a a core
language capability to a platform with a number of different specialty modules
and packages that made it very very useful for certain user communities. The
first one was probably the numeric community, the science and engineering
folks that wanted high performance matrix operations to be done. Even
though Guido wasn't a scientist himself, wasn't necessarily deeply concerned
with the same things that we were concerned with as scientists, he was open
to the suggestions. I think one of the things that people don't appreciate
about the Python language as much now that it's so popular and mainstream
is how important it was that Guido was open to new ideas and open to the
needs of people who are not traditional programmers. I think he had a very
clear-eyed quiet focus on understanding some things about the future that he
built into the language. It was uniquely suited to its environment. One of the
reasons I used Python and I think a lot of people used Python at the time is
that in the early 2000s, the world was almost divided into here's an open
source ecosystem or you can go and use Java which is actually a paid thing. I
was using MATLAB. I really didn't like the fact that when I wrote code and I
wanted to share that code with others, I was essentially telling people they
had to go buy a license for a software package before they could even look at
my or use my code. You know, these are the days where you have to like buy
the developer tools or spend a couple hundred bucks to get Visual Studio 6.0
and then Python and then all of these libraries were open source and then
could be adapted, could be used in a commercial project. I was sort of early
on convinced by community members that Python being open- source and the
particular way it was open source was very important so that people would
feel comfortable using Python to make great things that they would then be
able to to sell. [Music] In 1998, Blender was published on the internet. The
software was free and then you could buy some things around it. We were
restricted to use open source. So, you didn't have a lot of options. We were
doing a call on our website like what is the most popular scripting language
that we should add in Blender? Perl was really big and Python was upcoming
and there were some others. And it was interesting to see that everybody who
was advising us to use Perl as scripting language but they only advertised
how great Perl is. And the people who came more from the Python
background who said well I think Python is a better choice. They came with a
balanced opinion. And they said okay Perl will give you this and this and this
and Python will give you other things and balancing all of it I would
recommend you to do Python and only for that reason I picked Python just
because the people were nicer. It was honestly just a lot of enthusiasts. It was
a lot of people who just enjoyed the language, enjoyed the people involved
with the language and it would just happen to be typically motivating enough
for people to want to help out. Ultimately, there's a sense of fun that comes
across and Guido coded that into the name of the language influenced by
Monty Python. It creates a sense of community to have your little jokes. Tim
Peters is a famous early example of blending both like the aesthetics of
Python and humor. Tim Peters was this mythical feature.. creature in the world
of Python, and no one had met him. He was out there in the ether as a wise
one to give us advice on what to do with numerical processing. Steve
Majewski sent me some email telling me about Python. So I started a email
correspondence with Guido about the language and about the design and I
got some of the pre-release code and played with it and talked to him about
design decisions and liked it very much. Tim Peters was a Python contributor
and community member and mentor to me from very early on. Tim was a
channeler of Guido. He had a really unique way of saying: I think Guido's
going to like this or I don't think Guido is going to like that. There's a poem
called the Zen of Python which is a partially humorous, partially serious poem
about the the aesthetics of of Python. I'm actually looking at the Usenet post
where Tim posted his first version of the Zen of Python, although he called it
the Way of Python. And it was in response to some discussion where people
were complaining that they didn't understand what was Python's philosophy.
They couldn't figure me out. And Tim had figured me out and he put it
basically in poetry. Here is the Way of Python by Tim Peters from 1999.
Beautiful is better than ugly. Duh. Explicit is better than implicit. Simple is
better than complex. Complex is better than complicated. And I love that
distinction. Flat is better than nested. Sparse is better than dense. Readability
counts. I will say it counts for a lot. Special cases aren't special enough to
break the rules. Although practicality beats purity. Errors should never pass
silently unless explicitly silenced. In the face of ambiguity, refuse the
temptation to guess. I did not follow that in a very key piece of NumPy and it's
still a mess. There should be one and preferably only one obvious way to do it.
That's a direct reference to Perl's motto of there's more than one way to do it
by the way. Although that may not be obvious at first, unless you're Dutch.
Now is better than never. Although never is often better than right now. If the
implementation is hard to explain, it's a bad idea. That's a really good one. If
the implementation is easy to explain, it may be a good idea. Name spaces
are one honking great idea. Let's do more of those. This is so Tim. Normally
'import this', imports some useful library, which is very serious business.
Having an 'import this' that was just a joke was a bit of lightness that we liked
to add. This is from a small hobbyist community, right? Because if you're a
corporate behemoth making a a programming language, like someone's
probably going to tell you that you can't put a silly poem in your in your
programming language, but Python's just made by dogs on the internet, so
they can put poems in their software. [Music] The different ways to make
money on the internet are just beginning to emerge. Entrepreneurs are
putting their faith in a new medium to deliver the big payoff. It's the dot-com
bubble, all this money pumping into Silicon Valley software and internet stuff.
Early 2000, I decided to leave CNRI and with a few co-workers joined little
startup named BeOpen. While CNRI, I think, was an amazing home for Python
in the early days, everything changes and everything evolves and thinking,
well if we're going to strike out on our own this is probably the right time to do
that. That didn't work out. I'd say within maybe a year or something. BeOpen
was completely incompetent. We spent the summer in blissful ignorance
working full-time on Python. We built and released Python 2 and within 5
months it was over. We were paid our salaries every 2 weeks, and then
suddenly in late October we weren't. [Music] It was a moment where the [ __ ]
could have hit the fan. If all the Python guys went their separate ways...
Python wasn't big enough to survive that at the time. That was when I had a
company Digital Creations that later became Zope, which is an application
server, database server, index server, web server, etc. Very large scale
commercial quality application written in Python. And if Python died, you know
who else would die? We'd die. The whole platform was built on Python. So
they were Python experts. We need to go and make sure that Python is secure
for the future and that the team stays together. So we negotiated an
agreement with them to join my company. That was an incredibly lucky
rescue. We felt like we really trusted them and we believed in what they were
doing and what they wanted to do with Python and for Python. This is a place
that I'm proud of. In hindsight, it was a really critical point in Python's life. I
think if we had chosen wrong or tried to say, "Oh, well, we'll just strike out on
our own anyway." You never know. But I'm not so sure that Python would have
survived that juncture in its life. Yeah. [Music] [Music] Python just kept sort of
growing and the community kept self-organizing. One of the I think underlying
themes of Python, if you take it in its totality, is this sense of grassroots
movements. Things grow from the bottom up and evolve to the point where
everybody sort of realizes, oh, we need a little bit more structure. Oh, the
Python Software Foundation. In my opinion, the PSF, that damn thing was a
success from day one. That came out of one of the concerns we had had with
BeOpen actually. So CNRI had written a license for Python and put its name on
it and BeOpen had copied a version of that license and put the BeOpen name
on it. There was a concern that at some point I might accidentally end up
working for a company that tried to grab ownership of Python. We realized
that we really need an organization that will be independent, will not be
beholden to any company and their whims and their lawyers and will really
keep Python users as their first and foremost customer, so to speak, in mind.
[Music] And then the magic happened when we got into PyCon, which is
maybe the third stool of the miracle of Python. [Music] What has been your
take away from PyCon US this year? It feels like people are still willing to go do
hard things, work on things together, you know. Wow. They still do have the
passion to be honest. So, what was it for you? Uh, for me most definitely like
meeting people I haven't met in a while. That's cool. Yeah. And just pretty
much hanging out with them. You try to walk, Yeah, to the other side. There's
like 10 people that you want to see in between like stop. I want to talk to you.
Oh, I know. Pablo and Yuri presented as bananas and then Lukasz asked the
question dressed as a banana. And then Guido came in just as a banana as
well. Thank you for what you do for the PSF. Please don't step down. Just keep
doing it forever. Raise your hand if you love the web. Just raise your hand.
Raise your hand if you have done React front-ends. Raise your hand if you
would like to come back. To React? No, come back to Python. All right. Good.
For the record, 100%. I begged my mother to take me to PyCon and I met all
my online heroes. He was this distant Benevolent Dictator for life who I'd been
talking to over the internet, but here he was in person and so I was thrilled to
be able to finally meet him. Then I think everyone was aware that he was a
15-year-old kid on the other end of the terminal. When PyCon was held in
Montreal, the organizer asked me if I'd be willing to give an opening address
to the conference. Well, I'm a slightly fast talker and I had some spare time
and I just used it as an opportunity to say thank you. "I like to think of it as I
came for the language, but I stayed for the community. So, I want to
personally thank all of you for making this such a wonderful place to be and
such a wonderful group of people to be around. So, thank you". Luckily, it
came off well because people still quote it. I think it kind of speaks to the core
ethos of Python. We try to develop this tool that people can use for their
needs to get their work done. But the community is the true strength of
Python. It's not just the language, right? It's the people. [Music] It was steadily
growing every single year. It was getting more and more downloads, more and
more people making use of it. It became a more sophisticated language that
was fit for purpose for this new emerging programming paradigm where the
the web itself is the platform. He told me an interesting number that that
made me realize that the Python user community was already much bigger
than I had estimated because he said, "Guido, you don't know the sales
numbers for Python books, but I am Tim O'Reilly. I published the two most
important ones and I do know the sales numbers and they are fantastic." I
don't know if he had that much enthusiasm in his voice then, but he was
sharing this new to me important fact which made me realize, oh my gosh!
Python tends to get spikes when certain specialties, I guess you could say,
pick the language up and decide that this is a thing that they want to use in
their area. Everybody wanted to to do things with the worldwide web and
Python actually became a really powerful platform for for doing not just web
pages but web servers and services and suddenly we had an increase of
people coming in from the web world. [Music] I think Dropbox was one of the
early companies to start building in Python and reaching millions of users. My
name's Drew and I'll be showing you a quick tour of Dropbox, which is a new
way to store and share files online. Python had been largely viewed as
scripting language you run on the back end or maybe in an academic setting
or in a scientific setting, but not really for like production desktop software
that you ship to millions of people. But I just started writing in Python and
hoping that none of the roadblocks would completely blow me up. You can
develop programs much faster in Python because it's a higher level language
and it's a very clean easy language and so we could we could be a lot more
competitive than other companies who were writing with Java or C++ or Perl.
Even back then we were competing against the Google's and Microsofts of the
world and you know our odds didn't seem very good. So we needed all the
help we can get. Google had this big team like a hundred people, C++
programmers, trying to do a video hosting site and they could never keep up
with this little thing over there called YouTube and they went and looked and it
was just a couple of people writing Python. Python ended up being a big force
multiplier on our effort and no other language that we considered had
anything close to that kind of capability. [Music] The fact that data science
suddenly became a thing that you had to do, combined with the fact that
Python was sort of well positioned to do data science stuff meant a huge
amount of new Python users flowed in. What was starting to happen in the
2009-2010 time frame, we were seeing more and more of our consulting deals
tied to using Python not as really a replacement for MATLAB or engineering
type things, but using Python for doing data processing. We didn't call it data
science at the time, but it was that kind of work, right? It was modeling,
predictive analytics, things like that. This is the time of Hadoop, the time of
big data, the time of Spark, and people were doing Java at scale. We were
starting to do much more consulting work in the financial industry and we'd
walk into these large very well-capitalized firms and they were using Python to
do business data processing. I realized okay if it's a research group over here
doing some science research and they don't have money and they use an
open source thing I get it but if you have JP Morgan right which has a lot of
money and they're picking up and using these scientific tools and they're
loving it. I realized that we didn't just have a cheap free alternative. We
actually had something that was innovative and that was doing something
fairly unique. Peter and I ended up leaving Enthought and starting another
company. We started as Continuum Analytics actually and its vision was to
scale NumPy and Pandas to large data sets and large clusters. We quickly ran
into a simple problem, very quickly in, but a very annoying problem. Yes.
people just couldn't even install the software needed to run all this Python
stuff. The thing about the Python scientific and data stack is that all of these
different libraries, they're very different than the web development libraries
because these data libraries are often backed by a very large amount of
complex C++, Fortran, other kinds of software modules. And to build those
correctly takes some work. To build them correctly on every operating system
takes even more work. And then to build them so that they can actually be
connected together, that requires you to have this entire build system
rationalized. And so the very first thing we did was like make a distribution of
Python to make it easy to get that installed. A lot of the data science Python
people, they didn't even use normal Python. They used this Anaconda Python
distribution. Sort of a dumb joke that I came up with at one point. It was
basically Python for big data. So it's a big snake. So Anaconda. After like a few
years, we kept going to conferences and going to places and people wouldn't
know who we were. But the instant that we mentioned that we make
Anaconda, they would say, "Oh, yeah, of course. I love Anaconda. I use it all
the time." Right? So, after that happened like the thousandth time, we said,
"Okay, maybe we should rename the company Anaconda." Data engineering
became a discipline where Python was incredibly entrenched. It was Python
and R. And over time, Python's data analysis libraries caught up and plotting
libraries and stuff started to catch up to what R had. And then people realized,
oh well, with Python, I can work end to end with my data versus R being very
good at data analysis, but not necessarily like the data collection stage and
various other stages. I remember going to a Python conference at one point. I
was like, there's so many sciency people here like where are all the web
developers? This is all data data pipelines and stuff. I don't want to be
immodest about this because it was a collective effort for the whole
community, but I think that what we did at Anaconda, not only making the
software installer that made it one click for people to just run, but also
shephering the conferences and building that community and and whatnot
was really critical. They were incredibly important contributions. I think we
actually made Python super popular. I I think we did. [Music] Well, I remember
hearing from a friend of mine that Guido van Rossum was just working at
Google. And that when I thought about it, I'm like, wait, yeah, Guido, I guess,
works at a normal company and I can't remember the exact circumstances,
but I think either I got an introduction to him or I just maybe I think maybe
just send him an email saying, "Hey, um, big fan of your work." you know, it's
like fan mail basically. And he responded and we got lunch. I mean, he's a
hero of mine and he was totally friendly and approachable. And at that talk, it
was revealed that Dropbox was entirely written in Python, both the client and
the server, and that was exciting. He was interested in what we were doing
with Python. And I think we were stretching the language and the runtime in
interesting ways. He approached me again and said, "Hey, we would really
like you to work for us." And then to my surprise and delight, he ended up
joining the Dropbox team, which was super exciting for all of us. I stayed there
for 7 years. We did more important stuff for Python than I did during 7 years
at Google I think. I think he had a big impact on the rest of the team. You
know, here's someone who's one of the icons of computing, but you would
never know it just from his, you know, how he badges in to the office every
day and I think set a really great example in terms of being super humble and
curious and friendly. You know, it's hard for me to think of someone who has
had more impact with lower ego. Uh, let's start with the first Python license
plate. Sorry, that was my car when we lived in Virginia. And there was a box
on the application - sorry, just grabbing the other one, too - uh, do you want a
custom license plate? So, I managed to get Python in Virginia and in
California, Python was long taken. Like someone in Silicon Valley probably has
a Python license plate somewhere. So, the best I could get was PY3K, which I
thought was pretty pretty cute anyway. It became ever more popular and
people started thinking about flaws in the language. There were a lot of ideas
floating around the core development community, changes you could make to
the language that people thought would be major improvements. The only
problem with them was that they would break old Python code that currently
existed. Some of that probably got away from us a little bit in hindsight. We
released Python 3.0 in December of 2007. I remember because I was actually
interning under Guido at the time. We were giving people roughly 5 years, I
think, to do the transition. And everyone thought that was just extraordinarily
generous. The world would totally be on Python 3 in just a few years. This is
best for the language long term. We're going to make these changes. The
community has always come along with us. We think they'll come along this
journey as well. We were very naive about that and they they made us know
it. The community said, "No, not worth it. Kill it. Don't do it. It's not going to
work." This included some very notable individuals in the community. So,
please welcome our next speaker. Hi, my name is Armin. You might be familiar
with some of the Python libraries that I wrote and you might even maybe use
some of them. The Python 2 to Python 3 transition. Initially, it happened very
gradually over many years. There was the version that everybody used and
there was sort of the version on the side that was built that nobody used.
People didn't want to put in the effort because their code worked, you know,
why rewrite it. It's very hard to mix Python 2 and 3. It's uh it's a it's a
headache. So I just didn't move and a lot of people didn't move. It felt there's
a likelihood that it will not go anywhere. It felt much more like a top-down
decision than any of the things in the past. And that top- down decision, I
think for some people felt like it was not inclusive of the real pains of people
who had a long tale of use cases. I think I severely underestimated how
successful Python already was. How many people had written so much code in
Python 2 that it would be hard for them to sort of put the effort into translate
to Python 3. I thought the most controversial thing by far was that we wanted
to change the way Unicode was handled. A way to say these things are strings
and they're human consumable. They're words that people want to read and
write and these things are bytes. These are things that computers want to
read and write. We basically made all strings Unicode and we made you use a
new prefix 'b' for bytes. And this was incredibly disturbing. I was implementing
a WSGI library at the time and one of the things that you do when you
implement WSGI, is that you have to parse HTTP data. You have to parse
cookie data. And there there was always a mixture of bytes and Unicode. And
it was very easy to work with on Python 2. And it was incredibly annoying to
work on Python 3, at least initially. There really wasn't a way to convert your
Python 2 code to Python 3. The tools didn't exist. I started writing blog posts
about it. Why I think that in the way which Python 3 works right now, I just
cannot see the move. He was a valued community member. And at the time I
was actually quite surprised that he was so viciously attacking Python 3. I was
probably even more negative on it than appropriate. But Python had such a
good run and I put so much energy into it. I was part of like building out web
frameworks and and all these libraries. I felt like: why are we ruining all of this
with this move that didn't even have that many benefits. I had not
appreciated how many people already had enormous code bases or were on
their way to building up enormous code bases. The payback for that was that I
had to initiate the project at Dropbox. We had a pretty long road to migrate
many millions of lines of Python 2 code. 5 million lines of code in the server
alone and another million for the client. That is a very large pile of code to
transform. And so we had to invent ways of sort of doing it in in pieces.
[Laughter] A funny sticker I found in my pocket. There's a built tool called
Bazel. It's sort of a frozen version of Python 2. So here the sticker says after
re-education enemy of the people Python denounced their bourgeois class,
renounced formalist notions like Turing incompleteness and began a new life
as citizen Starlark. This is especially an example of Benjamin Peterson's
humor. I had the fortune or the misfortune depending how you see it to be the
uh Python 2.7 release manager for an entire decade. We had to adjust our
plans for Python 3 and for Python 2 so that there was a longer series of
releases where there were both new Python 2 versions and new Python 3
versions. What ended up happening is then the community was like
maintaining 2 and 3 and that created a lot of burden. And so this was
happening all during the growth of NumPy. We made it work for Python 2 and
then I think Python 3.1 I think or 3.2, we also made it work there but saw no
adoption. We knew it was going to take a long time. Uh we knew it was going
to be painful but there is light at the end of the tunnel. The community
contributed stuff like lib2to3 and other migration tools came out. Benjamin
Peterson wrote Six that really helped that transition. The language itself
became a little more backwards compatible. I eventually advocated to bring
back the 'u' prefix on the strings and that actually made it easier to write
unified code bases that target both Python 2 and Python 3. There was a point
in time where we made a very strong declaration, there will never be a Python
2.8 and Python 3 is the future. Python 3 just is a better language and it is
getting better over time. Python 2 on the other hand is a fine language and it
will remain exactly what it is. For a long time, there was a lot of measurement
of how much Python 2 usage is there, how much Python 3 usage is there. I
think it was when Python was in Portland, was roughly when we started to see
like 50/50. Once 3.4 came out, it actually added some features that were
interesting to people like, oh, I want that capability. So, to me, Python 3.4 was
really Python 3.0. And then 3.5 was an even bigger milestone. That was the
one that got widespread adoption of Python 3. And by the time Python 3.5
came out, then it was clear that Python 3 would work. And then you started to
have companies come out and give talks like Instagram's talk, which I believe
is also at Portland, was a big deal. Yes, you heard it right. Instagram has been
running fully on Python 3 for a few months. The whole process took I would
say about 9 to 10 months. And I think Instagram was the largest production
deployment for Python at the time. She gave a very good, very thorough talk
explaining why they did it. Two main things: typing and asyncio. How they did
it. We cleaned out all the libraries that are not making the migration from
Python 2 to 3. How you should do it. Unit test. What they had learned during
the process. We had actually some good performance gains as well, after our
migration. It felt as vindication that at least there were large companies that
took the time to do it right and to convert all their code to Python 3 and were
able to do it successfully. It was definitely well received. We got a lot of people
saying: we really wanted to migrate as well, but we weren't getting the kind of
support that my team or my company was giving us. And now I can bring this
back to my management. And that really gave people the confidence in
migrating to Python 3. It became like a look, Instagram can do it. Why don't
you do it? Instagram's getting benefits, new features, faster code. Why don't
you also want that benefit? [Music] Projects undergo things like this. And
Python learned a lot from it and it did actually eventually end up with Python
3 being in a pretty good spot again that it was safe to use. And safe to use
sounds weird but like where I felt like I can actually start new projects on
Python 3 now because we're back to a stable situation where you're about as
productive as I felt like I was with Python 2. Hi, Anna, nice to meet you. I really
liked your talk. But it was basically time that healed it. When Python 2.7 was
declared that there wouldn't be any more security fixes, it became a security
concern. That was sort of the final push. People who donated their work to do
this migration in the wider Python world and community eventually got the
world running on Python 3, but as I said like it was a decade long process. And
I don't think anybody anticipated how much work it would be to move to
Python 3. I think Python's probably too big to ever go through a transition like
that today. The community was maybe a little too big, but not too big. I even
still get angry messages sometimes from people who are like, "My code needs
Python 2.7. You need to provide it." And I tell them, "No." I never wavered in
my commitment to Python 3. It was a lesson learned for sure. For a long time,
I regularly joked there would be a Python 4, but the transition would be
handled much better than the transition to Python 3. I felt I owed that to the
community. And now, the mantra has changed to there will never be even a
Python 4. To be honest, I don't know how many people in Python even know
about the whole transition because that all ended in 2020. At least it's behind
us. [Music] Okay, so now we get in the closet. So there's the frisbee. This is
the most unique merch I've ever seen related to Python. Now, here's a
significant t-shirt. It says, "Python is for girls." I received this anonymously in
the mail at Google. And to this day, I don't know exactly what the intention of
the sender was. They never revealed themselves, at least not to me. And I
don't know if there was an intention even.. But I sort of realized at that point
that there wasn't a whole lot of women in the the Python community and the
community also discovered that and fixed it for the Python conference. This
idea of being a place where people from a wide range of backgrounds can
learn how to program, benefit from programming, find community. There
really was some snowballing adoption of these ideas across languages at the
time. Jessica McKellar looks at the speakers at PyCon and says, "There's only
3% that are women. What can we do about this?" She was co-organizer of the
biggest Python meetup in the world in Boston. She knew what she was talking
about. It's not rocket science. It's like, ask people if they're interested in
speaking and we just.. providing like a little bit of support drove a huge shift in
the volume and demographics of the talks that were submitted. And then 3
years later, like 35% of the speakers are women. I forget what the number
was but I think it was almost even with male speakers. PyCon... I had an old
tweet about this, so I just pulled this up. Says, "Hello from your PyCon
Diversity Chair." So, the percentage of PyCon talks by women: 2011 was 1%,
2012, it was 7%, 2013, 15%, 2014 and 2015, 33%. And in 2016, 40%.
Problems have solutions. That was a very inspiring story to me also.
Something that was less inspiring to me was that at the language summit
there wasn't a single woman in the room, and I don't believe we have a single
female committer to core Python. There wasn't ever ill intent but
unfortunately we fell into the trap of not doing enough diversity reach out to
try to get more people to come in. To be honest it was a lot of white men. So
Guido wanted to change that. I want at least two female core Python devs in
the next year and I will try to train them myself if that's what it takes. So
come talk to me. I believe one of the first people who took up that call was
Mariatta. [Music] Even though I've always been passionate about technology
and programming, I also felt it wasn't a welcoming environment for women.
My schoolmates who took computer science are mostly men. Most of the
professors were men and at work most of my co-workers were men and I just
didn't really have examples or role models of women being successful in the
tech industry. One of my co-workers went to PyCon. He saw that at that
conference there is this community called PyLadies and I felt like.. I want to
meet them. [Music] So in 2015, that's when I decided I want to go to PyCon.
At this conference, I got to see a lot of women speaking and presenting. At my
previous tech conference, all speakers were men, all the keynote speakers
were men. So this was really different. One of the keynote speakers at that
same conference was Guido van Rossum. Hello everybody. Glad to see you all.
I want to meet and see the creator of the Python programming language.
"And I will try to train them myself if that's what it takes". I heard this speech.
However, at that time, I just didn't think that it's something I could do. I wasn't
even contributing to the Python community. I didn't contribute to open source
at all. I just thought I'm sure they will find women next year. The year after I
went back to PyCon US and Guido van Rossum gave another keynote. We still
don't have two female core developers. I think at that time that's something
really clicked in me, like I realized that there's something within me that says:
if nobody's doing it, I will do it. I wrote to Guido van Rossum and I asked him
for help. Somehow I felt really scared. I just didn't feel like I deserved
mentorship from Guido van Rossum. So I really hesitated to send this email to
him. But in the end, I realized that I want to try. Like I felt like this was a great
opportunity for me. I pressed the send button. I got a reply. He was very
friendly. He started sharing resources about, you know, how to get started
contributing to Python. He offered to do video chats. It's been really helpful to
have his moral support. We had a pretty sort of deep mentorship relationship
for a few years. Mariatta learned the process from Guido and continued to
contribute more and more very much around tooling, like she really found her
niche in terms of trying to help make our development process easier. It was
scary at first, like I just didn't feel comfortable sharing my questions in public.
I didn't want people to know that I don't know how to do certain things, you
know, like I didn't want people to see that I'm actually not that good. But this
is how it it works in open source. And the community has always been kind
and helped me with my questions without saying that you're stupid. Like I
never felt like I was being judged. I think it does start with Guido. The fact that
Guido was very active in bringing more voices into Python absolutely made
Python better and stronger. Just the way the whole community works and
what we stand for, thanks to Guido's leadership, is where I want to be. And I
think that's true for a lot of people. About six, seven months after I started
reaching out to Guido, I was recommended to become a Python core
developer. It really wasn't until 4 months ago that for the first time ever.
There's a woman... There's a woman who became a Python core developer
and earned that commit privilege. The first woman ever to join our team and
has continued to be there and participate and try to help us and always a very
good advocate to try to improve our diversity. Now that I've seen the camera,
I can't do it. My life really changed after that. A lot of opportunities opened up
just because I'm a Python core developer. Hi, how are you? [Music] Mariatta
went on to give her own set of talks about how important mentorship is. When
you don't have role models who you can relate to, you start believing that you
cannot do it. Thank you. Hi everybody. Uh my name is Mariatta. I'm a PyLady. I
run PyLadies Vancouver. I also help with the PyLadies con. 10 years ago, I was
also in this room for the Pyladies luncheon at PyCon US 2015. It was a life-
changing event for me. It was at that event that I felt for the first time in my
life as a developer, I felt like I belong in tech because I see 100 women in the
room with me. I just want other women to have role models. I hope I can help
inspire them and help them. These opportunities belong to you, too. You're all
the reason I do this because I know there's still a lot to do and I know together
we can help each other and support each other. Okay, I think that's it. Thank
you so much everybody. [Applause] I have been so consistently impressed by
the Python community's ability to have respectful and and real reflection and
dialogue about how to steward itself and how to move it forward in a way that
I find so inspiring and a vision of what is possible in other communities. And I
mean that really sincerely. There were an ever growing number of sort of
scientific disciplines where all the code was written in Python or a lot of it was
prototyped in Python at least. And then the next step was machine learning
packages which started with TensorFlow and was later followed by PyTorch.
For a long time, Python was seen sort of as a scripting language that you
would just do small things that you need to automate and not production
ready code and so it wasn't given a ton of attention. And then now AI/ML has
sort of changed things where it is now a business driver. It appeals to people
who are not professional programmers but need software to do a task. There
are some other languages like Rm you can do some interesting stuff in but
Python is really it for a AI/ML these days. Python has probably like centuries of
engineering time that has gone into code in the ecosystem specifically on
those topics. So if you're using Python, you're able to instantly tap into those
libraries. Meta has PyTorch, which has a amazing Python API and front-end
people can interact with. There's also SciPy, NumPy, Numba, Pandas. There's
a whole suite of really extensive tools. Trying to build a language and a
language ecosystem that is amendable to all of that is non-trivial. That
actually took real design, real thought, and real ecosystem collective
innovation over the course of decades. The back-end of those tools are
usually C or Fortran or some other native language that's much faster, but
would be difficult for someone with an AI background to program in. And it
continues to be used for all that by all the AI scientists, developing the
models, and the people training the models, people using the models. And
that brings yet another increment of of growth to the Python community.
[Music] Python's a fantastic language even if you're not a scientist. I just don't
think it would have risen to the level of dramatic usage without the science
first data science and machine learning story. We had a massive impact in the
world. You know, I think one testament to the future of Python is, if you
prompt any of the LLMs to do code generation today. If it's front-end, it's going
to be JavaScript. If it's back-end data analysis, it's going to be Python. That's
the future. And Python is a part of that future. Lucky me that I that I chose
that language and not not a different one. Hey, Jacob. Oh, hello, morning.
Hope you don't mind being filmed. Yeah. Ah, okay. Ida's following me. All right.
Yeah, she's shooting some b-roll for the documentary, I think. Ah, nice. I first
used Python in 1997 or something like that. Wow, that's really early days. So,
it's got 30 frames of animation. Oh, wow. I told everyone that he would hate
getting the DSA, but they did it anyway. Yeah. Sorry, the DSA? Distinguished
Service Award. I labeled him in the annual report as like a leader in the Python
community once and he made me take it out. Yeah, we can see that. But
nevertheless, he was on the steering council for five years. Uhhuh. And he
was a leader. I got a job from a Python conference back in 2017. I grew up in
India. I moved to Germany, changed my life. So I think Python changed a lot
of things for me and I just wanted to say thanks to you for for making this
language. That's very sweet. Yeah. Do you mind if I uh take a picture with you
or that you don't like it? I'm so sorry. I really don't like it and especially not in
busy places. Okay, no problem. I get it. Okay. Find me in a dark alley and I'll
do it. Okay. Okay. I get it. Ah, I always kind of looked at myself as the bass
player of Python, which is great. You know, you can do a lot, you can have fun,
and the spotlight's not on you. And I love that. I can't imagine having that kind
of spotlight on you, you know, for so many years. I heard a story from an
Apple VP of engineering, that Steve Jobs had turned down their hire of Guido
because he said, he has his own following and we don't want to have that kind
of distraction. Python has always been a language that changed. We've never
been one of those languages that says if you write code against this version of
Python, it will run forever with any new version of the language. We just
simply have never been those people. A PEP is an acronym for Python
Enhancement Proposal. That's a document that's written by someone who
wants to make a significant change to Python. Basically, you're trying to
convince people that this is a good idea. It would be sent for discussion for a
mailing list and then eventually Guido as the BDFL, the Benevolent Dictator
for Life, would decide whether your change was going in or not. But people
always have worried that the next change is going to be the one that changes
the feel of the language. It won't fit my brain anymore or it won't be
accessible anymore. I've actually seen people storm out of rooms saying,
"You're ruining this language." Some people take it very, very personally and
seriously. And the Walrus operator was no different. Yeah so, PEP 572, I don't
know who coined the term the Walrus Operator, but if you kind of turn your
head, it looks like a little walrus. It was a new feature that was proposed, but it
was also a syntax change. The Walrus operator lets you do assignments,
meaning put values into variables in places that you previously could not.
That was probably the most contentious language change, oddly enough,
because it's kind of a minor thing, but it it there was so much passionate
feeling about whether that should be added or not that it created kind of a bit
of a of a ruckus. When I first saw the Walrus Operator, I didn't like it. It kind of
felt a little un-Pythonic to me, but then I started to play with it. There was a
particular use case that I came up with in my own code that I was like, "Oh,
you know what? This is actually pretty cool". And so then I was like, well, I it's
something that I won't use very often, but when I need it, it's really great to
have. And I turned, you know, 180° and became a fan of it. But it was very
disruptive. [Music] Language features and especially syntax can be a double-
edged sword. So one person's succinct, elegant code can be another person's
unreadable puzzle or a fusticated mess. There were very strongly voiced
predictions about how bad it would be for Python. And then just because
Python was so much more popular at the time, there are so many places
where people talk about Python. I mean Twitter, you know, at the time. This is
all happening in public, right? And everyone can kind of with low effort throw
their hat into the ring and not everyone is going to restrain themselves when
they're doing it. I started being more and more convinced that PEP 572 was
actually the right thing to do. I was the BDFL and I accepted the PEP. And the
next morning I woke up and I felt miserable because of all the attacks that
had happened before. I sat down at my computer, wrote a short email, and hit
send wherein I announced that I resigned at BDFL. And that had an incredible
impact because nobody had expected I would resign and certainly not that I
would rage quit over this issue, which essentially it was. [Music] Transfer of
power. Now that PEP 572 is done, I don't ever want to have to fight so hard for
a PEP and find that so many people despise my decisions. I would like to
remove myself entirely from the decision process. I'm basically giving myself
a permanent vacation from being BDFL and you all will be on your own. I am
not going to appoint a successor. So what are you all going to do? Create a
democracy, anarchy, a dictatorship, a federation? I'll still be here, but I'm
trying to let you all figure something out for yourselves. I'm tired and I need a
very long break. That was it. Haven't read that.. That was I thought that was
pretty well written. I like to say he mic dropped his way out. You know, he just
was like, I'm out. I'm done. You guys figure it out. So, it was a complete and
total shock to me. Yeah. I just felt really sad about it. I wish he would have
retired under better circumstances. I felt I needed to take a step back to sort
of recover myself. I think a lot of people really felt for Guido, you know, that
he could be pushed to that point like maybe we let him down to allow the
vitriol over this change to Python to push, you know, somebody that we cared
about to that point. We all perceived that it was like a a momentous occasion
or like a significant change that you would put a mark in your timeline in the
history book in the history of Python, right? Because it had been run on the
BDFL model for its entire existence. So there was a little bit of uncertainty like,
can this work at all without got Guido? It's kind of a parent saying, it's time for
you to grow up and figure it out on your own. I'm not going to solve this
problem for you. The first order of business was deciding on how to decide.
And it turns out some people have very strong opinions on voting systems.
Programmers love arguing about voting methods. I remember thinking this
isn't going to work. Lot of strong voices. It's really difficult when you have
hundreds of core developers and thousands of people online and millions of
people in the community and probably billions of dollars of software that run
on Python. You can't think about that cuz it definitely gets overwhelming. I will
fully admit it was stressful. I had to go to an ear, nose, and throat specialist
because I actually was starting to choke on my own throat from the stress. It
was not fun because if we couldn't decide on how we were going to decide,
the project was done. We really approached it like the nerdy engineers we are.
In Python classic fashion, we wrote a bunch of peps. We didn't want to rush it
because we knew we were going to have to live with this potentially forever.
But we also realized the world was watching and did not like the idea of not
knowing whether this language was going to be around in a year or not,
because we couldn't stop bickering among ourselves about how to run
ourselves. People sponsored different kinds of models. I think there was one
which was like, let's pick another BDFL because that's what we feel
comfortable with. And then there was various kinds of committees and
councils and we ended up settling on the five person steering committee.
Good morning PyCon! Thanks so much for joining us. So, welcome to our
panel with the Python steering council. Because there's five people, you don't
have the same problem of like all the stress and responsibility of making these
decisions falling on one person. I actually felt that it made sense for me to be
on that first steering council given that there was no longer feeling so burned
out or attacked, to provide some amount of continuity. "You know how this
goes when your kid goes off to college. Some of you may have experience
with that. you're no longer directly involved in their lives maybe, but you
never stop worrying. And that's how I feel about Python at the moment. And
that's why I [Applause] why I nominated myself for the steering committee
and here I am". There were elections for the second year steering council and
at first I nominated myself and then withdrew because there were enough
other strong candidates. They didn't need me and I was happy to uh to sort of
let go of it. [Music] The legitimacy that came from the replacement springing
up from the community is essential to it being accepted. It came from us, so
it's accepted by us. It works. I think it works for us now. There may be a time
in the future where it doesn't work or pieces of it don't work. You have to be
willing to evolve. Change is the one universal constant of the universe. And so
things will always change and you have to be ready and willing to adapt to
change. [Music] It started out as a hobby project. Definitely. I think I probably
wanted to prove something to myself more than anything. It exceeded my
wildest expectations and it actually continues to do so. I constantly hear from
people whose lives were completely changed by Python and it has created
this incredible community which was also a complete sort of bonus over
everything else I had anticipated. This community that has like a massive
conference every year and smaller conferences in every continent I think
except Antarctica. There was one of the Python conferences where there was
a few thousand people in the audience. I remember just looking around and
going, this is mind-blowing. That's the point at which I knew we had achieved
something important, something that made a difference in people's lives and
in the world. Python turned out to be much more successful than perhaps any
of us thought except maybe Guido and his team. I think they always believed
that this was the future. And of course, it's now one of the most popular, if not
the most popular programming language in the world. He spent two weeks in
Christmas, in like 1989, writing a programming language because he thought
it would be fun. Like who would have imagined that that would be such a life
altering and also world altering thing to have done. I think it's been great for
the world. I think it's made people feel like they can get into programming
when they never thought they could. I think it made programming accessible
to people. It's literally part of kindergarten through grade 12 education around
the world. And is on Mars thanks to being used as a scripting language to
process the parachute of the Perseverance rover landing. Like it's hard to
think of anything that hasn't been touched by some Python code somewhere.
It's mind boggling. It's an important language. It's a popular language. It's a
vibrant and relevant language today as much as it was in the past and I
believe as much as it will be in the future. Programmers 30 years from now
will be like, "Oh yeah, you know, I I'm still using Python." Just like today,
people are still using Fortran and C and C++ and those are old languages you
know too in the scheme of things. Scheme - Lisp another old language. So
yeah. [Music] [Music] Now I keep thinking of like weird jokes. There's this
library in Python called Pickles because pickle is a funny word I guess. The
documentation used to have a footnote about how you should imagine Guido
and Jim sniffing pickles.