microsoft/TypeAgent

Public

mirrored fromhttps://github.com/microsoft/TypeAgentAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
8ba3ebd84dd1bb6343ebae028996313cabd70764

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

python/ta/testdata/PythonDocumentary.vtt

3037lines · modecode

1WEBVTT
2Kind: captions
3Language: en
4
500:00:00.800 --> 00:00:04.901
6Did you think Python was going to get
7popular from the beginning or?
8
900:00:05.520 --> 00:00:08.956
10[Music]
11
1200:00:14.533 --> 00:00:21.280
13Python has contributed to making critical thinking a 
14little more approachable by more people.  
15
1600:00:21.280 --> 00:00:23.478
17You can spend one to two hours,
18
1900:00:23.478 --> 00:00:25.520
20learning programming fundamentals
21
2200:00:25.520 --> 00:00:28.120
23and then you can write like
2410 to 20 line of code
25
2600:00:28.120 --> 00:00:29.353
27that do something interesting.
28
2900:00:29.353 --> 00:00:32.400
30The language, the community, the ecosystem,
31
3200:00:32.400 --> 00:00:37.464
33the market, the whole thing has had such an 
34impact on humanity. 
35
3600:00:37.464 --> 00:00:40.575
37Today, I think it's safe to say that almost
38anywhere there's a computer,
39
4000:00:40.575 --> 00:00:42.200
41there's probably some Python.
42
4300:00:42.200 --> 00:00:44.360
44It's literally on Mars.
45
4600:00:45.306 --> 00:00:49.056
47The impact of AI, I think we're still 
48seeing what that's going to be.
49
5000:00:49.056 --> 00:00:51.240
51Python is incredibly important for that.
52
5300:00:52.147 --> 00:00:56.880
54To fully understand how Python got
55so big, we have to go back in time.
56
5700:01:00.000 --> 00:01:01.600
58Maybe not that far back.
59
6000:01:02.746 --> 00:01:05.240
61Everything started back in Amsterdam in the 80s
62
6300:01:05.240 --> 00:01:08.920
64during my time at CWI, a Dutch research facility.
65
6600:01:11.440 --> 00:01:17.263
67The CWI had been behind a lot of major
68programming language developments.
69
7000:01:17.520 --> 00:01:20.503
71Algol 60 and Algol 68 for instance.
72
7300:01:20.880 --> 00:01:25.748
74And Lambert Meertens had tried
75teaching programming to artists
76
7700:01:25.748 --> 00:01:28.240
78and discovered things about
79
8000:01:28.240 --> 00:01:34.720
81programming that are easy, if you're a scientist 
82or a geek. But for somebody like an artist,  
83
8400:01:34.720 --> 00:01:39.732
85those things weren't obvious because you had to 
86know something about the computer.
87
8800:01:39.732 --> 00:01:44.240
89The cause of the frustration was the low level
90of the languages that were available.
91
9200:01:44.240 --> 00:01:48.466
93The computers were immensely 
94expensive and compared with that
95
9600:01:48.466 --> 00:01:51.361
97a programmer was really really cheap
98
9900:01:51.361 --> 00:01:53.680
100and so programming languages
101
10200:01:53.680 --> 00:01:57.223
103were designed with that
104economic relationship in mind.
105
10600:01:57.579 --> 00:02:00.168
107It didn't matter if it took a long time to
108
10900:02:00.168 --> 00:02:06.880
110program as long as it didn't demand too much of 
111the computer because that's where the cost was.  
112
11300:02:06.880 --> 00:02:11.440
114We looked at each other and said, can't we do a 
115better job? Can't we design a language that is  
116
11700:02:11.440 --> 00:02:15.600
118easy to learn, easy to teach,
119but also easy to use.
120
12100:02:15.600 --> 00:02:18.400
122So that beginners could
123understand how to program
124
12500:02:18.400 --> 00:02:22.348
126without having to go into all
127those messy hardware details.
128
12900:02:22.348 --> 00:02:25.320
130And that's how the ABC project was born.
131
13200:02:27.920 --> 00:02:31.652
133One of the members of the team 
134was Guido van Rossum.
135
13600:02:31.652 --> 00:02:37.496
137[Music]
138
13900:02:39.680 --> 00:02:46.320
140I was hired to work on ABC for which 
141there was a small prototype but every  
142
14300:02:46.320 --> 00:02:52.560
144part of the prototype had to be expanded 
145to fully working according to the spec.
146
14700:02:54.160 --> 00:03:01.840
148In 1985, we made the release of ABC. And 
149then we hit the problem: how to make the  
150
15100:03:01.840 --> 00:03:05.120
152world know that there was ABC?
153
15400:03:05.120 --> 00:03:11.080
155We did not have a good way of
156reaching our intended audience.
157
15800:03:11.080 --> 00:03:12.840
159The web did not exist.
160
16100:03:12.840 --> 00:03:17.560
162Most people had never heard of
163a computer or even seen one.
164
16500:03:17.600 --> 00:03:23.182
166If anybody wanted a copy, they had to send us 
167a letter and we'd send them a floppy disc.
168
16900:03:24.300 --> 00:03:30.640
170So I'm afraid ABC reached very few people and 
171at some point the directors for reason, that  
172
17300:03:30.640 --> 00:03:33.960
174I still don't understand, killed that project.
175
17600:03:33.960 --> 00:03:38.720
177I had spent, well, 3 and 1/2 years of hard work
178
17900:03:39.202 --> 00:03:44.481
180on this language and the implementation
181to make it as as good as we could.
182
18300:03:44.481 --> 00:03:45.812
184So it was disappointing.
185
18600:03:46.320 --> 00:03:49.594
187[Music]
188
18900:03:49.594 --> 00:03:55.280
190Guido was transferred to another 
191project on a distributed operating system,
192
19300:03:55.280 --> 00:03:56.680
194the amoeba system.
195
19600:03:58.763 --> 00:04:03.360
197One of my jobs at that project as
198the programmer, not the researcher,
199
20000:04:03.360 --> 00:04:09.569
201was to write, or help write, a large
202number of user applications.
203
20400:04:09.920 --> 00:04:12.169
205And I didn't actually think
206
20700:04:12.169 --> 00:04:16.860
208that for many of those utilities C was a 
209very good language.
210
21100:04:18.181 --> 00:04:19.992
212And I thought, well,
213
21400:04:19.992 --> 00:04:27.120
215oh man, if we just could program ABC instead of 
216C, each of those utilities would be like half a  
217
21800:04:27.120 --> 00:04:32.960
219page of code and I could write the entire suite 
220of utilities in a couple of weeks instead of the  
221
22200:04:32.960 --> 00:04:35.800
223years that it looked like it
224was going to take us.
225
22600:04:35.800 --> 00:04:40.840
227Except that ABC was so high and abstract,
228
22900:04:40.880 --> 00:04:49.120
230it wasn't a good language to talk to servers 
231and file systems and processes and it sort of  
232
23300:04:49.120 --> 00:04:56.080
234the whole operating system thing was abstracted 
235away from ABC. So I thought, well, there really  
236
23700:04:56.080 --> 00:05:03.040
238ought to be a language that sort of bridges the 
239gap between C and shell. And we looked at Perl and  
240
24100:05:03.040 --> 00:05:11.120
242we didn't think it was any good as a programming 
243language. It was about as bad as as Basic,  
244
24500:05:11.120 --> 00:05:18.880
246although in different ways. So, Python was also 
247in a part built as an alternative to Perl. That's  
248
24900:05:18.880 --> 00:05:24.120
250where I decided, oh well, I'm going to see if 
251I can make my own programming language.
252
25300:05:24.120 --> 00:05:27.602
254[Music]
255
25600:05:28.720 --> 00:05:34.800
257One Christmas holiday, I believe, he decided 
258to spend his time designing and building a  
259
26000:05:34.800 --> 00:05:39.360
261new programming language for the operating 
262system based on the principles that he'd  
263
26400:05:39.360 --> 00:05:40.808
265learned while on the ABC project.
266
26700:05:41.773 --> 00:05:46.080
268It was logical that I would
269start with ABC as an example.
270
27100:05:46.080 --> 00:05:51.840
272The most prominent feature that 
273Python borrowed from ABC is actually the use  
274
27500:05:51.840 --> 00:05:59.040
276of indentation for statement grouping. But it 
277was also logical that I sort of dropped the  
278
27900:05:59.040 --> 00:06:04.632
280things from ABC that I didn't particularly 
281like. That's how we ended up with Python.
282
28300:06:10.000 --> 00:06:18.720
284Okay. I finally was confident enough of 
285the interpreter was complete enough that  
286
28700:06:18.720 --> 00:06:24.800
288I showed it to Lambert. He showed me a 
289language he had developed stealthily,  
290
29100:06:24.800 --> 00:06:31.120
292which he called Python, named after Monty 
293Python. I said look what I made. It was  
294
29500:06:31.120 --> 00:06:36.320
296clear to me that it had some resemblance 
297to ABC. The command line prompt is even  
298
29900:06:36.320 --> 00:06:43.920
300the same. So Lambert watched me type a few 
301things and.. Guido was excited about it and he  
302
30300:06:43.920 --> 00:06:48.240
304apparently thought I would be excited as well. 
305At some point he had seen enough and he said,  
306
30700:06:48.240 --> 00:06:54.827
308"Can I try something?" And he types one very 
309short line of code and it crashes the interpreter.
310
31100:06:56.960 --> 00:07:02.640
312And he knew that that it would. The point 
313escaped me. I didn't know why he thought  
314
31500:07:02.640 --> 00:07:08.400
316this was better than ABC and why he had 
317done this whole project. I went back and  
318
31900:07:08.400 --> 00:07:15.120
320the next day I had a fix for it. But it was 
321a pretty crushing experience to be honest.
322
32300:07:28.480 --> 00:07:32.720
324It must have been at least half a year 
325later, that I first got acquainted with  
326
32700:07:32.720 --> 00:07:40.240
328Python. So this is the office where Guido 
329and I were holed up when he created Python.  
330
33100:07:40.240 --> 00:07:47.360
332There were two important users. Sjoerd was 
333one of them and the other was Jack Jansen.
334
33500:07:47.360 --> 00:07:54.720
336Guido was sitting over there and I was sitting 
337over there. If you want to prototype a program,  
338
33900:07:54.720 --> 00:08:01.280
340you sort of write the outlines of the program, 
341but it doesn't actually work. When you do this  
342
34300:08:01.280 --> 00:08:07.920
344in Python, it actually works. It's readable. 
345It's very easy to program and the indentation  
346
34700:08:07.920 --> 00:08:13.680
348is totally natural as far as I'm concerned 
349anyway. Sjoerd and Jack were the most active  
350
35100:08:13.680 --> 00:08:18.960
352in using Python. You find bugs, you find the 
353things that you want to extend and then telling  
354
35500:08:18.960 --> 00:08:26.000
356me about it because all they had to do was say, 
357"Hey, Guido." It was the first real interactive  
358
35900:08:26.640 --> 00:08:30.960
360systems programming language. So, you could just 
361sit and write and run it immediately without any  
362
36300:08:30.960 --> 00:08:39.040
364compilation. So, it was much more fun to use 
365than the old programming languages, but slower.
366
36700:08:39.040 --> 00:08:43.440
368I think it was mostly Jack's idea in 
369the end, while we all worked on it,  
370
37100:08:43.440 --> 00:08:50.880
372to make an open-source release. CWI allowed 
373Guido to distribute Python to the world as  
374
37500:08:50.880 --> 00:08:55.760
376long as its copyright notice was there. They 
377would have held back if they had known it  
378
37900:08:55.760 --> 00:09:00.560
380would be such an incredible success, which 
381is good that they didn't know. Nobody knew.  
382
38300:09:00.560 --> 00:09:07.200
384I didn't either. Because if they had held back, 
385it would never have become an incredible success.
386
38700:09:08.720 --> 00:09:13.200
388Then we had to actually physically do 
389the release which turned out to be an  
390
39100:09:13.200 --> 00:09:22.640
392incredible pain because Usenet was 
393the only thing we had to release it.
394
39500:09:22.640 --> 00:09:30.400
396Usenet was a network of, you could say, bulletin 
397boards. People would write messages. They would  
398
39900:09:30.400 --> 00:09:35.600
400get distributed over the world and then there 
401were the groups for all the different computer  
402
40300:09:35.600 --> 00:09:44.800
404languages. Usenet had a very strict limit on 
405the size of a single post. First put your entire  
406
40700:09:44.800 --> 00:09:52.080
408source tree in a tarball. Then compress it and you 
409have to do another step where you turn the binary  
410
41100:09:52.080 --> 00:10:01.360
412data into ASCII encoding. So you have this huge 
413file with gobblygook, but it's at least printable  
414
41500:10:01.360 --> 00:10:09.040
416gobblygook. And then you apply another tool that 
417snips it into pieces. Then there is a script where  
418
41900:10:09.040 --> 00:10:16.400
420if you have downloaded all 21 parts, you can 
421undo all those operations in reverse. That was  
422
42300:10:16.400 --> 00:10:22.400
424what people put up with. So we did all the work on 
425our side and plenty of people did all the work on  
426
42700:10:22.400 --> 00:10:31.920
428their side to unpack this because I had apparently 
429written a very good teaser about what this was.
430
43100:10:34.920 --> 00:10:42.240
432[Music] Very quickly I started getting feedback 
433via email or Usenet from people who had done  
434
43500:10:42.240 --> 00:10:50.960
436something exciting with it or who had 
437found a bug and that just kept coming.
438
43900:10:50.960 --> 00:10:57.760
440We worked at Johnson Space Center. So our interest 
441was putting together flight simulations and tools  
442
44300:10:57.760 --> 00:11:05.680
444for the design engineers that would be used 
445for the shuttle program at the time. I remember  
446
44700:11:05.680 --> 00:11:14.960
448needing a scripting language to control a C++ 
449library project we were working on at the time.  
450
45100:11:14.960 --> 00:11:21.760
452Not too long into that search, I found Guido's 
453Python distribution at CWI. I was able to FTP  
454
45500:11:21.760 --> 00:11:33.840
456that down, unpack it, compile it, and run it in 
457a matter of 10 minutes or so. That was my first  
458
45900:11:33.840 --> 00:11:41.120
460impressive experience with Python. 20 years ago, a 
461computer that cost a million dollars and filled an  
462
46300:11:41.120 --> 00:11:48.240
464entire room had less capability than an 11 pounds 
465desktop computer today. With costs going down and  
466
46700:11:48.240 --> 00:11:53.600
468capabilities going up, the computer has entered 
469our lives quickly and unobtrusively. There were  
470
47100:11:53.600 --> 00:11:59.520
472lots of things changing in a major way that made 
473computing particularly exciting to be in. At that  
474
47500:11:59.520 --> 00:12:04.720
476time, computers suddenly were coming out of the 
477machine room and landing up on your desk. And  
478
47900:12:04.720 --> 00:12:10.480
480then of course the web happened. Then it all 
481exploded. After the internet came to Europe,  
482
48300:12:10.480 --> 00:12:17.920
484it was much easier for software to be distributed. 
485Python very slowly took off. Then there was  
486
48700:12:17.920 --> 00:12:30.240
488a growing Python community which was very 
489supportive like a big family you could almost say.
490
49100:12:30.240 --> 00:12:37.520
492Part of the benefit of this is that I don't.. 
493I'm like, there's no strain on my body at all.  
494
49500:12:37.520 --> 00:12:45.920
496I was working on developing a kind of distributed 
497equipment database and a colleague at the lab,  
498
49900:12:45.920 --> 00:12:51.440
500Michael McLay, knew that I was looking for 
501what was called a scripting language that was  
502
50300:12:51.440 --> 00:12:57.200
504also sophisticated that would enable you to build 
505substantial things and not get bogged down in the  
506
50700:12:57.200 --> 00:13:04.240
508ragged edges. Scripting languages were designed 
509to glue things together, to connect things that  
510
51100:13:04.240 --> 00:13:10.320
512already worked, that already existed. Immediately 
513on trying it, I was just amazed and thought this  
514
51500:13:10.320 --> 00:13:18.960
516can't be as good as it is. And it was. Mike was 
517interested in bringing Guido over and Guido was  
518
51900:13:18.960 --> 00:13:26.320
520interested in coming over. 99% of the people that 
521I got in touch with were in the United States.  
522
52300:13:26.320 --> 00:13:33.600
524So Guido ended up coming and then Mike and Guido 
525and I wanted to arrange a workshop so people who  
526
52700:13:33.600 --> 00:13:38.800
528were interested in Python could gather and talk 
529about what they were working on and what they  
530
53100:13:38.800 --> 00:13:47.280
532felt was needed. This is the t-shirt for the first 
533conference. And so this yeah that that was just  
534
53500:13:47.280 --> 00:13:55.920
536sort of flowy writing and on the on the back it 
537gave the date of the conference. Spam, spam, spam,  
538
53900:13:55.920 --> 00:14:02.880
540spam. It's such a fantastic song. That workshop 
541really is for me the beginning of the Python  
542
54300:14:02.880 --> 00:14:09.280
544community. November 1994, Gaithersburg, Maryland 
545in this windowless government office building at  
546
54700:14:09.280 --> 00:14:15.200
548NIST. That was a great experience. It was about 
549two days. We had 20 people. I still have the  
550
55100:14:15.200 --> 00:14:20.960
552t-shirt from that workshop. There was just kind 
553of this feel of, hey, there's something happening.  
554
55500:14:20.960 --> 00:14:26.480
556This will be fun to hang out with the people 
557that I chat with online, to actually see Guido  
558
55900:14:26.480 --> 00:14:31.840
560in person and actually make decisions. And we knew 
561that if you impressed him with the feature and it  
562
56300:14:31.840 --> 00:14:35.840
564was an easy thing to install, he would add it to 
565the language right there so that we can at least  
566
56700:14:35.840 --> 00:14:39.840
568try it out in beta form. There was like a whole 
569room of people who knew what you were talking  
570
57100:14:39.840 --> 00:14:51.680
572about because they had all studied Python deeply 
573or almost all. One of the people was Barry Warsaw.
574
57500:14:51.680 --> 00:15:01.840
576[Music] Around 1994, I joined a company, CNRI, 
577Corporation for National Research Initiatives,  
578
57900:15:01.840 --> 00:15:07.840
580and we were building these software agents, 
581little programs that can move around to  
582
58300:15:07.840 --> 00:15:12.400
584different computers on a network, and they pickle 
585themselves up and move around to another place and  
586
58700:15:12.400 --> 00:15:18.960
588reconstitute themselves and do some more work. 
589A friend of mine from NIST sent me an email and  
590
59100:15:18.960 --> 00:15:22.880
592said, "Hey, we've got this guy coming over from 
593the Netherlands and he's going to talk about his  
594
59500:15:22.880 --> 00:15:28.320
596language. Do you want to come?" And so we went 
597to the workshop and just absolutely fell in love  
598
59900:15:28.320 --> 00:15:36.400
600with of course Python and of course Guido. Even 
601then, it had the feeling that there was a there  
602
60300:15:36.400 --> 00:15:42.080
604there was something that was going to happen 
605that there was potential. I remember coming  
606
60700:15:42.080 --> 00:15:48.080
608back to CNRI saying, "Oh, this is great. we're 
609going to use Python for sure in our project. And  
610
61100:15:48.080 --> 00:16:04.480
612one of our colleagues at CNRI said, "Well, what 
613do you think? Why don't we just hire Guido?"
614
61500:16:04.480 --> 00:16:11.040
616CNRI was set up to sort of promote information 
617infrastructure and foster research, help build  
618
61900:16:11.040 --> 00:16:16.800
620pilot projects, take the results and put 
621them out into the public so that others  
622
62300:16:16.800 --> 00:16:22.160
624could then leverage it. Part of CNRI's mission 
625was to cultivate internet based things. That's  
626
62700:16:22.160 --> 00:16:30.560
628why our name Corporation for National Research 
629Initiatives has the word "initiatives" in there.
630
63100:16:32.720 --> 00:16:40.880
632We had a need for a language that would be easier 
633for people to deal with than any other traditional  
634
63500:16:40.880 --> 00:16:46.960
636languages that were around at the time. I ran 
637across a photograph. There was a party at CNRI,  
638
63900:16:46.960 --> 00:16:56.640
640years ago. It was probably I think 1996. 
641And it's it's a Guido. Yeah. I used to say  
642
64300:16:56.640 --> 00:17:02.560
644Guido. Many people say Guido, but I said Guido 
645and I'm sure I don't pronounce it right. Oh,  
646
64700:17:02.560 --> 00:17:07.840
648he was a very stylish person and he was a very 
649strong fellow. Got introduced to him and it just  
650
65100:17:07.840 --> 00:17:13.760
652seemed like it was a good fit and so I made the 
653job offer. For me, it was fantastic. There is no  
654
65500:17:13.760 --> 00:17:18.800
656doubt about that. One of the things he insists on 
657if you want to get him to work for you is that he  
658
65900:17:18.800 --> 00:17:25.360
660has some fraction of his time, preferably as much 
661as halftime if not more, to work on the language  
662
66300:17:25.360 --> 00:17:31.600
664itself. the fact that they could work full-time 
665on Python because it turned out that the Knowbots  
666
66700:17:31.600 --> 00:17:38.880
668project was almost more an excuse to to hire 
669me than I did much for that. I kind of feel  
670
67100:17:38.880 --> 00:17:44.880
672like our work on Python was a little subversive. 
673You know, we tended to spend a lot more time on  
674
67500:17:44.880 --> 00:17:50.640
676Python than maybe we should have. I went to 
677CNRI and since I had been a systems person,  
678
67900:17:50.640 --> 00:17:56.800
680I was responsible for setting up python.org. We 
681should have also grabbed python.com even though  
682
68300:17:56.800 --> 00:18:01.760
684we didn't think of Python as a commercial 
685enterprise because someone else got it and  
686
68700:18:01.760 --> 00:18:13.680
688uh used it to host a stupid porn site. For years 
689we had to warn people go to python.org, not .com.
690
69100:18:13.680 --> 00:18:18.960
692It really was the perfect home, I think, for doing 
693all of that early Python development - and develop  
694
69500:18:18.960 --> 00:18:24.320
696a lot of the infrastructure around Python. We 
697had a meeting discussing making some kind of user  
698
69900:18:24.320 --> 00:18:30.640
700group or software organization where the Python 
701software activity was proposed. We need a little  
702
70300:18:30.640 --> 00:18:35.360
704bit of governance, a little bit of organization, 
705but we don't want too much because I don't think  
706
70700:18:35.360 --> 00:18:40.880
708any of us really liked bureaucracy. And then the 
709question came up about what we should call Guido  
710
71100:18:40.880 --> 00:18:48.400
712as part of that. I think it was me who suggested 
713that Guido be called the Benevolent Dictator and  
714
71500:18:48.400 --> 00:18:55.600
716then Barry suggested Benevolent Dictator for Life 
717and that became an internet meme or actually a  
718
71900:18:55.600 --> 00:19:05.440
720software meme. Benevolent Dictator for Life was.. 
721you can find it on Wikipedia. Ultimately, you  
722
72300:19:05.440 --> 00:19:11.440
724know, Guido was the inventor of the language and 
725the final decider about yes, this is going to make  
726
72700:19:11.440 --> 00:19:19.360
728it in or this is not going to make it in. I think 
729I developed my own style during those first years.  
730
73100:19:19.360 --> 00:19:27.520
732All ideas are welcome, but I will choose which 
733ideas I believe are right to add to the language.  
734
73500:19:27.520 --> 00:19:36.960
736There's dozens and dozens of aspects of 
737Python today where somebody had a vision for,  
738
73900:19:36.960 --> 00:19:45.160
740if you just add this to Python, look at 
741all these amazing things that I can do.
742
74300:19:45.160 --> 00:19:48.560
744[Music]
745
74600:19:48.560 --> 00:19:53.040
747I'm one of the many people that came to Python, 
748not as a programmer, but as a scientist. Python  
749
75000:19:53.040 --> 00:19:57.920
751wasn't the first language I used for science. I 
752was doing satellite data processing and I used  
753
75400:19:57.920 --> 00:20:01.600
755Perl to do it and then a year later I would come 
756back and try to figure out what I'd done and I  
757
75800:20:01.600 --> 00:20:07.840
759had no idea. Python had the opposite experience. I 
760first started using Python in 1997. I just used it  
761
76200:20:07.840 --> 00:20:12.480
763to do some scripting, do some data processing with 
764some medical imaging data and I was like this is  
765
76600:20:12.480 --> 00:20:18.480
767nice. This is pretty cool. A year later, so 1998, 
768I came back to look at the code I'd written and I  
769
77000:20:18.480 --> 00:20:23.040
771could read it. I understood what I did. And that 
772was kind of for me the convincing data that said,  
773
77400:20:23.040 --> 00:20:28.240
775"Oh, I need to dig in on this language." 
776And there were a few really key people at  
777
77800:20:28.240 --> 00:20:32.640
779that time who were publishing or talking about 
780how to use Python for science. Not very many,  
781
78200:20:32.640 --> 00:20:38.640
783but a few. Konrad Hinsen was one of them, I 
784remember, and David Ascher and Jim Hugunin.  
785
78600:20:38.640 --> 00:20:45.840
787There's been a number of stages in the life 
788cycle of Python, when it just grew from a a core  
789
79000:20:45.840 --> 00:20:52.080
791language capability to a platform with a number of 
792different specialty modules and packages that made  
793
79400:20:52.080 --> 00:20:59.120
795it very very useful for certain user communities. 
796The first one was probably the numeric community,  
797
79800:20:59.120 --> 00:21:04.320
799the science and engineering folks that wanted 
800high performance matrix operations to be done.  
801
80200:21:04.320 --> 00:21:09.040
803Even though Guido wasn't a scientist himself, 
804wasn't necessarily deeply concerned with the  
805
80600:21:09.040 --> 00:21:16.480
807same things that we were concerned with as 
808scientists, he was open to the suggestions.
809
81000:21:16.480 --> 00:21:19.840
811I think one of the things that people don't 
812appreciate about the Python language as much  
813
81400:21:19.840 --> 00:21:25.360
815now that it's so popular and mainstream 
816is how important it was that Guido was  
817
81800:21:25.360 --> 00:21:31.840
819open to new ideas and open to the needs of 
820people who are not traditional programmers.  
821
82200:21:32.640 --> 00:21:41.120
823I think he had a very clear-eyed quiet focus 
824on understanding some things about the future  
825
82600:21:41.120 --> 00:21:46.560
827that he built into the language. It was uniquely 
828suited to its environment. One of the reasons I  
829
83000:21:46.560 --> 00:21:50.640
831used Python and I think a lot of people used 
832Python at the time is that in the early 2000s,  
833
83400:21:50.640 --> 00:21:55.360
835the world was almost divided into here's an 
836open source ecosystem or you can go and use  
837
83800:21:55.360 --> 00:22:00.000
839Java which is actually a paid thing. I 
840was using MATLAB. I really didn't like  
841
84200:22:00.000 --> 00:22:02.880
843the fact that when I wrote code and I 
844wanted to share that code with others,  
845
84600:22:02.880 --> 00:22:07.440
847I was essentially telling people they had to go 
848buy a license for a software package before they  
849
85000:22:07.440 --> 00:22:10.320
851could even look at my or use my code. You 
852know, these are the days where you have to  
853
85400:22:10.320 --> 00:22:16.720
855like buy the developer tools or spend a couple 
856hundred bucks to get Visual Studio 6.0 and then  
857
85800:22:16.720 --> 00:22:21.120
859Python and then all of these libraries were open 
860source and then could be adapted, could be used  
861
86200:22:21.120 --> 00:22:27.120
863in a commercial project. I was sort of early 
864on convinced by community members that Python  
865
86600:22:27.120 --> 00:22:33.440
867being open- source and the particular way it was 
868open source was very important so that people  
869
87000:22:33.440 --> 00:22:48.000
871would feel comfortable using Python to make great 
872things that they would then be able to to sell.
873
87400:22:51.320 --> 00:22:58.080
875[Music] In 1998, Blender was published on 
876the internet. The software was free and  
877
87800:22:58.080 --> 00:23:04.080
879then you could buy some things around it. 
880We were restricted to use open source. So,  
881
88200:23:04.080 --> 00:23:10.880
883you didn't have a lot of options. We were doing a 
884call on our website like what is the most popular  
885
88600:23:10.880 --> 00:23:18.400
887scripting language that we should add in Blender? 
888Perl was really big and Python was upcoming and  
889
89000:23:18.400 --> 00:23:24.640
891there were some others. And it was interesting 
892to see that everybody who was advising us to  
893
89400:23:24.640 --> 00:23:32.960
895use Perl as scripting language but they only 
896advertised how great Perl is. And the people  
897
89800:23:32.960 --> 00:23:38.880
899who came more from the Python background who 
900said well I think Python is a better choice.  
901
90200:23:38.880 --> 00:23:43.280
903They came with a balanced opinion. And they 
904said okay Perl will give you this and this  
905
90600:23:43.280 --> 00:23:49.760
907and this and Python will give you other things 
908and balancing all of it I would recommend you to  
909
91000:23:49.760 --> 00:24:04.320
911do Python and only for that reason I picked 
912Python just because the people were nicer.
913
91400:24:04.320 --> 00:24:09.360
915It was honestly just a lot of enthusiasts. It was 
916a lot of people who just enjoyed the language,  
917
91800:24:09.360 --> 00:24:12.560
919enjoyed the people involved with the 
920language and it would just happen  
921
92200:24:12.560 --> 00:24:16.000
923to be typically motivating enough for 
924people to want to help out. Ultimately,  
925
92600:24:16.000 --> 00:24:21.680
927there's a sense of fun that comes across 
928and Guido coded that into the name of the  
929
93000:24:21.680 --> 00:24:30.640
931language influenced by Monty Python. It creates 
932a sense of community to have your little jokes.
933
93400:24:30.640 --> 00:24:37.600
935Tim Peters is a famous early example of blending 
936both like the aesthetics of Python and humor. Tim  
937
93800:24:37.600 --> 00:24:45.360
939Peters was this mythical feature.. creature in 
940the world of Python, and no one had met him. He  
941
94200:24:45.360 --> 00:24:51.760
943was out there in the ether as a wise one to give 
944us advice on what to do with numerical processing.  
945
94600:24:51.760 --> 00:24:58.400
947Steve Majewski sent me some email telling me about 
948Python. So I started a email correspondence with  
949
95000:24:58.400 --> 00:25:03.120
951Guido about the language and about the design 
952and I got some of the pre-release code and played  
953
95400:25:03.120 --> 00:25:10.880
955with it and talked to him about design decisions 
956and liked it very much. Tim Peters was a Python  
957
95800:25:10.880 --> 00:25:18.560
959contributor and community member and mentor 
960to me from very early on. Tim was a channeler  
961
96200:25:18.560 --> 00:25:24.560
963of Guido. He had a really unique way of saying: I 
964think Guido's going to like this or I don't think  
965
96600:25:24.560 --> 00:25:30.240
967Guido is going to like that. There's a poem called 
968the Zen of Python which is a partially humorous,  
969
97000:25:30.240 --> 00:25:39.600
971partially serious poem about the the aesthetics of 
972of Python. I'm actually looking at the Usenet post  
973
97400:25:39.600 --> 00:25:47.840
975where Tim posted his first version of the Zen of 
976Python, although he called it the Way of Python.  
977
97800:25:47.840 --> 00:25:54.160
979And it was in response to some discussion 
980where people were complaining that they  
981
98200:25:54.160 --> 00:25:59.680
983didn't understand what was Python's philosophy. 
984They couldn't figure me out. And Tim had figured  
985
98600:25:59.680 --> 00:26:09.280
987me out and he put it basically in poetry. Here 
988is the Way of Python by Tim Peters from 1999.  
989
99000:26:09.280 --> 00:26:15.920
991Beautiful is better than ugly. Duh. Explicit 
992is better than implicit. Simple is better than  
993
99400:26:15.920 --> 00:26:23.280
995complex. Complex is better than complicated. And I 
996love that distinction. Flat is better than nested.  
997
99800:26:23.280 --> 00:26:29.920
999Sparse is better than dense. Readability counts. I 
1000will say it counts for a lot. Special cases aren't  
1001
100200:26:29.920 --> 00:26:36.400
1003special enough to break the rules. Although 
1004practicality beats purity. Errors should never  
1005
100600:26:36.400 --> 00:26:43.760
1007pass silently unless explicitly silenced. In the 
1008face of ambiguity, refuse the temptation to guess.  
1009
101000:26:43.760 --> 00:26:51.520
1011I did not follow that in a very key piece of NumPy 
1012and it's still a mess. There should be one and  
1013
101400:26:51.520 --> 00:26:59.280
1015preferably only one obvious way to do it. That's 
1016a direct reference to Perl's motto of there's  
1017
101800:26:59.280 --> 00:27:03.680
1019more than one way to do it by the way. Although 
1020that may not be obvious at first, unless you're  
1021
102200:27:03.680 --> 00:27:09.760
1023Dutch. Now is better than never. Although never is 
1024often better than right now. If the implementation  
1025
102600:27:09.760 --> 00:27:15.520
1027is hard to explain, it's a bad idea. That's a 
1028really good one. If the implementation is easy  
1029
103000:27:15.520 --> 00:27:21.840
1031to explain, it may be a good idea. Name spaces 
1032are one honking great idea. Let's do more of  
1033
103400:27:21.840 --> 00:27:31.360
1035those. This is so Tim. Normally 'import this', 
1036imports some useful library, which is very serious  
1037
103800:27:31.360 --> 00:27:38.000
1039business. Having an 'import this' that was just 
1040a joke was a bit of lightness that we liked to  
1041
104200:27:38.000 --> 00:27:43.120
1043add. This is from a small hobbyist community, 
1044right? Because if you're a corporate behemoth  
1045
104600:27:43.120 --> 00:27:47.120
1047making a a programming language, like someone's 
1048probably going to tell you that you can't put a  
1049
105000:27:47.120 --> 00:27:52.720
1051silly poem in your in your programming language, 
1052but Python's just made by dogs on the internet,  
1053
105400:27:52.720 --> 00:28:00.240
1055so they can put poems in their software. [Music] 
1056The different ways to make money on the internet  
1057
105800:28:00.240 --> 00:28:05.440
1059are just beginning to emerge. Entrepreneurs are 
1060putting their faith in a new medium to deliver  
1061
106200:28:05.440 --> 00:28:11.200
1063the big payoff. It's the dot-com bubble, all 
1064this money pumping into Silicon Valley software  
1065
106600:28:11.200 --> 00:28:19.600
1067and internet stuff. Early 2000, I decided to 
1068leave CNRI and with a few co-workers joined  
1069
107000:28:19.600 --> 00:28:27.120
1071little startup named BeOpen. While CNRI, I think, 
1072was an amazing home for Python in the early days,  
1073
107400:28:27.120 --> 00:28:31.760
1075everything changes and everything evolves and 
1076thinking, well if we're going to strike out on our  
1077
107800:28:31.760 --> 00:28:38.480
1079own this is probably the right time to do that. 
1080That didn't work out. I'd say within maybe a year  
1081
108200:28:38.480 --> 00:28:45.200
1083or something. BeOpen was completely incompetent. 
1084We spent the summer in blissful ignorance working  
1085
108600:28:45.200 --> 00:28:53.120
1087full-time on Python. We built and released Python 
10882 and within 5 months it was over. We were paid  
1089
109000:28:53.120 --> 00:29:02.400
1091our salaries every 2 weeks, and then suddenly in 
1092late October we weren't. [Music] It was a moment  
1093
109400:29:02.400 --> 00:29:08.400
1095where the [ __ ] could have hit the fan. If all 
1096the Python guys went their separate ways... Python  
1097
109800:29:08.400 --> 00:29:14.880
1099wasn't big enough to survive that at the time. 
1100That was when I had a company Digital Creations  
1101
110200:29:14.880 --> 00:29:19.840
1103that later became Zope, which is an application 
1104server, database server, index server, web server,  
1105
110600:29:19.840 --> 00:29:26.240
1107etc. Very large scale commercial quality 
1108application written in Python. And if Python died,  
1109
111000:29:26.240 --> 00:29:32.560
1111you know who else would die? We'd die. The whole 
1112platform was built on Python. So they were Python  
1113
111400:29:32.560 --> 00:29:40.560
1115experts. We need to go and make sure that Python 
1116is secure for the future and that the team stays  
1117
111800:29:40.560 --> 00:29:49.520
1119together. So we negotiated an agreement with them 
1120to join my company. That was an incredibly lucky  
1121
112200:29:49.520 --> 00:29:53.760
1123rescue. We felt like we really trusted them 
1124and we believed in what they were doing and  
1125
112600:29:53.760 --> 00:30:00.320
1127what they wanted to do with Python and for Python. 
1128This is a place that I'm proud of. In hindsight,  
1129
113000:30:00.320 --> 00:30:06.160
1131it was a really critical point in Python's life. 
1132I think if we had chosen wrong or tried to say,  
1133
113400:30:06.160 --> 00:30:11.040
1135"Oh, well, we'll just strike out on our 
1136own anyway." You never know. But I'm not  
1137
113800:30:11.040 --> 00:30:33.913
1139so sure that Python would have survived 
1140that juncture in its life. Yeah. [Music]
1141
114200:30:33.913 --> 00:30:33.920
1143[Music]
1144
114500:30:33.920 --> 00:30:40.000
1146Python just kept sort of growing and 
1147the community kept self-organizing.  
1148
114900:30:40.000 --> 00:30:48.400
1150One of the I think underlying themes of Python, 
1151if you take it in its totality, is this sense of  
1152
115300:30:48.400 --> 00:30:56.720
1154grassroots movements. Things grow from the bottom 
1155up and evolve to the point where everybody sort of  
1156
115700:30:56.720 --> 00:31:02.880
1158realizes, oh, we need a little bit more structure. 
1159Oh, the Python Software Foundation. In my opinion,  
1160
116100:31:02.880 --> 00:31:10.000
1162the PSF, that damn thing was a success from day 
1163one. That came out of one of the concerns we had  
1164
116500:31:10.000 --> 00:31:19.280
1166had with BeOpen actually. So CNRI had written 
1167a license for Python and put its name on it and  
1168
116900:31:19.280 --> 00:31:26.000
1170BeOpen had copied a version of that license 
1171and put the BeOpen name on it. There was a  
1172
117300:31:26.000 --> 00:31:32.400
1174concern that at some point I might accidentally 
1175end up working for a company that tried to grab  
1176
117700:31:32.400 --> 00:31:39.040
1178ownership of Python. We realized that we really 
1179need an organization that will be independent,  
1180
118100:31:39.040 --> 00:31:47.760
1182will not be beholden to any company and their 
1183whims and their lawyers and will really keep  
1184
118500:31:47.760 --> 00:31:59.840
1186Python users as their first and foremost customer, 
1187so to speak, in mind. [Music] And then the magic  
1188
118900:31:59.840 --> 00:32:17.920
1190happened when we got into PyCon, which is maybe 
1191the third stool of the miracle of Python. [Music]
1192
119300:32:17.920 --> 00:32:24.160
1194What has been your take away from PyCon US this 
1195year? It feels like people are still willing to  
1196
119700:32:24.160 --> 00:32:29.440
1198go do hard things, work on things together, you 
1199know. Wow. They still do have the passion to be  
1200
120100:32:29.440 --> 00:32:35.280
1202honest. So, what was it for you? Uh, for me most 
1203definitely like meeting people I haven't met in  
1204
120500:32:35.280 --> 00:32:40.640
1206a while. That's cool. Yeah. And just pretty 
1207much hanging out with them. You try to walk,  
1208
120900:32:40.640 --> 00:32:45.040
1210Yeah, to the other side. There's like 10 
1211people that you want to see in between like  
1212
121300:32:45.040 --> 00:32:52.080
1214stop. I want to talk to you. Oh, I know. Pablo 
1215and Yuri presented as bananas and then Lukasz  
1216
121700:32:52.080 --> 00:32:56.480
1218asked the question dressed as a banana. 
1219And then Guido came in just as a banana  
1220
122100:32:56.480 --> 00:33:01.760
1222as well. Thank you for what you do for the 
1223PSF. Please don't step down. Just keep doing  
1224
122500:33:01.760 --> 00:33:08.080
1226it forever. Raise your hand if you love the 
1227web. Just raise your hand. Raise your hand  
1228
122900:33:08.080 --> 00:33:17.360
1230if you have done React front-ends. Raise your 
1231hand if you would like to come back. To React?
1232
123300:33:17.360 --> 00:33:24.320
1234No, come back to Python. All right. Good. For 
1235the record, 100%. I begged my mother to take  
1236
123700:33:24.320 --> 00:33:33.280
1238me to PyCon and I met all my online heroes. He 
1239was this distant Benevolent Dictator for life  
1240
124100:33:33.280 --> 00:33:38.240
1242who I'd been talking to over the internet, but 
1243here he was in person and so I was thrilled to  
1244
124500:33:38.240 --> 00:33:43.040
1246be able to finally meet him. Then I 
1247think everyone was aware that he was  
1248
124900:33:43.040 --> 00:33:49.520
1250a 15-year-old kid on the other end of the 
1251terminal. When PyCon was held in Montreal,  
1252
125300:33:49.520 --> 00:33:55.680
1254the organizer asked me if I'd be willing to 
1255give an opening address to the conference. Well,  
1256
125700:33:55.680 --> 00:34:02.160
1258I'm a slightly fast talker and I had some spare 
1259time and I just used it as an opportunity to say  
1260
126100:34:02.160 --> 00:34:06.160
1262thank you. "I like to think of it as I came for 
1263the language, but I stayed for the community. So,  
1264
126500:34:06.160 --> 00:34:10.480
1266I want to personally thank all of you for 
1267making this such a wonderful place to be  
1268
126900:34:10.480 --> 00:34:15.120
1270and such a wonderful group of people to be 
1271around. So, thank you". Luckily, it came  
1272
127300:34:15.120 --> 00:34:21.520
1274off well because people still quote it. I think 
1275it kind of speaks to the core ethos of Python.  
1276
127700:34:21.520 --> 00:34:28.880
1278We try to develop this tool that people can use 
1279for their needs to get their work done. But the  
1280
128100:34:28.880 --> 00:34:36.520
1282community is the true strength of Python. It's 
1283not just the language, right? It's the people.
1284
128500:34:36.520 --> 00:34:43.840
1286[Music] It was steadily growing every single 
1287year. It was getting more and more downloads,  
1288
128900:34:43.840 --> 00:34:50.160
1290more and more people making use of it. It 
1291became a more sophisticated language that was  
1292
129300:34:50.160 --> 00:34:57.760
1294fit for purpose for this new emerging programming 
1295paradigm where the the web itself is the platform.  
1296
129700:34:57.760 --> 00:35:04.640
1298He told me an interesting number that that made me 
1299realize that the Python user community was already  
1300
130100:35:04.640 --> 00:35:10.960
1302much bigger than I had estimated because 
1303he said, "Guido, you don't know the sales  
1304
130500:35:10.960 --> 00:35:17.600
1306numbers for Python books, but I am Tim O'Reilly. 
1307I published the two most important ones and I do  
1308
130900:35:17.600 --> 00:35:23.920
1310know the sales numbers and they are fantastic." 
1311I don't know if he had that much enthusiasm in  
1312
131300:35:23.920 --> 00:35:30.880
1314his voice then, but he was sharing this new 
1315to me important fact which made me realize,  
1316
131700:35:30.880 --> 00:35:38.720
1318oh my gosh! Python tends to get spikes when 
1319certain specialties, I guess you could say,  
1320
132100:35:38.720 --> 00:35:44.080
1322pick the language up and decide that this is 
1323a thing that they want to use in their area.  
1324
132500:35:44.080 --> 00:35:49.600
1326Everybody wanted to to do things with the 
1327worldwide web and Python actually became  
1328
132900:35:49.600 --> 00:35:57.200
1330a really powerful platform for for doing not 
1331just web pages but web servers and services and  
1332
133300:35:57.200 --> 00:36:07.680
1334suddenly we had an increase of people coming in 
1335from the web world. [Music] I think Dropbox was  
1336
133700:36:07.680 --> 00:36:12.960
1338one of the early companies to start building 
1339in Python and reaching millions of users.  
1340
134100:36:14.080 --> 00:36:18.480
1342My name's Drew and I'll be showing you a quick 
1343tour of Dropbox, which is a new way to store and  
1344
134500:36:18.480 --> 00:36:24.000
1346share files online. Python had been largely viewed 
1347as scripting language you run on the back end or  
1348
134900:36:24.000 --> 00:36:29.040
1350maybe in an academic setting or in a scientific 
1351setting, but not really for like production  
1352
135300:36:29.040 --> 00:36:33.760
1354desktop software that you ship to millions of 
1355people. But I just started writing in Python  
1356
135700:36:33.760 --> 00:36:38.000
1358and hoping that none of the roadblocks would 
1359completely blow me up. You can develop programs  
1360
136100:36:38.000 --> 00:36:43.520
1362much faster in Python because it's a higher level 
1363language and it's a very clean easy language and  
1364
136500:36:43.520 --> 00:36:48.960
1366so we could we could be a lot more competitive 
1367than other companies who were writing with Java  
1368
136900:36:48.960 --> 00:36:54.960
1370or C++ or Perl. Even back then we were competing 
1371against the Google's and Microsofts of the world  
1372
137300:36:54.960 --> 00:37:00.720
1374and you know our odds didn't seem very good. So 
1375we needed all the help we can get. Google had this  
1376
137700:37:00.720 --> 00:37:06.400
1378big team like a hundred people, C++ programmers, 
1379trying to do a video hosting site and they could  
1380
138100:37:06.400 --> 00:37:10.880
1382never keep up with this little thing over there 
1383called YouTube and they went and looked and it was  
1384
138500:37:10.880 --> 00:37:16.480
1386just a couple of people writing Python. Python 
1387ended up being a big force multiplier on our  
1388
138900:37:16.480 --> 00:37:25.200
1390effort and no other language that we considered 
1391had anything close to that kind of capability.
1392
139300:37:27.160 --> 00:37:28.160
1394[Music]
1395
139600:37:28.160 --> 00:37:32.080
1397The fact that data science suddenly 
1398became a thing that you had to do,  
1399
140000:37:32.080 --> 00:37:39.200
1401combined with the fact that Python was sort 
1402of well positioned to do data science stuff  
1403
140400:37:39.200 --> 00:37:50.080
1405meant a huge amount of new Python users flowed in.
1406
140700:37:50.080 --> 00:37:56.800
1408What was starting to happen in the 2009-2010 
1409time frame, we were seeing more and more of  
1410
141100:37:56.800 --> 00:38:03.360
1412our consulting deals tied to using Python not as 
1413really a replacement for MATLAB or engineering  
1414
141500:38:03.360 --> 00:38:09.680
1416type things, but using Python for doing data 
1417processing. We didn't call it data science at the  
1418
141900:38:09.680 --> 00:38:13.360
1420time, but it was that kind of work, right? It was 
1421modeling, predictive analytics, things like that.  
1422
142300:38:13.360 --> 00:38:18.320
1424This is the time of Hadoop, the time of big data, 
1425the time of Spark, and people were doing Java at  
1426
142700:38:18.320 --> 00:38:24.160
1428scale. We were starting to do much more consulting 
1429work in the financial industry and we'd walk into  
1430
143100:38:24.160 --> 00:38:28.880
1432these large very well-capitalized firms and they 
1433were using Python to do business data processing.  
1434
143500:38:28.880 --> 00:38:33.200
1436I realized okay if it's a research group over 
1437here doing some science research and they don't  
1438
143900:38:33.200 --> 00:38:38.640
1440have money and they use an open source thing 
1441I get it but if you have JP Morgan right which  
1442
144300:38:38.640 --> 00:38:43.120
1444has a lot of money and they're picking up and 
1445using these scientific tools and they're loving  
1446
144700:38:43.120 --> 00:38:48.800
1448it. I realized that we didn't just have a cheap 
1449free alternative. We actually had something that  
1450
145100:38:48.800 --> 00:38:54.480
1452was innovative and that was doing something fairly 
1453unique. Peter and I ended up leaving Enthought and  
1454
145500:38:55.120 --> 00:39:02.160
1456starting another company. We started as Continuum 
1457Analytics actually and its vision was to scale  
1458
145900:39:02.160 --> 00:39:08.640
1460NumPy and Pandas to large data sets and large 
1461clusters. We quickly ran into a simple problem,  
1462
146300:39:08.640 --> 00:39:12.880
1464very quickly in, but a very annoying problem. 
1465Yes. people just couldn't even install the  
1466
146700:39:12.880 --> 00:39:19.200
1468software needed to run all this Python stuff. The 
1469thing about the Python scientific and data stack  
1470
147100:39:19.200 --> 00:39:23.680
1472is that all of these different libraries, they're 
1473very different than the web development libraries  
1474
147500:39:23.680 --> 00:39:28.320
1476because these data libraries are often backed 
1477by a very large amount of complex C++, Fortran,  
1478
147900:39:28.320 --> 00:39:34.000
1480other kinds of software modules. And to build 
1481those correctly takes some work. To build them  
1482
148300:39:34.000 --> 00:39:38.880
1484correctly on every operating system takes even 
1485more work. And then to build them so that they  
1486
148700:39:38.880 --> 00:39:44.640
1488can actually be connected together, that requires 
1489you to have this entire build system rationalized.  
1490
149100:39:44.640 --> 00:39:48.640
1492And so the very first thing we did was like make 
1493a distribution of Python to make it easy to get  
1494
149500:39:48.640 --> 00:39:52.800
1496that installed. A lot of the data science Python 
1497people, they didn't even use normal Python. They  
1498
149900:39:52.800 --> 00:39:56.720
1500used this Anaconda Python distribution. Sort of 
1501a dumb joke that I came up with at one point.  
1502
150300:39:56.720 --> 00:40:03.360
1504It was basically Python for big data. So it's a 
1505big snake. So Anaconda. After like a few years,  
1506
150700:40:03.360 --> 00:40:07.520
1508we kept going to conferences and going 
1509to places and people wouldn't know who we  
1510
151100:40:07.520 --> 00:40:11.200
1512were. But the instant that we mentioned that 
1513we make Anaconda, they would say, "Oh, yeah,  
1514
151500:40:11.200 --> 00:40:14.880
1516of course. I love Anaconda. I use it all the 
1517time." Right? So, after that happened like the  
1518
151900:40:14.880 --> 00:40:19.280
1520thousandth time, we said, "Okay, maybe we should 
1521rename the company Anaconda." Data engineering  
1522
152300:40:19.280 --> 00:40:26.560
1524became a discipline where Python was incredibly 
1525entrenched. It was Python and R. And over time,  
1526
152700:40:26.560 --> 00:40:31.200
1528Python's data analysis libraries caught up and 
1529plotting libraries and stuff started to catch up  
1530
153100:40:31.200 --> 00:40:36.720
1532to what R had. And then people realized, oh well, 
1533with Python, I can work end to end with my data  
1534
153500:40:36.720 --> 00:40:42.240
1536versus R being very good at data analysis, but 
1537not necessarily like the data collection stage  
1538
153900:40:42.240 --> 00:40:46.960
1540and various other stages. I remember going to 
1541a Python conference at one point. I was like,  
1542
154300:40:46.960 --> 00:40:52.160
1544there's so many sciency people here like where 
1545are all the web developers? This is all data data  
1546
154700:40:52.160 --> 00:40:55.440
1548pipelines and stuff. I don't want to be immodest 
1549about this because it was a collective effort for  
1550
155100:40:55.440 --> 00:40:59.840
1552the whole community, but I think that what we 
1553did at Anaconda, not only making the software  
1554
155500:40:59.840 --> 00:41:04.640
1556installer that made it one click for people to 
1557just run, but also shephering the conferences  
1558
155900:41:04.640 --> 00:41:09.680
1560and building that community and and whatnot 
1561was really critical. They were incredibly  
1562
156300:41:09.680 --> 00:41:20.120
1564important contributions. I think we actually made 
1565Python super popular. I I think we did. [Music]  
1566
156700:41:24.480 --> 00:41:28.960
1568Well, I remember hearing from a friend of 
1569mine that Guido van Rossum was just working  
1570
157100:41:28.960 --> 00:41:34.560
1572at Google. And that when I thought about 
1573it, I'm like, wait, yeah, Guido, I guess,  
1574
157500:41:34.560 --> 00:41:41.120
1576works at a normal company and I can't remember 
1577the exact circumstances, but I think either  
1578
157900:41:41.120 --> 00:41:45.920
1580I got an introduction to him or I just maybe I 
1581think maybe just send him an email saying, "Hey,  
1582
158300:41:45.920 --> 00:41:52.720
1584um, big fan of your work." you know, it's like fan 
1585mail basically. And he responded and we got lunch.  
1586
158700:41:52.720 --> 00:41:58.400
1588I mean, he's a hero of mine and he was totally 
1589friendly and approachable. And at that talk,  
1590
159100:41:58.400 --> 00:42:04.480
1592it was revealed that Dropbox was entirely written 
1593in Python, both the client and the server,  
1594
159500:42:04.480 --> 00:42:08.640
1596and that was exciting. He was interested in 
1597what we were doing with Python. And I think  
1598
159900:42:08.640 --> 00:42:15.040
1600we were stretching the language and the runtime in 
1601interesting ways. He approached me again and said,  
1602
160300:42:15.040 --> 00:42:21.520
1604"Hey, we would really like you to work for us." 
1605And then to my surprise and delight, he ended up  
1606
160700:42:21.520 --> 00:42:28.400
1608joining the Dropbox team, which was super exciting 
1609for all of us. I stayed there for 7 years. We did  
1610
161100:42:28.400 --> 00:42:35.280
1612more important stuff for Python than I did during 
16137 years at Google I think. I think he had a big  
1614
161500:42:35.280 --> 00:42:39.680
1616impact on the rest of the team. You know, here's 
1617someone who's one of the icons of computing,  
1618
161900:42:39.680 --> 00:42:45.360
1620but you would never know it just from his, you 
1621know, how he badges in to the office every day  
1622
162300:42:45.360 --> 00:42:52.720
1624and I think set a really great example in terms 
1625of being super humble and curious and friendly.  
1626
162700:42:52.720 --> 00:43:00.320
1628You know, it's hard for me to think of someone 
1629who has had more impact with lower ego. Uh,  
1630
163100:43:00.320 --> 00:43:08.400
1632let's start with the first Python license 
1633plate. Sorry, that was my car when we lived in  
1634
163500:43:08.400 --> 00:43:17.040
1636Virginia. And there was a box on the application 
1637- sorry, just grabbing the other one, too - uh,  
1638
163900:43:17.040 --> 00:43:23.040
1640do you want a custom license plate? So, I managed 
1641to get Python in Virginia and in California,  
1642
164300:43:23.040 --> 00:43:30.800
1644Python was long taken. Like someone in Silicon 
1645Valley probably has a Python license plate  
1646
164700:43:30.800 --> 00:43:40.160
1648somewhere. So, the best I could get was PY3K, 
1649which I thought was pretty pretty cute anyway.
1650
165100:43:40.160 --> 00:43:46.320
1652It became ever more popular and people 
1653started thinking about flaws in the  
1654
165500:43:46.320 --> 00:43:51.360
1656language. There were a lot of ideas floating 
1657around the core development community,  
1658
165900:43:51.360 --> 00:43:54.640
1660changes you could make to the language that 
1661people thought would be major improvements.  
1662
166300:43:54.640 --> 00:44:00.160
1664The only problem with them was that they would 
1665break old Python code that currently existed.  
1666
166700:44:00.160 --> 00:44:06.560
1668Some of that probably got away 
1669from us a little bit in hindsight.
1670
167100:44:06.560 --> 00:44:15.200
1672We released Python 3.0 in December of 
16732007. I remember because I was actually  
1674
167500:44:15.200 --> 00:44:20.640
1676interning under Guido at the time. We were 
1677giving people roughly 5 years, I think,  
1678
167900:44:20.640 --> 00:44:25.280
1680to do the transition. And everyone thought 
1681that was just extraordinarily generous. The  
1682
168300:44:25.280 --> 00:44:30.560
1684world would totally be on Python 3 in just a few 
1685years. This is best for the language long term.  
1686
168700:44:30.560 --> 00:44:33.600
1688We're going to make these changes. The community 
1689has always come along with us. We think they'll  
1690
169100:44:33.600 --> 00:44:43.280
1692come along this journey as well. We were very 
1693naive about that and they they made us know it.
1694
169500:44:43.280 --> 00:44:47.200
1696The community said, "No, not worth 
1697it. Kill it. Don't do it. It's not  
1698
169900:44:47.200 --> 00:44:55.440
1700going to work." This included some very 
1701notable individuals in the community.
1702
170300:45:03.680 --> 00:45:09.280
1704So, please welcome our next speaker.
1705
170600:45:09.280 --> 00:45:14.400
1707Hi, my name is Armin. You might be familiar with 
1708some of the Python libraries that I wrote and  
1709
171000:45:14.400 --> 00:45:19.520
1711you might even maybe use some of them. The 
1712Python 2 to Python 3 transition. Initially,  
1713
171400:45:19.520 --> 00:45:24.000
1715it happened very gradually over many years. There 
1716was the version that everybody used and there was  
1717
171800:45:24.000 --> 00:45:27.920
1719sort of the version on the side that was built 
1720that nobody used. People didn't want to put in the  
1721
172200:45:27.920 --> 00:45:37.760
1723effort because their code worked, you know, why 
1724rewrite it. It's very hard to mix Python 2 and 3.
1725
172600:45:37.760 --> 00:45:41.760
1727It's uh it's a it's a headache. 
1728So I just didn't move and a lot  
1729
173000:45:41.760 --> 00:45:46.400
1731of people didn't move. It felt there's a 
1732likelihood that it will not go anywhere.  
1733
173400:45:46.400 --> 00:45:53.360
1735It felt much more like a top-down decision than 
1736any of the things in the past. And that top- down  
1737
173800:45:53.360 --> 00:46:00.800
1739decision, I think for some people felt like it 
1740was not inclusive of the real pains of people who  
1741
174200:46:00.800 --> 00:46:08.800
1743had a long tale of use cases. I think I severely 
1744underestimated how successful Python already was.  
1745
174600:46:08.800 --> 00:46:16.720
1747How many people had written so much code in 
1748Python 2 that it would be hard for them to  
1749
175000:46:16.720 --> 00:46:23.120
1751sort of put the effort into translate to Python 
17523. I thought the most controversial thing by far  
1753
175400:46:23.120 --> 00:46:28.160
1755was that we wanted to change the way Unicode 
1756was handled. A way to say these things are  
1757
175800:46:28.160 --> 00:46:32.800
1759strings and they're human consumable. They're 
1760words that people want to read and write and  
1761
176200:46:32.800 --> 00:46:37.360
1763these things are bytes. These are things 
1764that computers want to read and write.
1765
176600:46:39.360 --> 00:46:46.080
1767We basically made all strings Unicode and we made 
1768you use a new prefix 'b' for bytes. And this was  
1769
177000:46:46.080 --> 00:46:50.640
1771incredibly disturbing. I was implementing 
1772a WSGI library at the time and one of the  
1773
177400:46:50.640 --> 00:46:54.800
1775things that you do when you implement WSGI, 
1776is that you have to parse HTTP data. You have  
1777
177800:46:54.800 --> 00:46:59.680
1779to parse cookie data. And there there was 
1780always a mixture of bytes and Unicode. And  
1781
178200:46:59.680 --> 00:47:04.400
1783it was very easy to work with on Python 2. And 
1784it was incredibly annoying to work on Python 3,  
1785
178600:47:04.400 --> 00:47:10.320
1787at least initially. There really wasn't 
1788a way to convert your Python 2 code to  
1789
179000:47:10.320 --> 00:47:14.880
1791Python 3. The tools didn't exist. I 
1792started writing blog posts about it.  
1793
179400:47:14.880 --> 00:47:31.600
1795Why I think that in the way which Python 3 
1796works right now, I just cannot see the move.
1797
179800:47:31.600 --> 00:47:37.280
1799He was a valued community member. And at 
1800the time I was actually quite surprised  
1801
180200:47:37.280 --> 00:47:45.040
1803that he was so viciously attacking Python 
18043. I was probably even more negative on it  
1805
180600:47:45.040 --> 00:47:50.080
1807than appropriate. But Python had such a good 
1808run and I put so much energy into it. I was  
1809
181000:47:50.080 --> 00:47:54.160
1811part of like building out web frameworks 
1812and and all these libraries. I felt like:  
1813
181400:47:54.160 --> 00:47:59.200
1815why are we ruining all of this with this move 
1816that didn't even have that many benefits.  
1817
181800:47:59.200 --> 00:48:06.560
1819I had not appreciated how many people already 
1820had enormous code bases or were on their way  
1821
182200:48:06.560 --> 00:48:13.760
1823to building up enormous code bases. The payback 
1824for that was that I had to initiate the project  
1825
182600:48:13.760 --> 00:48:22.640
1827at Dropbox. We had a pretty long road to migrate 
1828many millions of lines of Python 2 code. 5 million  
1829
183000:48:22.640 --> 00:48:28.640
1831lines of code in the server alone and another 
1832million for the client. That is a very large  
1833
183400:48:28.640 --> 00:48:48.400
1835pile of code to transform. And so we had to 
1836invent ways of sort of doing it in in pieces.
1837
183800:48:55.080 --> 00:48:56.080
1839[Laughter]  
1840
184100:48:56.080 --> 00:49:01.280
1842A funny sticker I found in my pocket. 
1843There's a built tool called Bazel.  
1844
184500:49:01.280 --> 00:49:07.040
1846It's sort of a frozen version of 
1847Python 2. So here the sticker says  
1848
184900:49:07.040 --> 00:49:12.880
1850after re-education enemy of the people 
1851Python denounced their bourgeois class,  
1852
185300:49:12.880 --> 00:49:18.160
1854renounced formalist notions like Turing 
1855incompleteness and began a new life as  
1856
185700:49:18.160 --> 00:49:26.000
1858citizen Starlark. This is especially an 
1859example of Benjamin Peterson's humor.  
1860
186100:49:27.280 --> 00:49:33.760
1862I had the fortune or the misfortune depending how 
1863you see it to be the uh Python 2.7 release manager  
1864
186500:49:33.760 --> 00:49:41.920
1866for an entire decade. We had to adjust our plans 
1867for Python 3 and for Python 2 so that there was  
1868
186900:49:41.920 --> 00:49:48.720
1870a longer series of releases where there were both 
1871new Python 2 versions and new Python 3 versions.  
1872
187300:49:48.720 --> 00:49:53.680
1874What ended up happening is then the community was 
1875like maintaining 2 and 3 and that created a lot  
1876
187700:49:53.680 --> 00:49:59.120
1878of burden. And so this was happening all during 
1879the growth of NumPy. We made it work for Python  
1880
188100:49:59.120 --> 00:50:11.200
18822 and then I think Python 3.1 I think or 3.2, 
1883we also made it work there but saw no adoption.
1884
188500:50:11.200 --> 00:50:17.600
1886We knew it was going to take a long time. 
1887Uh we knew it was going to be painful but  
1888
188900:50:17.600 --> 00:50:22.640
1890there is light at the end of the tunnel. The 
1891community contributed stuff like lib2to3 and  
1892
189300:50:22.640 --> 00:50:29.360
1894other migration tools came out. Benjamin Peterson 
1895wrote Six that really helped that transition. The  
1896
189700:50:29.360 --> 00:50:34.960
1898language itself became a little more backwards 
1899compatible. I eventually advocated to bring  
1900
190100:50:34.960 --> 00:50:39.360
1902back the 'u' prefix on the strings and that 
1903actually made it easier to write unified code  
1904
190500:50:39.360 --> 00:50:43.120
1906bases that target both Python 2 and Python 
19073. There was a point in time where we made  
1908
190900:50:43.120 --> 00:50:53.360
1910a very strong declaration, there will never 
1911be a Python 2.8 and Python 3 is the future.
1912
191300:50:53.360 --> 00:51:00.640
1914Python 3 just is a better language and it 
1915is getting better over time. Python 2 on  
1916
191700:51:00.640 --> 00:51:06.960
1918the other hand is a fine language and it will 
1919remain exactly what it is. For a long time,  
1920
192100:51:06.960 --> 00:51:11.360
1922there was a lot of measurement of how much 
1923Python 2 usage is there, how much Python 3  
1924
192500:51:11.360 --> 00:51:16.080
1926usage is there. I think it was when Python was in 
1927Portland, was roughly when we started to see like  
1928
192900:51:16.080 --> 00:51:22.720
193050/50. Once 3.4 came out, it actually added some 
1931features that were interesting to people like, oh,  
1932
193300:51:22.720 --> 00:51:30.320
1934I want that capability. So, to me, Python 3.4 was 
1935really Python 3.0. And then 3.5 was an even bigger  
1936
193700:51:30.320 --> 00:51:36.560
1938milestone. That was the one that got widespread 
1939adoption of Python 3. And by the time Python 3.5  
1940
194100:51:36.560 --> 00:51:40.880
1942came out, then it was clear that Python 3 would 
1943work. And then you started to have companies come  
1944
194500:51:40.880 --> 00:51:48.640
1946out and give talks like Instagram's talk, which 
1947I believe is also at Portland, was a big deal.
1948
194900:51:48.640 --> 00:51:54.960
1950Yes, you heard it right. Instagram has been 
1951running fully on Python 3 for a few months.  
1952
195300:51:54.960 --> 00:52:00.000
1954The whole process took I would say about 9 to 
195510 months. And I think Instagram was the largest  
1956
195700:52:00.000 --> 00:52:06.960
1958production deployment for Python at the time. She 
1959gave a very good, very thorough talk explaining  
1960
196100:52:06.960 --> 00:52:12.080
1962why they did it. Two main things: typing and 
1963asyncio. How they did it. We cleaned out all  
1964
196500:52:12.080 --> 00:52:17.200
1966the libraries that are not making the migration 
1967from Python 2 to 3. How you should do it. Unit  
1968
196900:52:17.200 --> 00:52:22.880
1970test. What they had learned during the process. We 
1971had actually some good performance gains as well,  
1972
197300:52:22.880 --> 00:52:30.560
1974after our migration. It felt as vindication 
1975that at least there were large companies that  
1976
197700:52:30.560 --> 00:52:36.560
1978took the time to do it right and to convert all 
1979their code to Python 3 and were able to do it  
1980
198100:52:36.560 --> 00:52:41.840
1982successfully. It was definitely well received. 
1983We got a lot of people saying: we really wanted  
1984
198500:52:41.840 --> 00:52:47.920
1986to migrate as well, but we weren't getting the 
1987kind of support that my team or my company was  
1988
198900:52:47.920 --> 00:52:52.800
1990giving us. And now I can bring this back to 
1991my management. And that really gave people  
1992
199300:52:52.800 --> 00:52:59.760
1994the confidence in migrating to Python 3. It became 
1995like a look, Instagram can do it. Why don't you  
1996
199700:52:59.760 --> 00:53:12.000
1998do it? Instagram's getting benefits, new features, 
1999faster code. Why don't you also want that benefit?
2000
200100:53:12.000 --> 00:53:18.160
2002[Music]
2003
200400:53:18.160 --> 00:53:23.920
2005Projects undergo things like this. And Python 
2006learned a lot from it and it did actually  
2007
200800:53:23.920 --> 00:53:29.200
2009eventually end up with Python 3 being in a pretty 
2010good spot again that it was safe to use. And safe  
2011
201200:53:29.200 --> 00:53:34.400
2013to use sounds weird but like where I felt like I 
2014can actually start new projects on Python 3 now  
2015
201600:53:34.400 --> 00:53:40.000
2017because we're back to a stable situation where 
2018you're about as productive as I felt like I was  
2019
202000:53:40.000 --> 00:53:44.480
2021with Python 2. Hi, Anna, nice to meet you. I 
2022really liked your talk. But it was basically  
2023
202400:53:44.480 --> 00:53:50.800
2025time that healed it. When Python 2.7 was declared 
2026that there wouldn't be any more security fixes,  
2027
202800:53:50.800 --> 00:53:56.400
2029it became a security concern. That was sort 
2030of the final push. People who donated their  
2031
203200:53:56.400 --> 00:54:01.760
2033work to do this migration in the wider Python 
2034world and community eventually got the world  
2035
203600:54:01.760 --> 00:54:06.240
2037running on Python 3, but as I said like it 
2038was a decade long process. And I don't think  
2039
204000:54:06.240 --> 00:54:11.440
2041anybody anticipated how much work it would be 
2042to move to Python 3. I think Python's probably  
2043
204400:54:11.440 --> 00:54:19.120
2045too big to ever go through a transition like that 
2046today. The community was maybe a little too big,  
2047
204800:54:19.120 --> 00:54:24.880
2049but not too big. I even still get angry 
2050messages sometimes from people who are like,  
2051
205200:54:24.880 --> 00:54:31.840
2053"My code needs Python 2.7. You need to 
2054provide it." And I tell them, "No." I  
2055
205600:54:31.840 --> 00:54:37.840
2057never wavered in my commitment to Python 3. It 
2058was a lesson learned for sure. For a long time,  
2059
206000:54:37.840 --> 00:54:43.920
2061I regularly joked there would be a Python 4, but 
2062the transition would be handled much better than  
2063
206400:54:43.920 --> 00:54:50.640
2065the transition to Python 3. I felt I owed that 
2066to the community. And now, the mantra has changed  
2067
206800:54:50.640 --> 00:54:56.240
2069to there will never be even a Python 4. To be 
2070honest, I don't know how many people in Python  
2071
207200:54:56.240 --> 00:55:04.240
2073even know about the whole transition because 
2074that all ended in 2020. At least it's behind us.
2075
207600:55:17.000 --> 00:55:18.000
2077[Music]
2078
207900:55:18.000 --> 00:55:28.240
2080Okay, so now we get in the closet. So there's 
2081the frisbee. This is the most unique merch I've  
2082
208300:55:28.240 --> 00:55:35.600
2084ever seen related to Python. Now, here's 
2085a significant t-shirt. It says, "Python is  
2086
208700:55:35.600 --> 00:55:45.600
2088for girls." I received this anonymously 
2089in the mail at Google. And to this day,  
2090
209100:55:45.600 --> 00:55:50.720
2092I don't know exactly what the intention of the 
2093sender was. They never revealed themselves,  
2094
209500:55:50.720 --> 00:55:55.760
2096at least not to me. And I don't know if 
2097there was an intention even.. But I sort  
2098
209900:55:55.760 --> 00:56:04.560
2100of realized at that point that there wasn't a 
2101whole lot of women in the the Python community  
2102
210300:56:04.560 --> 00:56:14.400
2104and the community also discovered that 
2105and fixed it for the Python conference.
2106
210700:56:14.400 --> 00:56:20.000
2108This idea of being a place where people from 
2109a wide range of backgrounds can learn how to  
2110
211100:56:20.000 --> 00:56:26.240
2112program, benefit from programming, find community. 
2113There really was some snowballing adoption of  
2114
211500:56:26.240 --> 00:56:34.560
2116these ideas across languages at the time. Jessica 
2117McKellar looks at the speakers at PyCon and says,  
2118
211900:56:34.560 --> 00:56:40.320
2120"There's only 3% that are women. What can we 
2121do about this?" She was co-organizer of the  
2122
212300:56:40.320 --> 00:56:45.200
2124biggest Python meetup in the world in Boston. 
2125She knew what she was talking about. It's not  
2126
212700:56:45.200 --> 00:56:49.840
2128rocket science. It's like, ask people if they're 
2129interested in speaking and we just.. providing  
2130
213100:56:49.840 --> 00:57:01.520
2132like a little bit of support drove a huge shift in 
2133the volume and demographics of the talks that were  
2134
213500:57:01.520 --> 00:57:08.240
2136submitted. And then 3 years later, like 35% of 
2137the speakers are women. I forget what the number  
2138
213900:57:08.240 --> 00:57:15.120
2140was but I think it was almost even with male 
2141speakers. PyCon... I had an old tweet about this,  
2142
214300:57:15.120 --> 00:57:19.920
2144so I just pulled this up. Says, "Hello from your 
2145PyCon Diversity Chair." So, the percentage of  
2146
214700:57:19.920 --> 00:57:31.760
2148PyCon talks by women: 2011 was 1%, 2012, it was 
21497%, 2013, 15%, 2014 and 2015, 33%. And in 2016,  
2150
215100:57:31.760 --> 00:57:38.560
215240%. Problems have solutions. That was a very 
2153inspiring story to me also. Something that was  
2154
215500:57:38.560 --> 00:57:45.280
2156less inspiring to me was that at the language 
2157summit there wasn't a single woman in the room,  
2158
215900:57:45.280 --> 00:57:54.560
2160and I don't believe we have a single female 
2161committer to core Python. There wasn't ever  
2162
216300:57:54.560 --> 00:57:59.760
2164ill intent but unfortunately we fell into 
2165the trap of not doing enough diversity  
2166
216700:57:59.760 --> 00:58:04.160
2168reach out to try to get more people to 
2169come in. To be honest it was a lot of  
2170
217100:58:04.160 --> 00:58:12.480
2172white men. So Guido wanted to change that. 
2173I want at least two female core Python devs  
2174
217500:58:12.480 --> 00:58:18.240
2176in the next year and I will try to train 
2177them myself if that's what it takes. So  
2178
217900:58:18.240 --> 00:58:30.440
2180come talk to me. I believe one of the first 
2181people who took up that call was Mariatta.
2182
218300:58:30.440 --> 00:58:41.040
2184[Music] Even though I've always been 
2185passionate about technology and programming,  
2186
218700:58:41.040 --> 00:58:49.840
2188I also felt it wasn't a welcoming environment for 
2189women. My schoolmates who took computer science  
2190
219100:58:49.840 --> 00:58:56.720
2192are mostly men. Most of the professors were men 
2193and at work most of my co-workers were men and I  
2194
219500:58:56.720 --> 00:59:04.720
2196just didn't really have examples or role models 
2197of women being successful in the tech industry.
2198
219900:59:06.960 --> 00:59:12.560
2200One of my co-workers went to PyCon. He 
2201saw that at that conference there is  
2202
220300:59:12.560 --> 00:59:32.960
2204this community called PyLadies and 
2205I felt like.. I want to meet them.
2206
220700:59:32.960 --> 00:59:33.120
2208[Music]
2209
221000:59:33.120 --> 00:59:40.080
2211So in 2015, that's when I decided I 
2212want to go to PyCon. At this conference,  
2213
221400:59:40.080 --> 00:59:48.240
2215I got to see a lot of women speaking and 
2216presenting. At my previous tech conference,  
2217
221800:59:48.240 --> 00:59:55.680
2219all speakers were men, all the keynote speakers 
2220were men. So this was really different.
2221
222200:59:55.680 --> 01:00:00.320
2223One of the keynote speakers at that same 
2224conference was Guido van Rossum. Hello  
2225
222601:00:00.320 --> 01:00:06.640
2227everybody. Glad to see you all. I want to meet 
2228and see the creator of the Python programming  
2229
223001:00:06.640 --> 01:00:10.880
2231language. "And I will try to train them 
2232myself if that's what it takes". I heard  
2233
223401:00:10.880 --> 01:00:16.880
2235this speech. However, at that time, I 
2236just didn't think that it's something  
2237
223801:00:16.880 --> 01:00:22.240
2239I could do. I wasn't even contributing to 
2240the Python community. I didn't contribute  
2241
224201:00:22.240 --> 01:00:30.320
2243to open source at all. I just thought 
2244I'm sure they will find women next year.
2245
224601:00:35.200 --> 01:00:41.920
2247The year after I went back to PyCon US and Guido 
2248van Rossum gave another keynote. We still don't  
2249
225001:00:41.920 --> 01:00:47.440
2251have two female core developers. I think at 
2252that time that's something really clicked in me,  
2253
225401:00:47.440 --> 01:00:52.640
2255like I realized that there's something 
2256within me that says: if nobody's doing it,  
2257
225801:00:52.640 --> 01:00:59.680
2259I will do it. I wrote to Guido van 
2260Rossum and I asked him for help.  
2261
226201:01:00.320 --> 01:01:07.920
2263Somehow I felt really scared. I just didn't 
2264feel like I deserved mentorship from Guido  
2265
226601:01:07.920 --> 01:01:15.440
2267van Rossum. So I really hesitated to send this 
2268email to him. But in the end, I realized that I  
2269
227001:01:15.440 --> 01:01:27.280
2271want to try. Like I felt like this was a great 
2272opportunity for me. I pressed the send button.
2273
227401:01:27.280 --> 01:01:33.840
2275I got a reply. He was very friendly. He started 
2276sharing resources about, you know, how to get  
2277
227801:01:33.840 --> 01:01:40.320
2279started contributing to Python. He offered to 
2280do video chats. It's been really helpful to have  
2281
228201:01:40.320 --> 01:01:47.200
2283his moral support. We had a pretty sort of deep 
2284mentorship relationship for a few years. Mariatta  
2285
228601:01:47.200 --> 01:01:52.480
2287learned the process from Guido and continued to 
2288contribute more and more very much around tooling,  
2289
229001:01:52.480 --> 01:01:57.840
2291like she really found her niche in terms of trying 
2292to help make our development process easier.  
2293
229401:01:58.480 --> 01:02:05.840
2295It was scary at first, like I just didn't feel 
2296comfortable sharing my questions in public. I  
2297
229801:02:05.840 --> 01:02:11.280
2299didn't want people to know that I don't 
2300know how to do certain things, you know,  
2301
230201:02:11.280 --> 01:02:18.880
2303like I didn't want people to see that I'm actually 
2304not that good. But this is how it it works in open  
2305
230601:02:18.880 --> 01:02:27.920
2307source. And the community has always been kind 
2308and helped me with my questions without saying  
2309
231001:02:27.920 --> 01:02:41.200
2311that you're stupid. Like I never felt like I was 
2312being judged. I think it does start with Guido.  
2313
231401:02:41.200 --> 01:02:48.160
2315The fact that Guido was very active in bringing 
2316more voices into Python absolutely made Python  
2317
231801:02:48.160 --> 01:02:53.920
2319better and stronger. Just the way the whole 
2320community works and what we stand for,  
2321
232201:02:53.920 --> 01:03:06.000
2323thanks to Guido's leadership, is where I want to 
2324be. And I think that's true for a lot of people.
2325
232601:03:10.640 --> 01:03:15.600
2327About six, seven months after I 
2328started reaching out to Guido,  
2329
233001:03:15.600 --> 01:03:21.920
2331I was recommended to become a Python 
2332core developer. It really wasn't until  
2333
233401:03:21.920 --> 01:03:31.840
23354 months ago that for the first 
2336time ever. There's a woman...
2337
233801:03:31.840 --> 01:03:38.640
2339There's a woman who became a Python core developer 
2340and earned that commit privilege. The first woman  
2341
234201:03:38.640 --> 01:03:43.920
2343ever to join our team and has continued to be 
2344there and participate and try to help us and  
2345
234601:03:43.920 --> 01:03:52.320
2347always a very good advocate to try to improve 
2348our diversity. Now that I've seen the camera,  
2349
235001:03:52.320 --> 01:03:59.840
2351I can't do it. My life really changed after 
2352that. A lot of opportunities opened up just  
2353
235401:03:59.840 --> 01:04:10.320
2355because I'm a Python core developer. Hi, how are 
2356you? [Music] Mariatta went on to give her own set  
2357
235801:04:10.320 --> 01:04:19.760
2359of talks about how important mentorship is. When 
2360you don't have role models who you can relate to,  
2361
236201:04:19.760 --> 01:04:28.720
2363you start believing that you cannot do it. Thank 
2364you. Hi everybody. Uh my name is Mariatta. I'm  
2365
236601:04:28.720 --> 01:04:37.200
2367a PyLady. I run PyLadies Vancouver. I also 
2368help with the PyLadies con. 10 years ago,  
2369
237001:04:37.200 --> 01:04:41.840
2371I was also in this room for the 
2372Pyladies luncheon at PyCon US 2015.  
2373
237401:04:41.840 --> 01:04:49.120
2375It was a life-changing event for me. It was at 
2376that event that I felt for the first time in  
2377
237801:04:49.120 --> 01:04:58.880
2379my life as a developer, I felt like I belong in 
2380tech because I see 100 women in the room with me.  
2381
238201:04:58.880 --> 01:05:09.040
2383I just want other women to have role models. 
2384I hope I can help inspire them and help them.  
2385
238601:05:09.040 --> 01:05:15.360
2387These opportunities belong to you, too. You're 
2388all the reason I do this because I know there's  
2389
239001:05:15.360 --> 01:05:23.600
2391still a lot to do and I know together we can 
2392help each other and support each other. Okay,  
2393
239401:05:23.600 --> 01:05:33.760
2395I think that's it. Thank you so much everybody. 
2396[Applause] I have been so consistently impressed  
2397
239801:05:33.760 --> 01:05:41.760
2399by the Python community's ability to have 
2400respectful and and real reflection and  
2401
240201:05:41.760 --> 01:05:51.440
2403dialogue about how to steward itself and how to 
2404move it forward in a way that I find so inspiring  
2405
240601:05:51.440 --> 01:05:56.480
2407and a vision of what is possible in other 
2408communities. And I mean that really sincerely.
2409
241001:06:06.720 --> 01:06:13.680
2411There were an ever growing number of sort of 
2412scientific disciplines where all the code was  
2413
241401:06:13.680 --> 01:06:21.280
2415written in Python or a lot of it was prototyped 
2416in Python at least. And then the next step was  
2417
241801:06:21.280 --> 01:06:28.480
2419machine learning packages which started with 
2420TensorFlow and was later followed by PyTorch.  
2421
242201:06:28.480 --> 01:06:35.120
2423For a long time, Python was seen sort of as 
2424a scripting language that you would just do  
2425
242601:06:35.120 --> 01:06:41.280
2427small things that you need to automate and not 
2428production ready code and so it wasn't given a  
2429
243001:06:41.280 --> 01:06:48.400
2431ton of attention. And then now AI/ML has sort of 
2432changed things where it is now a business driver.  
2433
243401:06:48.400 --> 01:06:57.440
2435It appeals to people who are not professional 
2436programmers but need software to do a task.  
2437
243801:06:57.440 --> 01:07:03.600
2439There are some other languages like Rm you can do 
2440some interesting stuff in but Python is really it  
2441
244201:07:03.600 --> 01:07:09.920
2443for a AI/ML these days. Python has probably 
2444like centuries of engineering time that has  
2445
244601:07:09.920 --> 01:07:15.040
2447gone into code in the ecosystem specifically 
2448on those topics. So if you're using Python,  
2449
245001:07:15.040 --> 01:07:22.160
2451you're able to instantly tap into those libraries. 
2452Meta has PyTorch, which has a amazing Python API  
2453
245401:07:22.160 --> 01:07:28.560
2455and front-end people can interact with. There's 
2456also SciPy, NumPy, Numba, Pandas. There's a  
2457
245801:07:28.560 --> 01:07:35.200
2459whole suite of really extensive tools. Trying to 
2460build a language and a language ecosystem that  
2461
246201:07:35.200 --> 01:07:39.840
2463is amendable to all of that is non-trivial. 
2464That actually took real design, real thought,  
2465
246601:07:39.840 --> 01:07:46.240
2467and real ecosystem collective innovation over the 
2468course of decades. The back-end of those tools are  
2469
247001:07:46.240 --> 01:07:54.800
2471usually C or Fortran or some other native language 
2472that's much faster, but would be difficult for  
2473
247401:07:54.800 --> 01:08:03.760
2475someone with an AI background to program in. And 
2476it continues to be used for all that by all the  
2477
247801:08:03.760 --> 01:08:07.920
2479AI scientists, developing the models, and 
2480the people training the models, people  
2481
248201:08:07.920 --> 01:08:17.320
2483using the models. And that brings yet another 
2484increment of of growth to the Python community.
2485
248601:08:17.320 --> 01:08:24.400
2487[Music] Python's a fantastic language 
2488even if you're not a scientist. I just  
2489
249001:08:24.400 --> 01:08:29.600
2491don't think it would have risen to the level 
2492of dramatic usage without the science first  
2493
249401:08:29.600 --> 01:08:33.760
2495data science and machine learning story. We 
2496had a massive impact in the world. You know,  
2497
249801:08:33.760 --> 01:08:39.120
2499I think one testament to the future of Python 
2500is, if you prompt any of the LLMs to do code  
2501
250201:08:39.120 --> 01:08:44.640
2503generation today. If it's front-end, it's going 
2504to be JavaScript. If it's back-end data analysis,  
2505
250601:08:44.640 --> 01:08:49.440
2507it's going to be Python. That's 
2508the future. And Python is a part  
2509
251001:08:49.440 --> 01:08:58.560
2511of that future. Lucky me that I that I chose 
2512that language and not not a different one.
2513
251401:08:58.560 --> 01:09:05.680
2515Hey, Jacob. Oh, hello, morning. Hope you don't 
2516mind being filmed. Yeah. Ah, okay. Ida's following  
2517
251801:09:05.680 --> 01:09:11.840
2519me. All right. Yeah, she's shooting some b-roll 
2520for the documentary, I think. Ah, nice. I first  
2521
252201:09:11.840 --> 01:09:21.760
2523used Python in 1997 or something like that. 
2524Wow, that's really early days. So, it's got  
2525
252601:09:21.760 --> 01:09:26.960
252730 frames of animation. Oh, wow. I told everyone 
2528that he would hate getting the DSA, but they did  
2529
253001:09:26.960 --> 01:09:32.480
2531it anyway. Yeah. Sorry, the DSA? Distinguished 
2532Service Award. I labeled him in the annual report  
2533
253401:09:32.480 --> 01:09:37.920
2535as like a leader in the Python community once and 
2536he made me take it out. Yeah, we can see that. But  
2537
253801:09:37.920 --> 01:09:43.920
2539nevertheless, he was on the steering council for 
2540five years. Uhhuh. And he was a leader. I got a  
2541
254201:09:43.920 --> 01:09:49.520
2543job from a Python conference back in 2017. I grew 
2544up in India. I moved to Germany, changed my life.  
2545
254601:09:49.520 --> 01:09:54.560
2547So I think Python changed a lot of things for me 
2548and I just wanted to say thanks to you for for  
2549
255001:09:54.560 --> 01:10:00.560
2551making this language. That's very sweet. Yeah. Do 
2552you mind if I uh take a picture with you or that  
2553
255401:10:00.560 --> 01:10:06.640
2555you don't like it? I'm so sorry. I really don't 
2556like it and especially not in busy places. Okay,  
2557
255801:10:06.640 --> 01:10:13.200
2559no problem. I get it. Okay. Find me in a dark 
2560alley and I'll do it. Okay. Okay. I get it.  
2561
256201:10:14.480 --> 01:10:20.800
2563Ah, I always kind of looked at myself as the 
2564bass player of Python, which is great. You know,  
2565
256601:10:20.800 --> 01:10:26.320
2567you can do a lot, you can have fun, and the 
2568spotlight's not on you. And I love that. I can't  
2569
257001:10:26.320 --> 01:10:32.560
2571imagine having that kind of spotlight on you, 
2572you know, for so many years. I heard a story from  
2573
257401:10:32.560 --> 01:10:38.480
2575an Apple VP of engineering, that Steve Jobs had 
2576turned down their hire of Guido because he said,  
2577
257801:10:38.480 --> 01:10:48.960
2579he has his own following and we don't 
2580want to have that kind of distraction.
2581
258201:10:48.960 --> 01:10:54.320
2583Python has always been a language that changed. 
2584We've never been one of those languages that says  
2585
258601:10:54.320 --> 01:10:59.840
2587if you write code against this version of Python, 
2588it will run forever with any new version of the  
2589
259001:10:59.840 --> 01:11:08.800
2591language. We just simply have never been those 
2592people. A PEP is an acronym for Python Enhancement  
2593
259401:11:08.800 --> 01:11:14.480
2595Proposal. That's a document that's written 
2596by someone who wants to make a significant  
2597
259801:11:14.480 --> 01:11:19.440
2599change to Python. Basically, you're trying to 
2600convince people that this is a good idea. It  
2601
260201:11:19.440 --> 01:11:24.960
2603would be sent for discussion for a mailing 
2604list and then eventually Guido as the BDFL,  
2605
260601:11:24.960 --> 01:11:31.760
2607the Benevolent Dictator for Life, would decide 
2608whether your change was going in or not. But  
2609
261001:11:31.760 --> 01:11:40.640
2611people always have worried that the next change 
2612is going to be the one that changes the feel of  
2613
261401:11:40.640 --> 01:11:47.360
2615the language. It won't fit my brain anymore or it 
2616won't be accessible anymore. I've actually seen  
2617
261801:11:47.360 --> 01:11:52.640
2619people storm out of rooms saying, "You're ruining 
2620this language." Some people take it very, very  
2621
262201:11:52.640 --> 01:12:00.640
2623personally and seriously. And the Walrus operator 
2624was no different. Yeah so, PEP 572, I don't know  
2625
262601:12:00.640 --> 01:12:04.560
2627who coined the term the Walrus Operator, but 
2628if you kind of turn your head, it looks like  
2629
263001:12:04.560 --> 01:12:13.360
2631a little walrus. It was a new feature that was 
2632proposed, but it was also a syntax change. The  
2633
263401:12:13.360 --> 01:12:19.520
2635Walrus operator lets you do assignments, meaning 
2636put values into variables in places that you  
2637
263801:12:19.520 --> 01:12:26.000
2639previously could not. That was probably the most 
2640contentious language change, oddly enough, because  
2641
264201:12:26.000 --> 01:12:31.120
2643it's kind of a minor thing, but it it there was so 
2644much passionate feeling about whether that should  
2645
264601:12:31.120 --> 01:12:37.760
2647be added or not that it created kind of a bit of a 
2648of a ruckus. When I first saw the Walrus Operator,  
2649
265001:12:37.760 --> 01:12:43.040
2651I didn't like it. It kind of felt a little 
2652un-Pythonic to me, but then I started to play  
2653
265401:12:43.040 --> 01:12:47.840
2655with it. There was a particular use case that 
2656I came up with in my own code that I was like,  
2657
265801:12:47.840 --> 01:12:53.200
2659"Oh, you know what? This is actually pretty 
2660cool". And so then I was like, well, I it's  
2661
266201:12:53.200 --> 01:12:58.480
2663something that I won't use very often, but when I 
2664need it, it's really great to have. And I turned,  
2665
266601:12:58.480 --> 01:13:06.640
2667you know, 180° and became a fan of it. But it was 
2668very disruptive. [Music] Language features and  
2669
267001:13:06.640 --> 01:13:13.200
2671especially syntax can be a double-edged sword. So 
2672one person's succinct, elegant code can be another  
2673
267401:13:13.200 --> 01:13:21.600
2675person's unreadable puzzle or a fusticated mess. 
2676There were very strongly voiced predictions about  
2677
267801:13:21.600 --> 01:13:27.200
2679how bad it would be for Python. And then just 
2680because Python was so much more popular at the  
2681
268201:13:27.200 --> 01:13:31.840
2683time, there are so many places where people talk 
2684about Python. I mean Twitter, you know, at the  
2685
268601:13:31.840 --> 01:13:37.680
2687time. This is all happening in public, right? And 
2688everyone can kind of with low effort throw their  
2689
269001:13:37.680 --> 01:13:44.080
2691hat into the ring and not everyone is going 
2692to restrain themselves when they're doing it.
2693
269401:13:45.760 --> 01:13:50.560
2695I started being more and more convinced 
2696that PEP 572 was actually the right thing  
2697
269801:13:50.560 --> 01:14:04.160
2699to do. I was the BDFL and I accepted 
2700the PEP. And the next morning I woke up
2701
270201:14:04.160 --> 01:14:09.360
2703and I felt miserable
2704
270501:14:09.360 --> 01:14:12.640
2706because of all the attacks 
2707that had happened before.  
2708
270901:14:14.080 --> 01:14:23.680
2710I sat down at my computer, wrote a short email, 
2711and hit send wherein I announced that I resigned  
2712
271301:14:23.680 --> 01:14:33.040
2714at BDFL. And that had an incredible impact 
2715because nobody had expected I would resign  
2716
271701:14:33.040 --> 01:14:40.560
2718and certainly not that I would rage quit 
2719over this issue, which essentially it was.
2720
272101:14:55.720 --> 01:14:56.720
2722[Music]  
2723
272401:14:56.720 --> 01:15:02.240
2725Transfer of power. Now that PEP 572 
2726is done, I don't ever want to have to  
2727
272801:15:02.240 --> 01:15:07.760
2729fight so hard for a PEP and find that 
2730so many people despise my decisions.  
2731
273201:15:07.760 --> 01:15:12.880
2733I would like to remove myself entirely from 
2734the decision process. I'm basically giving  
2735
273601:15:12.880 --> 01:15:19.280
2737myself a permanent vacation from being BDFL 
2738and you all will be on your own. I am not  
2739
274001:15:19.280 --> 01:15:25.600
2741going to appoint a successor. So what are you 
2742all going to do? Create a democracy, anarchy,  
2743
274401:15:25.600 --> 01:15:31.200
2745a dictatorship, a federation? I'll still be 
2746here, but I'm trying to let you all figure  
2747
274801:15:31.200 --> 01:15:40.560
2749something out for yourselves. I'm tired 
2750and I need a very long break. That was it.
2751
275201:15:40.560 --> 01:15:47.520
2753Haven't read that.. That was I thought that 
2754was pretty well written. I like to say he mic  
2755
275601:15:47.520 --> 01:15:51.840
2757dropped his way out. You know, he just was like, 
2758I'm out. I'm done. You guys figure it out. So,  
2759
276001:15:51.840 --> 01:15:58.880
2761it was a complete and total shock to me. 
2762Yeah. I just felt really sad about it. I  
2763
276401:15:58.880 --> 01:16:06.560
2765wish he would have retired under better 
2766circumstances. I felt I needed to take a  
2767
276801:16:06.560 --> 01:16:13.920
2769step back to sort of recover myself. I think a 
2770lot of people really felt for Guido, you know,  
2771
277201:16:13.920 --> 01:16:26.480
2773that he could be pushed to that point like 
2774maybe we let him down to allow the vitriol  
2775
277601:16:26.480 --> 01:16:33.360
2777over this change to Python to push, you know, 
2778somebody that we cared about to that point.
2779
278001:16:35.600 --> 01:16:41.840
2781We all perceived that it was like a a momentous 
2782occasion or like a significant change that  
2783
278401:16:41.840 --> 01:16:46.560
2785you would put a mark in your timeline in the 
2786history book in the history of Python, right?  
2787
278801:16:46.560 --> 01:16:52.720
2789Because it had been run on the BDFL model for its 
2790entire existence. So there was a little bit of  
2791
279201:16:52.720 --> 01:16:57.760
2793uncertainty like, can this work at all without 
2794got Guido? It's kind of a parent saying, it's  
2795
279601:16:57.760 --> 01:17:02.560
2797time for you to grow up and figure it out on your 
2798own. I'm not going to solve this problem for you.
2799
280001:17:05.280 --> 01:17:11.040
2801The first order of business was deciding on 
2802how to decide. And it turns out some people  
2803
280401:17:11.040 --> 01:17:15.520
2805have very strong opinions on voting systems. 
2806Programmers love arguing about voting methods.  
2807
280801:17:15.520 --> 01:17:22.400
2809I remember thinking this isn't going to work. Lot 
2810of strong voices. It's really difficult when you  
2811
281201:17:22.400 --> 01:17:28.880
2813have hundreds of core developers and thousands 
2814of people online and millions of people in the  
2815
281601:17:28.880 --> 01:17:35.920
2817community and probably billions of dollars of 
2818software that run on Python. You can't think  
2819
282001:17:35.920 --> 01:17:42.320
2821about that cuz it definitely gets overwhelming. 
2822I will fully admit it was stressful. I had to go  
2823
282401:17:42.320 --> 01:17:46.720
2825to an ear, nose, and throat specialist because I 
2826actually was starting to choke on my own throat  
2827
282801:17:46.720 --> 01:17:52.560
2829from the stress. It was not fun because if we 
2830couldn't decide on how we were going to decide,  
2831
283201:17:52.560 --> 01:17:59.120
2833the project was done. We really approached it 
2834like the nerdy engineers we are. In Python classic  
2835
283601:17:59.120 --> 01:18:03.600
2837fashion, we wrote a bunch of peps. We didn't want 
2838to rush it because we knew we were going to have  
2839
284001:18:03.600 --> 01:18:10.480
2841to live with this potentially forever. But we also 
2842realized the world was watching and did not like  
2843
284401:18:10.480 --> 01:18:14.160
2845the idea of not knowing whether this language was 
2846going to be around in a year or not, because we  
2847
284801:18:14.160 --> 01:18:20.000
2849couldn't stop bickering among ourselves about how 
2850to run ourselves. People sponsored different kinds  
2851
285201:18:20.000 --> 01:18:23.600
2853of models. I think there was one which was like, 
2854let's pick another BDFL because that's what we  
2855
285601:18:23.600 --> 01:18:28.800
2857feel comfortable with. And then there was various 
2858kinds of committees and councils and we ended up  
2859
286001:18:28.800 --> 01:18:34.480
2861settling on the five person steering committee. 
2862Good morning PyCon! Thanks so much for joining  
2863
286401:18:34.480 --> 01:18:40.560
2865us. So, welcome to our panel with the Python 
2866steering council. Because there's five people,  
2867
286801:18:40.560 --> 01:18:45.680
2869you don't have the same problem of like all 
2870the stress and responsibility of making these  
2871
287201:18:45.680 --> 01:18:51.520
2873decisions falling on one person. I actually 
2874felt that it made sense for me to be on that  
2875
287601:18:51.520 --> 01:18:56.880
2877first steering council given that there was 
2878no longer feeling so burned out or attacked,  
2879
288001:18:56.880 --> 01:19:02.160
2881to provide some amount of continuity. "You know 
2882how this goes when your kid goes off to college.  
2883
288401:19:02.160 --> 01:19:07.840
2885Some of you may have experience with that. you're 
2886no longer directly involved in their lives maybe,  
2887
288801:19:07.840 --> 01:19:14.960
2889but you never stop worrying. And that's how 
2890I feel about Python at the moment. And that's  
2891
289201:19:14.960 --> 01:19:24.880
2893why I [Applause] why I nominated myself 
2894for the steering committee and here I am".  
2895
289601:19:25.920 --> 01:19:31.520
2897There were elections for the second year steering 
2898council and at first I nominated myself and then  
2899
290001:19:31.520 --> 01:19:37.440
2901withdrew because there were enough other strong 
2902candidates. They didn't need me and I was happy to  
2903
290401:19:37.440 --> 01:19:56.080
2905uh to sort of let go of it. [Music] The legitimacy 
2906that came from the replacement springing up from  
2907
290801:19:56.080 --> 01:20:06.080
2909the community is essential to it being accepted. 
2910It came from us, so it's accepted by us. It works.  
2911
291201:20:06.080 --> 01:20:11.600
2913I think it works for us now. There may be a time 
2914in the future where it doesn't work or pieces of  
2915
291601:20:11.600 --> 01:20:17.840
2917it don't work. You have to be willing to evolve. 
2918Change is the one universal constant of the  
2919
292001:20:17.840 --> 01:20:31.480
2921universe. And so things will always change and you 
2922have to be ready and willing to adapt to change.
2923
292401:20:31.480 --> 01:20:38.560
2925[Music]
2926
292701:20:38.560 --> 01:20:43.760
2928It started out as a hobby project. Definitely. 
2929I think I probably wanted to prove something  
2930
293101:20:43.760 --> 01:20:50.960
2932to myself more than anything. It exceeded my 
2933wildest expectations and it actually continues  
2934
293501:20:50.960 --> 01:21:00.560
2936to do so. I constantly hear from people whose 
2937lives were completely changed by Python and it  
2938
293901:21:00.560 --> 01:21:08.960
2940has created this incredible community which was 
2941also a complete sort of bonus over everything  
2942
294301:21:08.960 --> 01:21:16.880
2944else I had anticipated. This community that 
2945has like a massive conference every year and  
2946
294701:21:16.880 --> 01:21:26.160
2948smaller conferences in every continent I think 
2949except Antarctica. There was one of the Python  
2950
295101:21:26.160 --> 01:21:32.480
2952conferences where there was a few thousand people 
2953in the audience. I remember just looking around  
2954
295501:21:32.480 --> 01:21:40.960
2956and going, this is mind-blowing. That's the 
2957point at which I knew we had achieved something  
2958
295901:21:40.960 --> 01:21:50.320
2960important, something that made a difference in 
2961people's lives and in the world. Python turned out  
2962
296301:21:50.320 --> 01:21:57.360
2964to be much more successful than perhaps any of us 
2965thought except maybe Guido and his team. I think  
2966
296701:21:57.360 --> 01:22:02.160
2968they always believed that this was the future. 
2969And of course, it's now one of the most popular,  
2970
297101:22:02.160 --> 01:22:06.800
2972if not the most popular programming language 
2973in the world. He spent two weeks in Christmas,  
2974
297501:22:06.800 --> 01:22:10.880
2976in like 1989, writing a programming language 
2977because he thought it would be fun. Like who  
2978
297901:22:10.880 --> 01:22:16.640
2980would have imagined that that would be such a life 
2981altering and also world altering thing to have  
2982
298301:22:16.640 --> 01:22:23.520
2984done. I think it's been great for the world. I 
2985think it's made people feel like they can get into  
2986
298701:22:23.520 --> 01:22:28.320
2988programming when they never thought they could. 
2989I think it made programming accessible to people.  
2990
299101:22:28.320 --> 01:22:36.640
2992It's literally part of kindergarten through grade 
299312 education around the world. And is on Mars  
2994
299501:22:36.640 --> 01:22:41.760
2996thanks to being used as a scripting language to 
2997process the parachute of the Perseverance rover  
2998
299901:22:41.760 --> 01:22:45.440
3000landing. Like it's hard to think of anything 
3001that hasn't been touched by some Python code  
3002
300301:22:45.440 --> 01:22:52.000
3004somewhere. It's mind boggling. It's an important 
3005language. It's a popular language. It's a vibrant  
3006
300701:22:52.000 --> 01:22:58.400
3008and relevant language today as much as it was in 
3009the past and I believe as much as it will be in  
3010
301101:22:58.400 --> 01:23:03.520
3012the future. Programmers 30 years from now will 
3013be like, "Oh yeah, you know, I I'm still using  
3014
301501:23:03.520 --> 01:23:09.760
3016Python." Just like today, people are still using 
3017Fortran and C and C++ and those are old languages  
3018
301901:23:09.760 --> 01:23:35.080
3020you know too in the scheme of things. Scheme 
3021- Lisp another old language. So yeah. [Music]
3022
302301:23:35.080 --> 01:23:40.400
3024[Music]
3025
302601:23:40.400 --> 01:23:43.680
3027Now I keep thinking of like weird 
3028jokes. There's this library in  
3029
303001:23:43.680 --> 01:23:49.920
3031Python called Pickles because pickle is a 
3032funny word I guess. The documentation used  
3033
303401:23:49.920 --> 01:23:57.520
3035to have a footnote about how you should 
3036imagine Guido and Jim sniffing pickles.
3037
3038