1 00:00:00,800 --> 00:00:04,901 Trodde du att Python skulle bli populärt populärt från början eller? 2 00:00:05,520 --> 00:00:08,956 [Musik] 3 00:00:14,533 --> 00:00:21,280 Python har bidragit till att göra kritiskt tänkande lite mer lite mer lättillgängligt för fler människor. 4 00:00:21,280 --> 00:00:23,478 Du kan spendera en till två timmar, 5 00:00:23,478 --> 00:00:25,520 lära sig grunderna i programmering 6 00:00:25,520 --> 00:00:28,120 och sedan kan du skriva som 10 till 20 rader kod 7 00:00:28,120 --> 00:00:29,353 som gör något intressant. 8 00:00:29,353 --> 00:00:32,400 Språket, gemenskapen, ekosystemet, 9 00:00:32,400 --> 00:00:37,464 marknaden, hela saken har haft en sådan inverkan på mänskligheten. 10 00:00:37,464 --> 00:00:40,575 Idag tror jag att det är säkert att säga att nästan överallt finns det en dator, 11 00:00:40,575 --> 00:00:42,200 finns det förmodligen någon Python. 12 00:00:42,200 --> 00:00:44,360 Det är bokstavligen på Mars. 13 00:00:45,306 --> 00:00:49,056 AI:s påverkan, jag tror att vi fortfarande ser vad det kommer att bli. 14 00:00:49,056 --> 00:00:51,240 Python är otroligt viktigt för det. 15 00:00:52,147 --> 00:00:56,880 För att fullt ut förstå hur Python blev så stort, måste vi gå tillbaka i tiden. 16 00:01:00,000 --> 00:01:01,600 Kanske inte så långt tillbaka. 17 00:01:02,746 --> 00:01:05,240 Allt började i Amsterdam på 80-talet 18 00:01:05,240 --> 00:01:08,920 under min tid på CWI, en holländsk forskningsanläggning. 19 00:01:11,440 --> 00:01:17,263 CWI hade legat bakom många av de viktigaste utveckling av programmeringsspråk. 20 00:01:17,520 --> 00:01:20,503 Algol 60 och Algol 68 till exempel. 21 00:01:20,880 --> 00:01:25,748 Och Lambert Meertens hade försökt lära ut programmering till konstnärer 22 00:01:25,748 --> 00:01:28,240 och upptäckte saker om 23 00:01:28,240 --> 00:01:34,720 programmering som är lätt, om du är en vetenskapsman eller en nörd. Men för någon som en konstnär.., 24 00:01:34,720 --> 00:01:39,732 de sakerna var inte uppenbara eftersom du var tvungen att veta något om datorn. 25 00:01:39,732 --> 00:01:44,240 Orsaken till frustrationen var den låga nivån av de språk som fanns tillgängliga. 26 00:01:44,240 --> 00:01:48,466 Datorerna var ofantligt dyra och dyra och jämfört med den 27 00:01:48,466 --> 00:01:51,361 en programmerare var riktigt riktigt billig 28 00:01:51,361 --> 00:01:53,680 och så programmeringsspråk 29 00:01:53,680 --> 00:01:57,223 utformades med detta ekonomiska ekonomiska förhållandet i åtanke. 30 00:01:57,579 --> 00:02:00,168 Det spelade ingen roll om det tog lång tid att 31 00:02:00,168 --> 00:02:06,880 program så länge det inte krävde för mycket av datorn datorn eftersom det var där kostnaden var. 32 00:02:06,880 --> 00:02:11,440 Vi tittade på varandra och sa: "Kan vi inte göra ett bättre jobb? Kan vi inte designa ett språk som är 33 00:02:11,440 --> 00:02:15,600 lätt att lära sig, lätt att lära ut, men också lätt att använda. 34 00:02:15,600 --> 00:02:18,400 Så att nybörjare skulle kunna förstå hur man programmerar 35 00:02:18,400 --> 00:02:22,348 utan att behöva gå in på alla dessa röriga hårdvarudetaljer. 36 00:02:22,348 --> 00:02:25,320 Och det var så ABC-projektet föddes. 37 00:02:27,920 --> 00:02:31,652 En av medlemmarna i teamet var Guido van Rossum. 38 00:02:31,652 --> 00:02:37,496 [Musik] 39 00:02:39,680 --> 00:02:46,320 Jag anställdes för att arbeta med ABC för vilken det fanns en liten prototyp men varje 40 00:02:46,320 --> 00:02:52,560 del av prototypen var tvungen att utökas till att fungera fullt ut enligt specifikationen. 41 00:02:54,160 --> 00:03:01,840 År 1985 släppte vi ABC. Och då stötte vi på problemet: hur skulle vi göra 42 00:03:01,840 --> 00:03:05,120 visste att det fanns ABC? 43 00:03:05,120 --> 00:03:11,080 Vi hade inte något bra sätt att nå nå ut till vår tänkta publik. 44 00:03:11,080 --> 00:03:12,840 Webben fanns inte. 45 00:03:12,840 --> 00:03:17,560 De flesta människor hade aldrig hört talas om en dator eller ens sett en. 46 00:03:17,600 --> 00:03:23,182 Om någon ville ha en kopia, var de tvungna att skicka oss ett brev och vi skulle skicka dem en diskett. 47 00:03:24,300 --> 00:03:30,640 Så jag är rädd att ABC nådde väldigt få människor och vid någon tidpunkt cheferna för anledning, att 48 00:03:30,640 --> 00:03:33,960 Jag förstår fortfarande inte, dödade det projektet. 49 00:03:33,960 --> 00:03:38,720 Jag hade tillbringat 3,5 år av hårt arbete 50 00:03:39,202 --> 00:03:44,481 på det här språket och implementeringen för att göra det så bra som möjligt. 51 00:03:44,481 --> 00:03:45,812 Så det var en besvikelse. 52 00:03:46,320 --> 00:03:49,594 [Musik] 53 00:03:49,594 --> 00:03:55,280 Guido förflyttades till ett annat projekt projekt om ett distribuerat operativsystem, 54 00:03:55,280 --> 00:03:56,680 amöba-systemet. 55 00:03:58,763 --> 00:04:03,360 Ett av mina jobb i det projektet var som programmeraren, inte forskaren, 56 00:04:03,360 --> 00:04:09,569 var att skriva, eller hjälpa till att skriva, ett stort stort antal användarapplikationer. 57 00:04:09,920 --> 00:04:12,169 Och jag tänkte faktiskt inte 58 00:04:12,169 --> 00:04:16,860 att för många av dessa verktyg var C ett mycket bra språk. 59 00:04:18,181 --> 00:04:19,992 Och jag tänkte, ja, 60 00:04:19,992 --> 00:04:27,120 om vi bara kunde programmera ABC istället för C, skulle var och en av dessa verktyg vara som en halv 61 00:04:27,120 --> 00:04:32,960 sida kod och jag kunde skriva hela sviten verktyg på ett par veckor istället för 62 00:04:32,960 --> 00:04:35,800 år som det såg ut som om det skulle ta oss. 63 00:04:35,800 --> 00:04:40,840 Förutom att ABC var så högt och abstrakt, 64 00:04:40,880 --> 00:04:49,120 det var inte ett bra språk för att prata med servrar och filsystem och processer och det var liksom 65 00:04:49,120 --> 00:04:56,080 hela operativsystemsgrejen abstraherades bort från ABC. Så jag tänkte, ja, det finns verkligen 66 00:04:56,080 --> 00:05:03,040 borde vara ett språk som liksom överbryggar mellan C och shell. Och vi tittade på Perl och 67 00:05:03,040 --> 00:05:11,120 tyckte vi inte att det var något bra som programmeringsspråk programmeringsspråk. Det var ungefär lika dåligt som Basic, 68 00:05:11,120 --> 00:05:18,880 fast på olika sätt. Så Python var också delvis byggt som ett alternativ till Perl. Det är 69 00:05:18,880 --> 00:05:24,120 där jag bestämde mig, åh ja, jag ska se om Jag kan göra mitt eget programmeringsspråk. 70 00:05:24,120 --> 00:05:27,602 [Musik] 71 00:05:28,720 --> 00:05:34,800 En julhelg, tror jag, bestämde han sig för att att ägna sin tid åt att designa och bygga en 72 00:05:34,800 --> 00:05:39,360 nytt programmeringsspråk för operativsystemet system baserat på de principer som han hade 73 00:05:39,360 --> 00:05:40,808 lärt sig under arbetet med ABC-projektet. 74 00:05:41,773 --> 00:05:46,080 Det var logiskt att jag skulle börja med ABC som ett exempel. 75 00:05:46,080 --> 00:05:51,840 Den mest framträdande funktionen som Python lånat från ABC är faktiskt användningen av 76 00:05:51,840 --> 00:05:59,040 av indragning för gruppering av uttalanden. Men det var också logiskt att jag liksom släppte 77 00:05:59,040 --> 00:06:04,632 saker från ABC som jag inte tyckte särskilt mycket om gillade. Det var så vi hamnade hos Python. 78 00:06:10,000 --> 00:06:18,720 Okej. Jag var till slut tillräckligt säker på tolken var tillräckligt komplett för att 79 00:06:18,720 --> 00:06:24,800 Jag visade den för Lambert. Han visade mig ett språk som han hade utvecklat i smyg, 80 00:06:24,800 --> 00:06:31,120 som han kallade Python, uppkallad efter Monty Python. Jag sa: "Titta vad jag har gjort. Det var 81 00:06:31,120 --> 00:06:36,320 klart för mig att det hade en viss likhet med ABC. Kommandoradsprompten är till och med 82 00:06:36,320 --> 00:06:43,920 samma sak. Så Lambert såg mig skriva några ...saker och... Guido var upphetsad över det och han 83 00:06:43,920 --> 00:06:48,240 han trodde tydligen att jag också skulle bli upphetsad. Vid någon tidpunkt hade han sett nog och sa, 84 00:06:48,240 --> 00:06:54,827 "Får jag prova något?" Och han skriver en väldigt kort kodrad och det kraschar tolken. 85 00:06:56,960 --> 00:07:02,640 Och han visste att det skulle göra det. Poängen undkom mig. Jag visste inte varför han trodde 86 00:07:02,640 --> 00:07:08,400 detta var bättre än ABC och varför han hade gjort hela det här projektet. Jag gick tillbaka och 87 00:07:08,400 --> 00:07:15,120 nästa dag hade jag en lösning på det. Men det var en ganska förkrossande upplevelse för att vara ärlig. 88 00:07:28,480 --> 00:07:32,720 Det måste ha varit minst ett halvt år senare, som jag först blev bekant med 89 00:07:32,720 --> 00:07:40,240 Python. Så det här är kontoret där Guido och jag höll till när han skapade Python. 90 00:07:40,240 --> 00:07:47,360 Det fanns två viktiga användare. Sjoerd var en av dem och den andra var Jack Jansen. 91 00:07:47,360 --> 00:07:54,720 Guido satt där borta och jag satt där borta. Om du vill göra en prototyp av ett program, 92 00:07:54,720 --> 00:08:01,280 man skriver liksom konturerna av programmet, men det fungerar inte riktigt. När du gör det här 93 00:08:01,280 --> 00:08:07,920 i Python, så fungerar det faktiskt. Det är läsbart. Det är väldigt lätt att programmera och indragningen 94 00:08:07,920 --> 00:08:13,680 är helt naturligt enligt min mening i alla fall. Sjoerd och Jack var de mest aktiva 95 00:08:13,680 --> 00:08:18,960 i att använda Python. Du hittar buggar, du hittar de saker som du vill utöka och sedan berättar du 96 00:08:18,960 --> 00:08:26,000 för allt de behövde göra var att säga, "Hej, Guido." Det var den första riktiga interaktiva 97 00:08:26,640 --> 00:08:30,960 systemets programmeringsspråk. Så du kan bara sitta och skriva och köra det omedelbart utan någon 98 00:08:30,960 --> 00:08:39,040 sammanställning. Så det var mycket roligare att använda än de gamla programmeringsspråken, men långsammare. 99 00:08:39,040 --> 00:08:43,440 Jag tror att det var mest Jacks idé men vi jobbade alla med den, 100 00:08:43,440 --> 00:08:50,880 att göra en release med öppen källkod. CWI tillät Guido att distribuera Python till världen som 101 00:08:50,880 --> 00:08:55,760 så länge som upphovsrättsmeddelandet fanns där. De skulle ha hållit tillbaka om de hade vetat att det 102 00:08:55,760 --> 00:09:00,560 skulle bli en sådan otrolig framgång, vilket är bra att de inte visste. Ingen visste. 103 00:09:00,560 --> 00:09:07,200 Det gjorde inte jag heller. För om de hade hållit tillbaka, skulle det aldrig ha blivit en otrolig framgång. 104 00:09:08,720 --> 00:09:13,200 Sen var vi tvungna att faktiskt fysiskt göra release vilket visade sig vara en 105 00:09:13,200 --> 00:09:22,640 otrolig smärta eftersom Usenet var det enda vi hade för att släppa det. 106 00:09:22,640 --> 00:09:30,400 Usenet var ett nätverk av, kan man säga, anslagstavlor anslagstavlor. Folk skrev meddelanden. De skulle 107 00:09:30,400 --> 00:09:35,600 distribueras över hela världen och sedan fanns det grupper för alla de olika datorerna 108 00:09:35,600 --> 00:09:44,800 språk. Usenet hade en mycket strikt gräns för storleken på ett enda inlägg. Lägg först in hela din 109 00:09:44,800 --> 00:09:52,080 källträdet i en tarball. Sedan komprimerar man den och man måste du göra ett annat steg där du förvandlar den binära 110 00:09:52,080 --> 00:10:01,360 data till ASCII-kodning. Så du har den här enorma fil med gobblygook, men det är åtminstone utskrivbart 111 00:10:01,360 --> 00:10:09,040 gobblygook. Och sedan använder man ett annat verktyg som klipper det i bitar. Sedan finns det ett skript där 112 00:10:09,040 --> 00:10:16,400 om du har laddat ner alla 21 delarna kan du ångra alla dessa operationer i omvänd ordning. Det där var 113 00:10:16,400 --> 00:10:22,400 vad folk står ut med. Så vi gjorde allt arbete på vår sida och massor av människor gjorde allt arbete på 114 00:10:22,400 --> 00:10:31,920 deras sida för att packa upp detta eftersom jag tydligen hade skrivit en mycket bra teaser om vad det här var. 115 00:10:34,920 --> 00:10:42,240 [Musik] Mycket snabbt började jag få feedback via e-post eller Usenet från människor som hade gjort 116 00:10:42,240 --> 00:10:50,960 något spännande med det eller som hade hittat en bugg och det bara fortsatte att komma. 117 00:10:50,960 --> 00:10:57,760 Vi jobbade på Johnson Space Center. Så vårt intresse var att sätta ihop flygsimuleringar och verktyg 118 00:10:57,760 --> 00:11:05,680 för de konstruktörer som skulle användas för skyttelprogrammet på den tiden. Jag minns 119 00:11:05,680 --> 00:11:14,960 ett skriptspråk för att styra ett C++-biblioteksprojekt som vi biblioteksprojekt som vi arbetade med vid den tiden. 120 00:11:14,960 --> 00:11:21,760 Inte långt efter den sökningen hittade jag Guidos Python-distribution på CWI. Jag kunde FTP 121 00:11:21,760 --> 00:11:33,840 ner, packa upp det, kompilera det och köra det på 10 minuter eller så. Det var min första 122 00:11:33,840 --> 00:11:41,120 imponerande erfarenhet av Python. för 20 år sedan var en dator som kostade en miljon dollar och fyllde en 123 00:11:41,120 --> 00:11:48,240 hela rummet hade mindre kapacitet än en 11 pund stationär dator idag. Med kostnader som går ner och 124 00:11:48,240 --> 00:11:53,600 har datorn kommit in i våra liv snabbt och diskret snabbt och diskret in i våra liv. Det fanns 125 00:11:53,600 --> 00:11:59,520 många saker som förändrades på ett stort sätt som gjorde databehandling särskilt spännande att arbeta med. På den 126 00:11:59,520 --> 00:12:04,720 kom datorer plötsligt ut ur maskinrummet och landade maskinrummet och landade på ditt skrivbord. Och 127 00:12:04,720 --> 00:12:10,480 och sedan hände förstås webben. Sedan exploderade allt exploderade. Efter att internet kom till Europa, 128 00:12:10,480 --> 00:12:17,920 var det mycket lättare att distribuera programvara. Python tog fart mycket långsamt. Sedan fanns det 129 00:12:17,920 --> 00:12:30,240 en växande Python-community som var mycket stödjande stödjande som en stor familj kan man nästan säga. 130 00:12:30,240 --> 00:12:37,520 En del av fördelen med det här är att jag inte... Det är ingen påfrestning på min kropp alls. 131 00:12:37,520 --> 00:12:45,920 Jag jobbade med att utveckla en slags distribuerad utrustningsdatabas och en kollega på labbet, 132 00:12:45,920 --> 00:12:51,440 Michael McLay, visste att jag letade efter vad som kallades ett skriptspråk som var 133 00:12:51,440 --> 00:12:57,200 också sofistikerade som skulle göra det möjligt för dig att bygga betydande saker och inte fastna i den tekniska 134 00:12:57,200 --> 00:13:04,240 ojämna kanter. Skriptspråk var utformade för att limma ihop saker, för att koppla ihop saker som 135 00:13:04,240 --> 00:13:10,320 som redan fungerade, som redan fanns. Omedelbart när jag provade det, blev jag bara förvånad och tänkte detta 136 00:13:10,320 --> 00:13:18,960 inte kan vara så bra som den är. Och det var det. Mike var intresserad av att ta med Guido över och Guido var 137 00:13:18,960 --> 00:13:26,320 intresserade av att komma över. 99% o av de personer som Jag kom i kontakt med var i USA. 138 00:13:26,320 --> 00:13:33,600 Så Guido kom och Mike och Guido och jag ville ordna en workshop så att folk som 139 00:13:33,600 --> 00:13:38,800 intresserade av Python kunde samlas och prata om vad de om vad de arbetade med och vad de hade för 140 00:13:38,800 --> 00:13:47,280 kände att det behövdes. Detta är t-shirten för den första konferensen. Och så det här, ja, det var bara 141 00:13:47,280 --> 00:13:55,920 typ av flytande skrift och på baksidan det gav datumet för konferensen. Spam, spam, spam, 142 00:13:55,920 --> 00:14:02,880 spam. Det är en så fantastisk låt. Den där workshopen är verkligen för mig början på Python 143 00:14:02,880 --> 00:14:09,280 gemenskap. November 1994, Gaithersburg, Maryland i denna fönsterlösa kontorsbyggnad vid 144 00:14:09,280 --> 00:14:15,200 NIST. Det var en fantastisk upplevelse. Det var ungefär två dagar. Vi var 20 personer. Jag har fortfarande 145 00:14:15,200 --> 00:14:20,960 t-shirt från den workshopen. Det var bara typ en känsla av att det är något som händer. 146 00:14:20,960 --> 00:14:26,480 Det ska bli kul att umgås med de människor som jag chattar med online, att faktiskt se Guido 147 00:14:26,480 --> 00:14:31,840 personligen och faktiskt fatta beslut. Och vi visste att om man imponerade på honom med funktionen och den 148 00:14:31,840 --> 00:14:35,840 var en enkel sak att installera, skulle han lägga till det i språket just där så att vi åtminstone kan 149 00:14:35,840 --> 00:14:39,840 prova det i betaform. Det var som ett helt rum rum med människor som visste vad du pratade om 150 00:14:39,840 --> 00:14:51,680 om eftersom de alla hade studerat Python djupt eller nästan alla. En av dem var Barry Warsaw. 151 00:14:51,680 --> 00:15:01,840 [Runt 1994 började jag på ett företag, CNRI, Corporation for National Research Initiatives, 152 00:15:01,840 --> 00:15:07,840 och vi byggde dessa mjukvaruagenter, små program som kan flytta runt för att 153 00:15:07,840 --> 00:15:12,400 olika datorer i ett nätverk, och de plockar sig själva och flyttar runt till en annan plats och 154 00:15:12,400 --> 00:15:18,960 återskapa sig själva och göra lite mer arbete. En vän till mig från NIST skickade mig ett e-postmeddelande och 155 00:15:18,960 --> 00:15:22,880 "Vi har fått hit en kille från Nederländerna nederländerna och han kommer att prata om sin 156 00:15:22,880 --> 00:15:28,320 språk. Vill du följa med?" Och så gick vi till workshopen och blev helt förälskade 157 00:15:28,320 --> 00:15:36,400 med naturligtvis Python och naturligtvis Guido. Även då hade jag en känsla av att det fanns en där 158 00:15:36,400 --> 00:15:42,080 att det fanns något som skulle hända att det fanns en potential. Jag minns att jag kom 159 00:15:42,080 --> 00:15:48,080 tillbaka till CNRI och sa, "Åh, det här är bra. Vi ska kommer att använda Python säkert i vårt projekt. Och 160 00:15:48,080 --> 00:16:04,480 sa en av våra kollegor på CNRI: "Tja, vad tycker du? Varför anställer vi inte bara Guido?" 161 00:16:04,480 --> 00:16:11,040 CNRI inrättades för att främja informationsinfrastruktur infrastruktur och främja forskning, hjälpa till att bygga 162 00:16:11,040 --> 00:16:16,800 pilotprojekt, tar resultaten och lägger ut dem ut dem till allmänheten så att andra kan 163 00:16:16,800 --> 00:16:22,160 sedan kan utnyttja den. En del av CNRI:s uppdrag var att odla internetbaserade saker. Det är 164 00:16:22,160 --> 00:16:30,560 varför vårt namn Corporation for National Research Initiatives har ordet "initiatives" i sig. 165 00:16:32,720 --> 00:16:40,880 Vi hade ett behov av ett språk som skulle vara lättare för människor att hantera än något annat traditionellt 166 00:16:40,880 --> 00:16:46,960 språk som fanns på den tiden. Jag sprang över ett fotografi. Det var en fest på CNRI, 167 00:16:46,960 --> 00:16:56,640 år sedan. Det var nog 1996, tror jag. Och det är en Guido. Ja. Jag brukade säga 168 00:16:56,640 --> 00:17:02,560 Guido. Många säger Guido, men jag sa Guido och jag är säker på att jag inte uttalar det rätt. Oh, 169 00:17:02,560 --> 00:17:07,840 han var en mycket elegant person och han var en mycket stark kille. Blev presenterad för honom och det bara 170 00:17:07,840 --> 00:17:13,760 verkade passa mig bra, så jag tackade ja till jobberbjudandet. För mig var det fantastiskt. Det finns ingen 171 00:17:13,760 --> 00:17:18,800 det råder det ingen tvekan om. En av sakerna han insisterar på om du vill få honom att arbeta för dig är att han 172 00:17:18,800 --> 00:17:25,360 har en del av sin tid, helst lika mycket som som halvtid om inte mer, för att arbeta med språket 173 00:17:25,360 --> 00:17:31,600 faktum att de kunde arbeta heltid med Python på Python eftersom det visade sig att Knowbots 174 00:17:31,600 --> 00:17:38,880 projekt var nästan mer en ursäkt för att anställa än att jag gjorde mycket för det. Jag känner mig lite 175 00:17:38,880 --> 00:17:44,880 ...att vårt arbete med Python var lite subversivt. Du vet, vi tenderade att spendera mycket mer tid på 176 00:17:44,880 --> 00:17:50,640 Python än vad vi kanske borde ha gjort. Jag åkte till CNRI och eftersom jag hade varit en systemperson, 177 00:17:50,640 --> 00:17:56,800 Jag var ansvarig för att sätta upp python.org. Vi borde också ha tagit tag i python.com även om 178 00:17:56,800 --> 00:18:01,760 vi tänkte inte på Python som ett kommersiellt företag företag eftersom någon annan fick det och 179 00:18:01,760 --> 00:18:13,680 uh använde den för en dum porrsida. I flera år var vi tvungna att varna folk att gå till python.org, inte .com. 180 00:18:13,680 --> 00:18:18,960 Det var verkligen det perfekta hemmet, tror jag, för att göra all den tidiga Python-utvecklingen - och utveckla 181 00:18:18,960 --> 00:18:24,320 en hel del av infrastrukturen kring Python. Vi hade ett möte där vi diskuterade att göra någon form av 182 00:18:24,320 --> 00:18:30,640 grupp eller programvaruorganisation där Python programvaruaktivitet föreslogs. Vi behöver lite 183 00:18:30,640 --> 00:18:35,360 lite styrning, lite organisation, men vi vill inte ha för mycket eftersom jag inte tror 184 00:18:35,360 --> 00:18:40,880 ingen av oss gillade verkligen byråkrati. Och sedan kom kom frågan upp om vad vi skulle kalla Guido 185 00:18:40,880 --> 00:18:48,400 som en del av det. Jag tror att det var jag som föreslog att Guido skulle kallas den välvilliga diktatorn och 186 00:18:48,400 --> 00:18:55,600 då föreslog Barry Benevolent Dictator for Life och det blev en internetmeme eller faktiskt en 187 00:18:55,600 --> 00:19:05,440 mjukvara meme. Benevolent Dictator for Life var... kan du hitta den på Wikipedia. I slutändan, du 188 00:19:05,440 --> 00:19:11,440 vet, Guido var uppfinnaren av språket och den slutliga beslutsfattaren om ja, det här kommer att göra 189 00:19:11,440 --> 00:19:19,360 eller så kommer det här inte att komma in. Jag tror att Jag utvecklade min egen stil under de första åren. 190 00:19:19,360 --> 00:19:27,520 Alla idéer är välkomna, men jag kommer att välja vilka idéer som jag anser är rätt att lägga till i språket. 191 00:19:27,520 --> 00:19:36,960 Det finns dussintals och åter dussintals aspekter av Python idag där någon hade en vision för, 192 00:19:36,960 --> 00:19:45,160 om du bara lägger till detta till Python, titta på alla dessa fantastiska saker som jag kan göra. 193 00:19:45,160 --> 00:19:48,560 [Musik] 194 00:19:48,560 --> 00:19:53,040 Jag är en av de många människor som kom till Python, inte som en programmerare, utan som en vetenskapsman. Python 195 00:19:53,040 --> 00:19:57,920 var inte det första språket jag använde för vetenskap. I gjorde satellitdatabehandling och jag använde 196 00:19:57,920 --> 00:20:01,600 Perl för att göra det och sedan ett år senare skulle jag komma tillbaka och försöka ta reda på vad jag hade gjort och jag 197 00:20:01,600 --> 00:20:07,840 hade ingen aning. Python hade den motsatta erfarenheten. I först började använda Python 1997. Jag använde det bara 198 00:20:07,840 --> 00:20:12,480 att göra lite skript, göra lite databehandling med några medicinska bilddata och jag tänkte att det här är 199 00:20:12,480 --> 00:20:18,480 ...fint. Det här är ganska coolt. Ett år senare, så 1998, Kom jag tillbaka för att titta på koden jag hade skrivit och jag 200 00:20:18,480 --> 00:20:23,040 kunde läsa det. Jag förstod vad jag gjorde. Och det var för mig den övertygande informationen som sa, 201 00:20:23,040 --> 00:20:28,240 "Jag måste fördjupa mig i det här språket." Och det fanns några nyckelpersoner på 202 00:20:28,240 --> 00:20:32,640 den tiden som publicerade eller pratade om hur man använder Python för vetenskap. Inte särskilt många, 203 00:20:32,640 --> 00:20:38,640 men några få. Konrad Hinsen var en av dem, jag minns, och David Ascher och Jim Hugunin. 204 00:20:38,640 --> 00:20:45,840 Det har funnits ett antal stadier i livscykeln livscykel för Python, när det bara växte från en kärna 205 00:20:45,840 --> 00:20:52,080 språkkapacitet till en plattform med ett antal olika olika specialiserade moduler och paket som gjorde 206 00:20:52,080 --> 00:20:59,120 det mycket mycket användbart för vissa användargrupper. Den första var förmodligen den numeriska gemenskapen, 207 00:20:59,120 --> 00:21:04,320 vetenskaps- och ingenjörsfolket som ville högpresterande matrisoperationer skulle göras. 208 00:21:04,320 --> 00:21:09,040 Trots att Guido inte var vetenskapsman själv.., inte nödvändigtvis var djupt bekymrad över 209 00:21:09,040 --> 00:21:16,480 samma saker som vi var bekymrade över som forskare, var han öppen för förslag. 210 00:21:16,480 --> 00:21:19,840 Jag tror att en av de saker som folk inte uppskattar med Python språket lika mycket 211 00:21:19,840 --> 00:21:25,360 nu när det är så populärt och mainstream är hur viktigt det var att Guido var 212 00:21:25,360 --> 00:21:31,840 öppna för nya idéer och öppna för behoven hos människor människor som inte är traditionella programmerare. 213 00:21:32,640 --> 00:21:41,120 Jag tror att han hade en väldigt klarögd tyst fokus på att förstå vissa saker om framtiden 214 00:21:41,120 --> 00:21:46,560 som han byggde in i språket. Det var unikt anpassat till sin miljö. En av anledningarna till att jag 215 00:21:46,560 --> 00:21:50,640 använde Python och jag tror att många använde Python på den tiden är att i början av 2000-talet, 216 00:21:50,640 --> 00:21:55,360 världen var nästan uppdelad i här är ett ekosystem med öppen källkod eller så kan du gå och använda 217 00:21:55,360 --> 00:22:00,000 Java som faktiskt är en betald sak. I använde MATLAB. Jag gillade verkligen inte 218 00:22:00,000 --> 00:22:02,880 det faktum att när jag skrev kod och jag ville dela den koden med andra, 219 00:22:02,880 --> 00:22:07,440 Jag berättade i huvudsak för människor att de var tvungna att gå köpa en licens för ett mjukvarupaket innan de 220 00:22:07,440 --> 00:22:10,320 kunde inte ens titta på min eller använda min kod. Du vet, det här är de dagar då du måste 221 00:22:10,320 --> 00:22:16,720 som att köpa utvecklarverktygen eller spendera ett par hundra dollar för att få Visual Studio 6.0 och sedan 222 00:22:16,720 --> 00:22:21,120 Python och sedan var alla dessa bibliotek öppen källkod och kunde sedan anpassas, användas och 223 00:22:21,120 --> 00:22:27,120 i ett kommersiellt projekt. Jag blev liksom tidigt övertygad av medlemmar i gemenskapen att Python 224 00:22:27,120 --> 00:22:33,440 att vara öppen källkod och det speciella sätt på vilket det var öppen källkod var mycket viktigt så att människor 225 00:22:33,440 --> 00:22:48,000 skulle känna sig bekväma med att använda Python för att göra fantastiska saker som de sedan skulle kunna sälja. 226 00:22:51,320 --> 00:22:58,080 [Musik] År 1998 publicerades Blender på internet. Programvaran var gratis och 227 00:22:58,080 --> 00:23:04,080 och sen kunde man köpa lite saker runtomkring. Vi var begränsade till att använda öppen källkod. Så.., 228 00:23:04,080 --> 00:23:10,880 hade man inte så många valmöjligheter. Vi gjorde ett på vår webbplats som vad som är det mest populära 229 00:23:10,880 --> 00:23:18,400 skriptspråk som vi borde lägga till i Blender? Perl var riktigt stort och Python var på gång och 230 00:23:18,400 --> 00:23:24,640 det fanns några andra. Och det var intressant att se att alla som rådde oss att 231 00:23:24,640 --> 00:23:32,960 använda Perl som skriptspråk men de bara annonserade bara hur bra Perl är. Och folket 232 00:23:32,960 --> 00:23:38,880 som kom mer från Python-bakgrunden som sa att jag tycker att Python är ett bättre val. 233 00:23:38,880 --> 00:23:43,280 De kom med en balanserad åsikt. Och de sa okej Perl kommer att ge dig det här och det här 234 00:23:43,280 --> 00:23:49,760 och detta och Python kommer att ge dig andra saker och balansera allt detta skulle jag rekommendera dig att 235 00:23:49,760 --> 00:24:04,320 göra Python och bara av den anledningen valde jag Python bara för att människorna var trevligare. 236 00:24:04,320 --> 00:24:09,360 Det var ärligt talat bara en massa entusiaster. Det var många människor som bara tyckte om språket, 237 00:24:09,360 --> 00:24:12,560 njöt av de människor som var involverade i språk och det skulle bara hända 238 00:24:12,560 --> 00:24:16,000 att vara tillräckligt motiverande för att människor att vilja hjälpa till. I slutändan, 239 00:24:16,000 --> 00:24:21,680 det finns en känsla av skoj som kommer över och Guido kodade in det i namnet på 240 00:24:21,680 --> 00:24:30,640 språk influerat av Monty Python. Det skapar en känsla av gemenskap att ha dina små skämt. 241 00:24:30,640 --> 00:24:37,600 Tim Peters är ett känt tidigt exempel på att blanda både som estetiken i Python och humor. Tim 242 00:24:37,600 --> 00:24:45,360 Peters var en mytomspunnen varelse i pythons värld, och ingen hade träffat honom. Han 243 00:24:45,360 --> 00:24:51,760 fanns där ute i etern som en vis man som skulle ge oss råd oss råd om vad vi skulle göra med numerisk bearbetning. 244 00:24:51,760 --> 00:24:58,400 Steve Majewski skickade mig ett mejl där han berättade om Python. Så jag började en e-postkorrespondens med 245 00:24:58,400 --> 00:25:03,120 Guido om språket och om designen och jag fick lite av den preliminära koden och spelade 246 00:25:03,120 --> 00:25:10,880 med den och pratade med honom om designbeslut och gillade det väldigt mycket. Tim Peters var en Python 247 00:25:10,880 --> 00:25:18,560 bidragsgivare och medlem i gemenskapen och mentor för mig från mycket tidigt. Tim var en kanaliserare 248 00:25:18,560 --> 00:25:24,560 av Guido. Han hade ett väldigt unikt sätt att säga saker på: I tror att Guido kommer att gilla det här eller jag tror inte 249 00:25:24,560 --> 00:25:30,240 Guido kommer att gilla det. Det finns en dikt som heter zen of Python som är delvis humoristisk, 250 00:25:30,240 --> 00:25:39,600 delvis seriös dikt om estetiken i Python av Python. Jag tittar faktiskt på Usenet-inlägget 251 00:25:39,600 --> 00:25:47,840 där Tim publicerade sin första version av Zen of Python Python, även om han kallade det Way of Python. 252 00:25:47,840 --> 00:25:54,160 Och det var som svar på en diskussion där människor klagade över att de 253 00:25:54,160 --> 00:25:59,680 förstod inte vad som var Pythons filosofi. De kunde inte förstå mig. Och Tim hade räknat ut 254 00:25:59,680 --> 00:26:09,280 och han uttryckte det i poesi. Här är Way of Python av Tim Peters från 1999. 255 00:26:09,280 --> 00:26:15,920 Vackert är bättre än fult. Duh. Explicit är bättre än implicit. Enkelt är bättre än 256 00:26:15,920 --> 00:26:23,280 komplex. Komplext är bättre än komplicerat. Och jag älskar den distinktionen. Platt är bättre än nästlat. 257 00:26:23,280 --> 00:26:29,920 Gles är bättre än tät. Läsbarheten räknas. I kommer att säga att det räknas för mycket. Specialfall är inte 258 00:26:29,920 --> 00:26:36,400 tillräckligt speciell för att bryta mot reglerna. Även om praktiskhet slår renhet. Fel bör aldrig 259 00:26:36,400 --> 00:26:43,760 passera tyst om det inte uttryckligen tystas. Inför inför tvetydighet, vägra frestelsen att gissa. 260 00:26:43,760 --> 00:26:51,520 Jag följde inte det i en mycket viktig del av NumPy och det är fortfarande en röra. Det borde finnas en och 261 00:26:51,520 --> 00:26:59,280 helst bara ett uppenbart sätt att göra det på. Det är en direkt referens till Perls motto om att det finns 262 00:26:59,280 --> 00:27:03,680 mer än ett sätt att göra det förresten. Även om det kanske inte är uppenbart först, såvida du inte är 263 00:27:03,680 --> 00:27:09,760 Holländska. Nu är bättre än aldrig. Även om aldrig är ofta bättre än just nu. Om implementeringen 264 00:27:09,760 --> 00:27:15,520 är svårt att förklara, är det en dålig idé. Det är en riktigt bra idé. Om implementeringen är lätt 265 00:27:15,520 --> 00:27:21,840 att förklara, kan det vara en bra idé. Namnutrymmen är en jäkla bra idé. Låt oss göra mer av 266 00:27:21,840 --> 00:27:31,360 ...de där. Det här är så Tim. Normalt "importera detta", importerar något användbart bibliotek, vilket är mycket allvarligt 267 00:27:31,360 --> 00:27:38,000 affärer. Att ha en "importera detta" som bara var ett skämt var lite lätthet som vi gillade att 268 00:27:38,000 --> 00:27:43,120 lägg till. Det här är från en liten hobbyistgemenskap, eller hur? För om du är en företagsjätte 269 00:27:43,120 --> 00:27:47,120 att göra ett programmeringsspråk, som någon är kommer förmodligen att säga att du inte kan sätta en 270 00:27:47,120 --> 00:27:52,720 ...en fånig dikt i ditt programmeringsspråk, men Python är bara gjort av hundar på internet, 271 00:27:52,720 --> 00:28:00,240 så att de kan lägga in dikter i sin programvara. [Musik] De olika sätten att tjäna pengar på internet 272 00:28:00,240 --> 00:28:05,440 har precis börjat växa fram. Entreprenörer företagare sätter sin tilltro till ett nytt medium för att leverera 273 00:28:05,440 --> 00:28:11,200 den stora vinsten. Det är dot-com-bubblan, alla dessa pengar som pumpas in i Silicon Valley programvara 274 00:28:11,200 --> 00:28:19,600 och internetgrejer. I början av 2000 bestämde jag mig för att lämna CNRI och tillsammans med några kollegor gick jag 275 00:28:19,600 --> 00:28:27,120 liten startup som heter BeOpen. Medan CNRI, tror jag, var ett fantastiskt hem för Python under de tidiga dagarna, 276 00:28:27,120 --> 00:28:31,760 allt förändras och allt utvecklas och tänker, ja om vi ska slå ut på vår 277 00:28:31,760 --> 00:28:38,480 det här är nog rätt tillfälle att göra det. Det fungerade inte. Jag skulle säga inom kanske ett år 278 00:28:38,480 --> 00:28:45,200 eller något. BeOpen var helt inkompetent. Vi tillbringade sommaren i lycklig okunnighet och arbetade 279 00:28:45,200 --> 00:28:53,120 på heltid på Python. Vi byggde och släppte Python 2 och inom 5 månader var det över. Vi fick betalt 280 00:28:53,120 --> 00:29:02,400 våra löner varannan vecka, och sedan plötsligt i slutet av i slutet av oktober var vi inte det. [Musik] Det var ett ögonblick 281 00:29:02,400 --> 00:29:08,400 där [ __ ] kunde ha träffat fläkten. Om alla python-killarna gick skilda vägar... Python 282 00:29:08,400 --> 00:29:14,880 var inte tillräckligt stort för att överleva det då. Det var då jag hade ett företag, Digital Creations 283 00:29:14,880 --> 00:29:19,840 som senare blev Zope, som är en applikationsserver databasserver, indexserver, webbserver, 284 00:29:19,840 --> 00:29:26,240 etc. Mycket storskalig kommersiell kvalitetsapplikation applikation skriven i Python. Och om Python dog, 285 00:29:26,240 --> 00:29:32,560 vet du vem mer som skulle dö? Vi skulle dö. Hela plattformen var byggd på Python. Så de var Python 286 00:29:32,560 --> 00:29:40,560 experter. Vi måste gå och se till att Python är säkert för framtiden och att teamet stannar 287 00:29:40,560 --> 00:29:49,520 tillsammans. Så vi förhandlade fram ett avtal med dem att gå med i mitt företag. Det var en otroligt lyckosam 288 00:29:49,520 --> 00:29:53,760 räddning. Vi kände att vi verkligen litade på dem och vi trodde på vad de gjorde och 289 00:29:53,760 --> 00:30:00,320 vad de ville göra med Python och för Python. Det här är en plats som jag är stolt över. Så här i efterhand, 290 00:30:00,320 --> 00:30:06,160 det var en väldigt kritisk punkt i Pythons liv. Jag tror att om vi hade valt fel eller försökt att säga, 291 00:30:06,160 --> 00:30:11,040 "Åh, ja, vi kommer bara att slå ut på vår på egen hand ändå." Man vet aldrig. Men jag är inte 292 00:30:11,040 --> 00:30:33,913 så säker på att Python skulle ha överlevt den tidpunkten i sitt liv. Ja. [Musik] 293 00:30:33,913 --> 00:30:33,920 [Musik] 294 00:30:33,920 --> 00:30:40,000 Python bara fortsatte att växa och gemenskapen fortsatte att självorganisera. 295 00:30:40,000 --> 00:30:48,400 Ett av de underliggande temana i Python, om du tar det i sin helhet, är denna känsla av 296 00:30:48,400 --> 00:30:56,720 gräsrotsrörelser. Saker växer nerifrån och upp upp och utvecklas till den punkt där alla typ av 297 00:30:56,720 --> 00:31:02,880 inser, åh, vi behöver lite mer struktur. Åh, Python Software Foundation. Enligt min åsikt, 298 00:31:02,880 --> 00:31:10,000 pSF, den jäkla saken var en framgång från dag från dag ett. Det kom ur en av de farhågor vi hade 299 00:31:10,000 --> 00:31:19,280 hade med BeOpen faktiskt. Så CNRI hade skrivit en licens för Python och satte sitt namn på den och 300 00:31:19,280 --> 00:31:26,000 BeOpen hade kopierat en version av den licensen och satt BeOpen-namnet på den. Det fanns en 301 00:31:26,000 --> 00:31:32,400 oro för att jag någon gång skulle råka arbeta för ett hamna på ett företag som försökte få tag på mig genom att 302 00:31:32,400 --> 00:31:39,040 ägande av Python. Vi insåg att vi verkligen behöver en organisation som kommer att vara oberoende, 303 00:31:39,040 --> 00:31:47,760 kommer inte att vara beroende av något företag och deras nycker och deras advokater och kommer verkligen att hålla 304 00:31:47,760 --> 00:31:59,840 Python-användare som deras första och främsta kund, så att säga, i åtanke. [Och sedan det magiska 305 00:31:59,840 --> 00:32:17,920 hände när vi kom in på PyCon, som kanske är den tredje stolen av miraklet av Python. [Musik] 306 00:32:17,920 --> 00:32:24,160 Vad har du tagit med dig från PyCon US i år? år? Det känns som att folk fortfarande är villiga att 307 00:32:24,160 --> 00:32:29,440 göra svåra saker, arbeta på saker tillsammans, du ...vet du. Oj, oj. De har fortfarande passionen att vara 308 00:32:29,440 --> 00:32:35,280 ärlig. Så, vad var det för dig? Uh, för mig mest definitivt som att träffa människor som jag inte har träffat i 309 00:32:35,280 --> 00:32:40,640 ...ett tag. Det är lugnt. Ja, det är det. Och bara ganska hänga med dem. Du försöker gå, 310 00:32:40,640 --> 00:32:45,040 Ja, till andra sidan. Det finns typ 10 människor som du vill se i mellan som 311 00:32:45,040 --> 00:32:52,080 sluta. Jag vill prata med dig. Åh, jag vet. Pablo och Yuri presenterade som bananer och sedan Lukasz 312 00:32:52,080 --> 00:32:56,480 ställde frågan klädd som en banan. Och sedan kom Guido in som en banan 313 00:32:56,480 --> 00:33:01,760 och så vidare. Tack för vad du gör för PSF. Snälla, trappa inte ner. Fortsätt bara att göra 314 00:33:01,760 --> 00:33:08,080 den för alltid. Räck upp handen om du älskar webben. Räck bara upp handen. Höj din hand 315 00:33:08,080 --> 00:33:17,360 om du har arbetat med React-frontends. Räck upp din hand om du vill komma tillbaka. Till React? 316 00:33:17,360 --> 00:33:24,320 Nej, kom tillbaka till Python. Okej, då. Det är bra. För för protokollet, 100%. Jag bad min mamma att ta 317 00:33:24,320 --> 00:33:33,280 mig till PyCon och jag träffade alla mina onlinehjältar. Han var den här avlägsna välvilliga diktatorn för livet 318 00:33:33,280 --> 00:33:38,240 som jag hade pratat med över internet, men här var han personligen och så jag var glad att 319 00:33:38,240 --> 00:33:43,040 att äntligen få träffa honom. Då tror jag tror jag att alla var medvetna om att han var 320 00:33:43,040 --> 00:33:49,520 en 15-årig kille i andra änden av terminalen terminalen. När PyCon hölls i Montreal, 321 00:33:49,520 --> 00:33:55,680 frågade arrangören mig om jag kunde tänka mig att hålla ett öppningsanförande på konferensen. Det gjorde jag, 322 00:33:55,680 --> 00:34:02,160 Jag är en lite snabbpratare och jag hade lite tid över tid och jag använde det bara som ett tillfälle att säga 323 00:34:02,160 --> 00:34:06,160 tack så mycket. "Jag gillar att tänka på det som att jag kom för språket, men jag stannade för gemenskapen. Så.., 324 00:34:06,160 --> 00:34:10,480 Jag vill personligen tacka er alla för att ni för att göra detta till en så underbar plats att vara 325 00:34:10,480 --> 00:34:15,120 och en sådan underbar grupp människor att vara runt. Så, tack så mycket". Lyckligtvis kom det 326 00:34:15,120 --> 00:34:21,520 bra eftersom folk fortfarande citerar det. I think att det talar till Pythons grundläggande etos. 327 00:34:21,520 --> 00:34:28,880 Vi försöker utveckla det här verktyget som människor kan använda för sina behov för att få sitt arbete gjort. Men 328 00:34:28,880 --> 00:34:36,520 gemenskap är Pythons verkliga styrka. Det är inte bara språket, eller hur? Det är människorna. 329 00:34:36,520 --> 00:34:43,840 [Musik] Det växte stadigt varje enskilt år. Den fick fler och fler nedladdningar, 330 00:34:43,840 --> 00:34:50,160 fler och fler människor som använder sig av det. Det blev ett mer sofistikerat språk som var 331 00:34:50,160 --> 00:34:57,760 passar för detta nya framväxande programmeringsparadigm paradigm där webben själv är plattformen. 332 00:34:57,760 --> 00:35:04,640 Han berättade ett intressant nummer som fick mig att inse insåg att Python-användargruppen redan var 333 00:35:04,640 --> 00:35:10,960 mycket större än jag hade beräknat eftersom han sa: "Guido, du vet inte försäljningen 334 00:35:10,960 --> 00:35:17,600 nummer för Python-böcker, men jag är Tim O'Reilly. Jag gav ut de två viktigaste och jag gör 335 00:35:17,600 --> 00:35:23,920 känner till försäljningssiffrorna och de är fantastiska." Jag vet inte om han hade så mycket entusiasm i 336 00:35:23,920 --> 00:35:30,880 hans röst då, men han delade detta nya för mig viktigt faktum som fick mig att inse, 337 00:35:30,880 --> 00:35:38,720 python brukar få toppar när vissa specialiteter, antar jag att man kan säga, 338 00:35:38,720 --> 00:35:44,080 plocka upp språket och bestämma sig för att det här är att det är något som de vill använda i sitt område. 339 00:35:44,080 --> 00:35:49,600 Alla ville göra saker med den världsomspännande med webben och Python blev faktiskt 340 00:35:49,600 --> 00:35:57,200 en riktigt kraftfull plattform för att inte bara göra webbsidor utan även webbservrar och tjänster och 341 00:35:57,200 --> 00:36:07,680 plötsligt hade vi en ökning av människor som kom in från webbvärlden. [Jag tror att Dropbox var 342 00:36:07,680 --> 00:36:12,960 ett av de tidiga företagen att börja bygga i Python och nådde miljontals användare. 343 00:36:14,080 --> 00:36:18,480 Jag heter Drew och jag ska visa dig en snabb rundtur rundtur i Dropbox, som är ett nytt sätt att lagra och 344 00:36:18,480 --> 00:36:24,000 dela filer online. Python hade till stor del setts som ett skriptspråk man kör på backend eller i 345 00:36:24,000 --> 00:36:29,040 kanske i en akademisk miljö eller i en vetenskaplig miljö, men inte riktigt för produktion 346 00:36:29,040 --> 00:36:33,760 desktop-programvara som du skickar till miljontals människor människor. Men jag har precis börjat skriva i Python 347 00:36:33,760 --> 00:36:38,000 och hoppades att ingen av vägspärrarna skulle helt spränga mig. Du kan utveckla program 348 00:36:38,000 --> 00:36:43,520 mycket snabbare i Python eftersom det är en högre nivå språk och det är ett mycket rent och enkelt språk och 349 00:36:43,520 --> 00:36:48,960 så att vi kunde vara mycket mer konkurrenskraftiga än andra företag som skrev med Java 350 00:36:48,960 --> 00:36:54,960 eller C++ eller Perl. Redan då tävlade vi mot världens Google och Microsoft 351 00:36:54,960 --> 00:37:00,720 och våra odds verkade inte så bra. Så.. behövde vi all hjälp vi kunde få. Google hade det här 352 00:37:00,720 --> 00:37:06,400 ett stort team på hundra personer, C++-programmerare, försöker göra en video hosting webbplats och de kunde 353 00:37:06,400 --> 00:37:10,880 aldrig hålla jämna steg med den här lilla saken där borta som heter YouTube och de gick och tittade och det var 354 00:37:10,880 --> 00:37:16,480 bara ett par personer som skriver Python. Python visade sig vara en stor kraftmultiplikator på vår 355 00:37:16,480 --> 00:37:25,200 ansträngning och inget annat språk som vi övervägde hade något i närheten av den typen av kapacitet. 356 00:37:27,160 --> 00:37:28,160 [Musik] 357 00:37:28,160 --> 00:37:32,080 Det faktum att datavetenskap plötsligt blev en sak som man var tvungen att göra, 358 00:37:32,080 --> 00:37:39,200 kombinerat med det faktum att Python var typ väl positionerad för att göra datavetenskapliga saker 359 00:37:39,200 --> 00:37:50,080 innebar att en enorm mängd nya Python-användare strömmade in. 360 00:37:50,080 --> 00:37:56,800 Det som började hända under 2009-2010 tidsram, vi såg mer och mer av 361 00:37:56,800 --> 00:38:03,360 våra konsultavtal kopplade till att använda Python inte som en ersättning för MATLAB eller ingenjörsvetenskap 362 00:38:03,360 --> 00:38:09,680 typ av saker, men använder Python för att göra data bearbetning. Vi kallade det inte datavetenskap på den tiden 363 00:38:09,680 --> 00:38:13,360 men det var den sortens arbete, eller hur? Det var modellering, prediktiv analys, såna saker. 364 00:38:13,360 --> 00:38:18,320 Det här är tiden för Hadoop, tiden för big data, tiden för Spark, och människor gjorde Java på 365 00:38:18,320 --> 00:38:24,160 skala. Vi började göra mycket mer konsultarbete arbete i finansbranschen och vi skulle gå in i 366 00:38:24,160 --> 00:38:28,880 dessa stora mycket välkapitaliserade företag och de använde Python för att göra affärsdatabehandling. 367 00:38:28,880 --> 00:38:33,200 Jag insåg att det är okej om det är en forskargrupp här gör någon vetenskaplig forskning och de gör det inte 368 00:38:33,200 --> 00:38:38,640 har pengar och de använder en öppen källkodsgrej Jag förstår det, men om du har JP Morgan rätt som 369 00:38:38,640 --> 00:38:43,120 har mycket pengar och de plockar upp och använder dessa vetenskapliga verktyg och de älskar 370 00:38:43,120 --> 00:38:48,800 ...det. Jag insåg att vi inte bara hade ett billigt gratis alternativ. Vi hade faktiskt något som 371 00:38:48,800 --> 00:38:54,480 var innovativt och det var att göra något ganska unikt. Peter och jag slutade med att lämna Enthought och 372 00:38:55,120 --> 00:39:02,160 starta ett nytt företag. Vi började som Continuum Analytics och dess vision var att skala upp 373 00:39:02,160 --> 00:39:08,640 NumPy och Pandas till stora datamängder och stora kluster. Vi stötte snabbt på ett enkelt problem, 374 00:39:08,640 --> 00:39:12,880 mycket snabbt in, men ett mycket irriterande problem. Ja, folk kunde inte ens installera 375 00:39:12,880 --> 00:39:19,200 programvara som behövs för att köra alla dessa Python-grejer. Det med Pythons vetenskapliga och datastack 376 00:39:19,200 --> 00:39:23,680 är att alla dessa olika bibliotek, de är väldigt annorlunda än webbutvecklingsbiblioteken 377 00:39:23,680 --> 00:39:28,320 eftersom dessa databibliotek ofta backas upp av en mycket stor mängd komplexa C++-, Fortran- och 378 00:39:28,320 --> 00:39:34,000 andra typer av programvarumoduler. Och att bygga dessa korrekt kräver en del arbete. För att bygga dem 379 00:39:34,000 --> 00:39:38,880 korrekt på alla operativsystem kräver ännu mer arbete mer arbete. Och att sedan bygga dem så att de 380 00:39:38,880 --> 00:39:44,640 faktiskt kan kopplas ihop, det kräver att man rationaliserar hela byggsystemet. 381 00:39:44,640 --> 00:39:48,640 Så det allra första vi gjorde var att göra en distribution av Python för att göra det enkelt att få 382 00:39:48,640 --> 00:39:52,800 som är installerad. Många av de datavetenskapliga Python människor, de använde inte ens vanliga Python. De 383 00:39:52,800 --> 00:39:56,720 använde den här Anaconda Python-distributionen. Typ av ett dumt skämt som jag kom på vid ett tillfälle. 384 00:39:56,720 --> 00:40:03,360 Det var i princip Python för big data. Så det är en stor orm. Så Anaconda. Efter några år.., 385 00:40:03,360 --> 00:40:07,520 vi fortsatte att åka på konferenser och åka till platser och folk visste inte vilka vi var 386 00:40:07,520 --> 00:40:11,200 var. Men så fort vi nämnde att vi gör att vi gör Anaconda, sa de: "Javisst, 387 00:40:11,200 --> 00:40:14,880 naturligtvis. Jag älskar Anaconda. Jag använder det hela hela tiden." Eller hur? Så efter att det hände, som 388 00:40:14,880 --> 00:40:19,280 tusen gången, sa vi, "Okej, vi kanske borde döpa om företaget till Anaconda." Datateknik 389 00:40:19,280 --> 00:40:26,560 blev en disciplin där Python var otroligt förankrat. Det var Python och R. Och med tiden.., 390 00:40:26,560 --> 00:40:31,200 Pythons dataanalysbibliotek kom ikapp och plottningsbibliotek och annat började komma ikapp 391 00:40:31,200 --> 00:40:36,720 till vad R hade. Och sedan insåg folk att det var okej, med Python, kan jag arbeta från början till slut med mina data 392 00:40:36,720 --> 00:40:42,240 mot R som är mycket bra på dataanalys, men inte nödvändigtvis gillar datainsamlingsstadiet 393 00:40:42,240 --> 00:40:46,960 och flera andra scener. Jag minns att jag åkte till en Python-konferens vid ett tillfälle. Jag tänkte.., 394 00:40:46,960 --> 00:40:52,160 det finns så många vetenskapsmän här. Var är alla webbutvecklare? är alla webbutvecklare? Det här är bara data data 395 00:40:52,160 --> 00:40:55,440 pipelines och sånt. Jag vill inte vara obesvärad om detta eftersom det var en kollektiv ansträngning för 396 00:40:55,440 --> 00:40:59,840 hela gemenskapen, men jag tror att det vi gjorde på Anaconda, inte bara att göra mjukvaran 397 00:40:59,840 --> 00:41:04,640 installatör som gjorde det enkelt för folk att bara bara köra, men också att leda konferenserna 398 00:41:04,640 --> 00:41:09,680 och bygga upp den gemenskapen och så vidare var verkligen avgörande. De var otroligt 399 00:41:09,680 --> 00:41:20,120 viktiga bidrag. Jag tror att vi faktiskt gjorde Python superpopulärt. Jag tror att vi gjorde det. [Musik] 400 00:41:24,480 --> 00:41:28,960 Jag minns att jag hörde från en vän att Guido van Rossum bara arbetade 401 00:41:28,960 --> 00:41:34,560 på Google. Och när jag tänkte på det så tänkte jag: "Vänta, ja, Guido, antar jag 402 00:41:34,560 --> 00:41:41,120 arbetar på ett vanligt företag och jag minns inte de exakta omständigheterna, men jag tror att antingen 403 00:41:41,120 --> 00:41:45,920 Jag fick en introduktion till honom eller jag bara kanske jag tror kanske bara skicka honom ett e-postmeddelande och säga, "Hej, 404 00:41:45,920 --> 00:41:52,720 um, stort fan av ditt arbete." du vet, det är som fan mail i princip. Han svarade och vi åt lunch. 405 00:41:52,720 --> 00:41:58,400 Jag menar, han är en hjälte för mig och han var helt vänlig och lättillgänglig. Och på det där samtalet, 406 00:41:58,400 --> 00:42:04,480 avslöjades det att Dropbox var helt skrivet i Python i Python, både klienten och servern, 407 00:42:04,480 --> 00:42:08,640 och det var spännande. Han var intresserad av vad vi gjorde med Python. Och jag tror 408 00:42:08,640 --> 00:42:15,040 vi tänjde på språket och körtiden på intressanta sätt intressanta sätt. Han kontaktade mig igen och sa, 409 00:42:15,040 --> 00:42:21,520 "Hej, vi vill gärna att du jobbar för oss." Och till min förvåning och glädje slutade det med att han 410 00:42:21,520 --> 00:42:28,400 till Dropbox-teamet, vilket var superspännande för oss alla. Jag stannade där i sju år. Vi gjorde 411 00:42:28,400 --> 00:42:35,280 viktigare saker för Python än vad jag gjorde under 7 år på Google tror jag. Jag tror att han hade en stor 412 00:42:35,280 --> 00:42:39,680 och hur det påverkar resten av teamet. Du vet, här är någon som är en av ikonerna inom databehandling, 413 00:42:39,680 --> 00:42:45,360 men du skulle aldrig veta det bara från hans, du vet, hur han badgar in på kontoret varje dag 414 00:42:45,360 --> 00:42:52,720 och jag tycker att han är ett bra föredöme när det gäller när det gäller att vara super ödmjuk och nyfiken och vänlig. 415 00:42:52,720 --> 00:43:00,320 Det är svårt för mig att tänka på någon som har haft större inverkan med lägre ego. Ja, 416 00:43:00,320 --> 00:43:08,400 låt oss börja med den första Python-registreringsskylten registreringsskylt. Förlåt, det var min bil när vi bodde i 417 00:43:08,400 --> 00:43:17,040 Virginia. Och det fanns en ruta på ansökan - förlåt, jag tog bara den andra också, 418 00:43:17,040 --> 00:43:23,040 vill du ha en anpassad registreringsskylt? Så, jag lyckades att få Python i Virginia och i Kalifornien, 419 00:43:23,040 --> 00:43:30,800 Python var sedan länge upptaget. Liksom någon i Silicon Valley förmodligen har en Python registreringsskylt 420 00:43:30,800 --> 00:43:40,160 ...någonstans. Så det bästa jag kunde få fram var PY3K, som jag tyckte var ganska söt ändå. 421 00:43:40,160 --> 00:43:46,320 Det blev allt mer populärt och folk började började fundera över brister i den 422 00:43:46,320 --> 00:43:51,360 språk. Det fanns många idéer som flöt runt kärnutvecklingsgemenskapen, 423 00:43:51,360 --> 00:43:54,640 förändringar man kunde göra i språket som folk trodde skulle vara stora förbättringar. 424 00:43:54,640 --> 00:44:00,160 Det enda problemet med dem var att de skulle bryta gammal Python-kod som för närvarande existerade. 425 00:44:00,160 --> 00:44:06,560 En del av det kom nog bort oss lite i efterhand. 426 00:44:06,560 --> 00:44:15,200 Vi släppte Python 3.0 i december i år 2007. Jag minns det för att jag faktiskt var 427 00:44:15,200 --> 00:44:20,640 praktikant under Guido vid den tiden. Vi gav gav folk ungefär 5 år, tror jag, 428 00:44:20,640 --> 00:44:25,280 för att göra övergången. Och alla tyckte det var bara utomordentligt generöst. Det 429 00:44:25,280 --> 00:44:30,560 världen skulle helt och hållet vara på Python 3 på bara några år. Detta är bäst för språket på lång sikt. 430 00:44:30,560 --> 00:44:33,600 Vi kommer att göra dessa ändringar. Gemenskapen har alltid följt med oss. Vi tror att de kommer att 431 00:44:33,600 --> 00:44:43,280 också följa med på den här resan. Vi var väldigt naiva om det och de fick oss att förstå det. 432 00:44:43,280 --> 00:44:47,200 Gemenskapen sa: "Nej, inte värt det. Döda det. Gör det inte. Det är inte 433 00:44:47,200 --> 00:44:55,440 att gå till jobbet." Detta inkluderade några mycket anmärkningsvärda individer i gemenskapen. 434 00:45:03,680 --> 00:45:09,280 Så välkomna vår nästa talare. 435 00:45:09,280 --> 00:45:14,400 Hej, mitt namn är Armin. Du kanske är bekant med några av Python-biblioteken som jag skrev och 436 00:45:14,400 --> 00:45:19,520 du kanske till och med kan använda några av dem. Övergången från Python 2 till Python 3 övergången. Inledningsvis, 437 00:45:19,520 --> 00:45:24,000 det skedde mycket gradvis under många år. Det fanns fanns den version som alla använde och det fanns 438 00:45:24,000 --> 00:45:27,920 en slags version på sidan som byggdes som ingen använde. Folk ville inte lägga in 439 00:45:27,920 --> 00:45:37,760 för att deras kod fungerade, du vet, varför skriva om den. Det är väldigt svårt att blanda Python 2 och 3. 440 00:45:37,760 --> 00:45:41,760 Det är en huvudvärk. Så jag rörde mig bara inte och mycket 441 00:45:41,760 --> 00:45:46,400 av människor rörde sig inte. Det kändes som att det finns en sannolikhet att det inte kommer att gå någonstans. 442 00:45:46,400 --> 00:45:53,360 Det kändes mycket mer som ett beslut uppifrån och ner än någon av de tidigare sakerna. Och det där uppifrån-och-ned 443 00:45:53,360 --> 00:46:00,800 beslutet, jag tror att för vissa människor kändes det som om det var inte inkluderande av de verkliga smärtorna hos människor som 444 00:46:00,800 --> 00:46:08,800 hade en lång historia av användningsområden. Jag tror att jag allvarligt underskattade hur framgångsrikt Python redan var. 445 00:46:08,800 --> 00:46:16,720 Hur många människor hade skrivit så mycket kod i Python 2 att det skulle vara svårt för dem att lära sig 446 00:46:16,720 --> 00:46:23,120 liksom anstränga sig för att översätta till Python 3. Jag trodde att det mest kontroversiella överlägset 447 00:46:23,120 --> 00:46:28,160 var att vi ville ändra sättet som Unicode hanterades. Ett sätt att säga dessa saker är 448 00:46:28,160 --> 00:46:32,800 strängar och de kan konsumeras av människor. De är ord som människor vill läsa och skriva och 449 00:46:32,800 --> 00:46:37,360 dessa saker är bytes. Det här är saker som datorer vill läsa och skriva. 450 00:46:39,360 --> 00:46:46,080 Vi gjorde i princip alla strängar Unicode och vi tvingade att använda ett nytt prefix "b" för bytes. Och detta var 451 00:46:46,080 --> 00:46:50,640 otroligt störande. Jag höll på att implementera ett WSGI-bibliotek vid den tiden och en av de 452 00:46:50,640 --> 00:46:54,800 saker som du gör när du implementerar WSGI, är att du måste analysera HTTP-data. Man måste 453 00:46:54,800 --> 00:46:59,680 för att analysera cookie-data. Och där fanns det alltid en blandning av bytes och Unicode. Och 454 00:46:59,680 --> 00:47:04,400 det var mycket lätt att arbeta med på Python 2. Och det var otroligt irriterande att arbeta med Python 3, 455 00:47:04,400 --> 00:47:10,320 åtminstone till en början. Det fanns verkligen inte ett sätt att konvertera din Python 2-kod till 456 00:47:10,320 --> 00:47:14,880 Python 3. Verktygen fanns inte. I började skriva blogginlägg om det. 457 00:47:14,880 --> 00:47:31,600 Varför jag tror att på det sätt som Python 3 fungerar just nu, kan jag bara inte se flytten. 458 00:47:31,600 --> 00:47:37,280 Han var en uppskattad medlem i gemenskapen. Och vid den tiden var jag faktiskt ganska förvånad 459 00:47:37,280 --> 00:47:45,040 som han så brutalt attackerade Python 3. Jag var förmodligen ännu mer negativ till det 460 00:47:45,040 --> 00:47:50,080 än lämpligt. Men Python hade en så bra och jag lade ner så mycket energi på det. Jag var 461 00:47:50,080 --> 00:47:54,160 en del av som att bygga ut webbramverk och alla de här biblioteken. Jag kände mig som..: 462 00:47:54,160 --> 00:47:59,200 varför förstör vi allt det här med en flytt som inte ens hade så många fördelar. 463 00:47:59,200 --> 00:48:06,560 Jag hade inte förstått hur många som redan hade redan hade enorma kodbaser eller var på väg att 464 00:48:06,560 --> 00:48:13,760 till att bygga upp enorma kodbaser. Återbetalningen för det var att jag var tvungen att initiera projektet 465 00:48:13,760 --> 00:48:22,640 på Dropbox. Vi hade en ganska lång väg att gå för att migrera många miljoner rader Python 2-kod. 5 miljoner 466 00:48:22,640 --> 00:48:28,640 rader kod enbart i servern och ytterligare en miljoner för klienten. Det är en mycket stor 467 00:48:28,640 --> 00:48:48,400 hög med kod att transformera. Och så var vi tvungna att uppfinna sätt att göra det i småbitar. 468 00:48:55,080 --> 00:48:56,080 [Skratt] 469 00:48:56,080 --> 00:49:01,280 Ett roligt klistermärke som jag hittade i min ficka. Det finns ett byggt verktyg som heter Bazel. 470 00:49:01,280 --> 00:49:07,040 Det är en slags frusen version av Python 2. Så här säger klistermärket 471 00:49:07,040 --> 00:49:12,880 efter omskolning folkets fiende Python fördömde sin borgarklass, 472 00:49:12,880 --> 00:49:18,160 tog avstånd från formalistiska begrepp som Turing ofullständighet och började ett nytt liv som 473 00:49:18,160 --> 00:49:26,000 medborgare Starlark. Detta är särskilt ett exempel på Benjamin Petersons humor. 474 00:49:27,280 --> 00:49:33,760 Jag hade turen eller olyckan beroende på hur du ser det att vara Python 2.7 release manager 475 00:49:33,760 --> 00:49:41,920 under ett helt årtionde. Vi var tvungna att justera våra planer för Python 3 och för Python 2 så att det fanns 476 00:49:41,920 --> 00:49:48,720 en längre serie av utgåvor där det fanns både nya Python 2-versioner och nya Python 3-versioner. 477 00:49:48,720 --> 00:49:53,680 Det som slutade hända var att gemenskapen var som att upprätthålla 2 och 3 och det skapade mycket 478 00:49:53,680 --> 00:49:59,120 av börda. Och så hände detta hela tiden under tillväxten av NumPy. Vi fick det att fungera för Python 479 00:49:59,120 --> 00:50:11,200 2 och sedan tror jag Python 3.1 tror jag eller 3.2, vi fick det också att fungera där men såg ingen adoption. 480 00:50:11,200 --> 00:50:17,600 Vi visste att det skulle ta lång tid. Vi visste att det skulle bli smärtsamt, men 481 00:50:17,600 --> 00:50:22,640 det finns ljus i slutet av tunneln. Gemenskapen gemenskapen bidrog med saker som lib2to3 och 482 00:50:22,640 --> 00:50:29,360 andra migreringsverktyg kom ut. Benjamin Peterson skrev Six som verkligen hjälpte den övergången. De 483 00:50:29,360 --> 00:50:34,960 språket i sig blev lite mer bakåtkompatibelt kompatibelt. Jag förespråkade så småningom att ta med 484 00:50:34,960 --> 00:50:39,360 tillbaka "u"-prefixet på strängarna och det gjorde det faktiskt lättare att skriva enhetlig kod 485 00:50:39,360 --> 00:50:43,120 baser som riktar sig till både Python 2 och Python 3. Det fanns en tidpunkt då vi gjorde 486 00:50:43,120 --> 00:50:53,360 en mycket stark förklaring, det kommer aldrig att finnas en Python 2.8 och Python 3 är framtiden. 487 00:50:53,360 --> 00:51:00,640 Python 3 är bara ett bättre språk och det blir bättre med tiden. Python 2 på 488 00:51:00,640 --> 00:51:06,960 å andra sidan är ett fint språk och det kommer att förbli exakt vad det är. För en lång tid framöver, 489 00:51:06,960 --> 00:51:11,360 det fanns en hel del mätningar av hur mycket Python 2-användning finns, hur mycket Python 3 490 00:51:11,360 --> 00:51:16,080 användning finns där. Jag tror att det var när Python var i Portland, var ungefär när vi började se som 491 00:51:16,080 --> 00:51:22,720 50/50. När 3.4 kom ut, lade den faktiskt till några funktioner som var intressanta för folk som, oh, 492 00:51:22,720 --> 00:51:30,320 Jag vill ha den förmågan. Så för mig var Python 3.4 verkligen Python 3.0. Och sedan 3.5 var en ännu större 493 00:51:30,320 --> 00:51:36,560 milstolpe. Det var den som fick utbredd användning av antagande av Python 3. Och när Python 3.5 494 00:51:36,560 --> 00:51:40,880 kom ut, då var det klart att Python 3 skulle fungera fungera. Och sedan började företag komma 495 00:51:40,880 --> 00:51:48,640 ut och hålla föredrag som Instagrams föredrag, som Som jag tror också är i Portland, var en stor grej. 496 00:51:48,640 --> 00:51:54,960 Ja, du hörde det rätt. Instagram har varit körts helt på Python 3 i några månader. 497 00:51:54,960 --> 00:52:00,000 Hela processen tog jag skulle säga ungefär 9 till 10 månader. Och jag tror att Instagram var den största 498 00:52:00,000 --> 00:52:06,960 för Python vid den tiden. Hon gav en mycket bra, mycket grundlig föreläsning som förklarade 499 00:52:06,960 --> 00:52:12,080 varför de gjorde det. Två huvudsakliga saker: typning och asyncio. Hur de gjorde det. Vi rensade ut alla 500 00:52:12,080 --> 00:52:17,200 de bibliotek som inte klarar migreringen från från Python 2 till 3. Hur du bör göra det. Enhet 501 00:52:17,200 --> 00:52:22,880 test. Vad de hade lärt sig under processens gång. Vi hade faktiskt några bra prestandavinster också, 502 00:52:22,880 --> 00:52:30,560 efter vår migration. Det kändes som en upprättelse att det i alla fall fanns stora företag som 503 00:52:30,560 --> 00:52:36,560 tog sig tid att göra det rätt och att konvertera all sin kod till sin kod till Python 3 och kunde göra det på ett 504 00:52:36,560 --> 00:52:41,840 framgångsrikt. Den blev definitivt väl mottagen. Vi fick många människor som sa: vi vill verkligen 505 00:52:41,840 --> 00:52:47,920 att migrera också, men vi fick inte den den typ av stöd som mitt team eller mitt företag 506 00:52:47,920 --> 00:52:52,800 som ger oss. Och nu kan jag ta med mig detta tillbaka till min ledning. Och det gav verkligen folk 507 00:52:52,800 --> 00:52:59,760 förtroendet för att migrera till Python 3. Det blev som en titt, Instagram kan göra det. Varför gör inte du 508 00:52:59,760 --> 00:53:12,000 göra det? Instagram får fördelar, nya funktioner, snabbare kod. Varför vill inte du också ha den fördelen? 509 00:53:12,000 --> 00:53:18,160 [Musik] 510 00:53:18,160 --> 00:53:23,920 Projekt genomgår sådana här saker. Och Python lärde sig mycket av det och det gjorde faktiskt 511 00:53:23,920 --> 00:53:29,200 så småningom sluta med Python 3 som är i en ganska bra plats igen att det var säkert att använda. Och säker 512 00:53:29,200 --> 00:53:34,400 att använda låter konstigt men som där jag kände att jag faktiskt kan starta nya projekt på Python 3 nu 513 00:53:34,400 --> 00:53:40,000 eftersom vi är tillbaka till en stabil situation där du är ungefär lika produktiv som jag kände att jag var 514 00:53:40,000 --> 00:53:44,480 med Python 2. Hej Anna, trevligt att träffa dig. I gillade verkligen ditt föredrag. Men det var i princip 515 00:53:44,480 --> 00:53:50,800 tid som läkte den. När Python 2.7 förklarades att det inte skulle finnas några fler säkerhetsfixar, 516 00:53:50,800 --> 00:53:56,400 blev det en säkerhetsfråga. Det var typ av den sista knuffen. Människor som donerade sina 517 00:53:56,400 --> 00:54:01,760 arbetet med att göra denna migration i den bredare Python världen och gemenskapen fick till slut världen 518 00:54:01,760 --> 00:54:06,240 som körs på Python 3, men som jag sa som det var en tio år lång process. Och jag tror inte 519 00:54:06,240 --> 00:54:11,440 någon förutsåg hur mycket arbete det skulle vara att gå över till Python 3. Jag tror att Python förmodligen är 520 00:54:11,440 --> 00:54:19,120 för stor för att någonsin gå igenom en övergång som den idag. Gemenskapen var kanske lite för stort, 521 00:54:19,120 --> 00:54:24,880 men inte för stor. Jag får till och med fortfarande arga meddelanden ibland från människor som är som, 522 00:54:24,880 --> 00:54:31,840 "Min kod behöver Python 2.7. Du måste tillhandahålla tillhandahålla det." Och jag säger: "Nej." I 523 00:54:31,840 --> 00:54:37,840 aldrig vacklat i mitt engagemang för Python 3. Det var en lärdom för säker. Under en lång tid, 524 00:54:37,840 --> 00:54:43,920 Jag skämtade regelbundet om att det skulle bli en Python 4, men övergången skulle hanteras mycket bättre än 525 00:54:43,920 --> 00:54:50,640 övergången till Python 3. Jag kände att jag var skyldig det till gemenskapen. Och nu har mantrat förändrats 526 00:54:50,640 --> 00:54:56,240 att det aldrig kommer att finnas ens en Python 4. För att vara ärlig, jag vet inte hur många människor i Python 527 00:54:56,240 --> 00:55:04,240 vet inte ens om hela övergången eftersom allt slutade 2020. Nu har vi åtminstone lagt det bakom oss. 528 00:55:17,000 --> 00:55:18,000 [Musik] 529 00:55:18,000 --> 00:55:28,240 Okej, så nu går vi in i garderoben. Så där är frisbeen. Det här är den mest unika merch jag har 530 00:55:28,240 --> 00:55:35,600 någonsin sett relaterat till Python. Nu, här är en betydelsefull t-shirt. Det står, "Python är 531 00:55:35,600 --> 00:55:45,600 för flickor." Jag fick detta anonymt i posten på Google. Och än i dag, 532 00:55:45,600 --> 00:55:50,720 Jag vet inte exakt vad avsikten med avsändaren hade. De avslöjade aldrig sig själva, 533 00:55:50,720 --> 00:55:55,760 åtminstone inte för mig. Och jag vet inte om det fanns en avsikt även .. Men jag typ.. 534 00:55:55,760 --> 00:56:04,560 insåg vid den tidpunkten att det inte fanns väldigt många kvinnor i Python-gemenskapen 535 00:56:04,560 --> 00:56:14,400 och gemenskapen upptäckte också det och fixade det till Python-konferensen. 536 00:56:14,400 --> 00:56:20,000 Idén om att vara en plats där människor från många olika bakgrunder kan lära sig hur man 537 00:56:20,000 --> 00:56:26,240 program, dra nytta av programmering, hitta gemenskap. Det blev verkligen en snöbollsliknande adoption av 538 00:56:26,240 --> 00:56:34,560 dessa idéer över språkgränserna på den tiden. Jessica McKellar tittar på talarna på PyCon och säger, 539 00:56:34,560 --> 00:56:40,320 "Det är bara 3 procent som är kvinnor. Vad kan vi göra göra åt det här?" Hon var medarrangör till 540 00:56:40,320 --> 00:56:45,200 världens största Python-möte i Boston. Hon visste vad hon pratade om. Det är inte 541 00:56:45,200 --> 00:56:49,840 raketforskning. Det är som att fråga folk om de är intresserade av att tala och vi bara.. 542 00:56:49,840 --> 00:57:01,520 som om lite stöd ledde till en enorm förändring i volymen och demografin för de samtal som hölls 543 00:57:01,520 --> 00:57:08,240 inlämnad. Och sedan 3 år senare är 35% of talarna är kvinnor. Jag glömmer vad siffran 544 00:57:08,240 --> 00:57:15,120 men jag tror att det var nästan jämnt med manliga talare. PyCon... Jag hade en gammal tweet om det här, 545 00:57:15,120 --> 00:57:19,920 så jag tog fram det här. Det står: "Hej från din PyCon mångfaldsordförande." Så, procentandelen av 546 00:57:19,920 --> 00:57:31,760 PyCon-föreläsningar av kvinnor: 2011 var 1%, 2012 var det 7%, 2013, 15%, 2014 och 2015, 33%. Och under 2016, 547 00:57:31,760 --> 00:57:38,560 40%. Problem har lösningar. Det var en mycket inspirerande historia för mig också. Något som var 548 00:57:38,560 --> 00:57:45,280 mindre inspirerande för mig var att det på språktoppmötet toppmötet inte fanns en enda kvinna i rummet, 549 00:57:45,280 --> 00:57:54,560 och jag tror inte att vi har en enda kvinnlig till kärnan i Python. Det fanns aldrig 550 00:57:54,560 --> 00:57:59,760 illvilliga avsikter, men tyvärr gick vi i fällan fällan att inte göra tillräckligt med mångfald 551 00:57:59,760 --> 00:58:04,160 för att försöka få fler människor att komma komma in. För att vara ärlig var det mycket 552 00:58:04,160 --> 00:58:12,480 vita män. Så Guido ville ändra på det. Jag vill ha minst två kvinnliga Python-kärnutvecklare 553 00:58:12,480 --> 00:58:18,240 under nästa år och jag kommer att försöka träna dem själv om det är vad som krävs. Så 554 00:58:18,240 --> 00:58:30,440 kom och prata med mig. Jag tror att en av de första som svarade på den uppmaningen var Mariatta. 555 00:58:30,440 --> 00:58:41,040 [Musik] Även om jag alltid har varit passionerad för teknik och programmering, 556 00:58:41,040 --> 00:58:49,840 Jag kände också att det inte var en välkomnande miljö för kvinnor. Mina skolkamrater som läste datavetenskap 557 00:58:49,840 --> 00:58:56,720 är mestadels män. De flesta av professorerna var män och på jobbet var de flesta av mina arbetskamrater män och jag 558 00:58:56,720 --> 00:59:04,720 hade inga exempel eller förebilder kvinnor som var framgångsrika i teknikbranschen. 559 00:59:06,960 --> 00:59:12,560 En av mina kollegor gick på PyCon. Han såg att på den konferensen finns det 560 00:59:12,560 --> 00:59:32,960 en grupp som heter PyLadies och Jag kände mig som... Jag vill träffa dem. 561 00:59:32,960 --> 00:59:33,120 [Musik] 562 00:59:33,120 --> 00:59:40,080 Så 2015, det var då jag bestämde mig för att jag att jag ville åka till PyCon. På den här konferensen, 563 00:59:40,080 --> 00:59:48,240 Jag fick se många kvinnor tala och presenterade. På min förra teknikkonferens, 564 00:59:48,240 --> 00:59:55,680 alla talare var män, alla huvudtalare var män. Så det här var verkligen annorlunda. 565 00:59:55,680 --> 01:00:00,320 En av huvudtalarna på samma konferens var konferens var Guido van Rossum. Hej 566 01:00:00,320 --> 01:00:06,640 ...allihop. Trevligt att se er alla. Jag vill träffa och se skaparen av Python-programmeringen 567 01:00:06,640 --> 01:00:10,880 språk. "Och jag kommer att försöka utbilda dem själv om det är vad som krävs". Jag hörde 568 01:00:10,880 --> 01:00:16,880 detta tal. Men vid den tiden tyckte jag trodde jag inte att det var något 569 01:00:16,880 --> 01:00:22,240 Jag skulle kunna göra det. Jag bidrog inte ens till python-gemenskapen. Jag bidrog inte 570 01:00:22,240 --> 01:00:30,320 till öppen källkod överhuvudtaget. Jag tänkte bara Jag är säker på att de kommer att hitta kvinnor nästa år. 571 01:00:35,200 --> 01:00:41,920 Året efter åkte jag tillbaka till PyCon US och Guido van Rossum höll ytterligare en keynote. Vi har fortfarande inte 572 01:00:41,920 --> 01:00:47,440 har två kvinnliga kärnutvecklare. Jag tror att vid då var det något som verkligen klickade i mig, 573 01:00:47,440 --> 01:00:52,640 att jag insåg att det finns något inom mig som säger: "Om ingen gör det, 574 01:00:52,640 --> 01:00:59,680 Jag ska göra det. Jag skrev till Guido van Rossum och bad honom om hjälp. 575 01:01:00,320 --> 01:01:07,920 På något sätt kände jag mig riktigt rädd. Jag kände bara inte känna att jag förtjänade mentorskap från Guido 576 01:01:07,920 --> 01:01:15,440 van Rossum. Så jag tvekade verkligen att skicka detta mail till honom. Men i slutändan insåg jag att jag 577 01:01:15,440 --> 01:01:27,280 vill prova. Jag kände att det här var en stor möjlighet för mig. Jag tryckte på skicka-knappen. 578 01:01:27,280 --> 01:01:33,840 Jag fick ett svar. Han var mycket vänlig. Han började dela resurser om, du vet, hur man får 579 01:01:33,840 --> 01:01:40,320 började bidra till Python. Han erbjöd sig att göra videochattar. Det har varit till stor hjälp att ha 580 01:01:40,320 --> 01:01:47,200 hans moraliska stöd. Vi hade ett ganska djupt mentorskapsrelation under några år. Mariatta 581 01:01:47,200 --> 01:01:52,480 lärde mig processen av Guido och fortsatte att bidra bidra mer och mer mycket kring verktyg, 582 01:01:52,480 --> 01:01:57,840 som om hon verkligen hittat sin nisch när det gäller att försöka att göra vår utvecklingsprocess enklare. 583 01:01:58,480 --> 01:02:05,840 Det var läskigt i början, jag kände mig inte bekväm med att dela mina frågor offentligt. I 584 01:02:05,840 --> 01:02:11,280 ville inte att folk skulle veta att jag inte vet hur man gör vissa saker, du vet, 585 01:02:11,280 --> 01:02:18,880 som om jag inte ville att folk skulle se att jag faktiskt inte är så bra. Men det är så här det fungerar i öppna 586 01:02:18,880 --> 01:02:27,920 källa. Och gemenskapen har alltid varit snällt och hjälpt mig med mina frågor utan att säga 587 01:02:27,920 --> 01:02:41,200 ...att du är dum. Jag kände aldrig att jag blev blev bedömd. Jag tror att det börjar med Guido. 588 01:02:41,200 --> 01:02:48,160 Det faktum att Guido var mycket aktiv i att få in fler röster till Python gjorde absolut att Python 589 01:02:48,160 --> 01:02:53,920 bättre och starkare. Bara sättet som hela gemenskapen fungerar och vad vi står för, 590 01:02:53,920 --> 01:03:06,000 tack vare Guidos ledarskap, är där jag vill vara vara. Och jag tror att det är sant för många människor. 591 01:03:10,640 --> 01:03:15,600 Ungefär sex, sju månader efter att jag började ta kontakt med Guido, 592 01:03:15,600 --> 01:03:21,920 Jag blev rekommenderad att bli Python kärnutvecklare. Det var egentligen inte förrän 593 01:03:21,920 --> 01:03:31,840 4 månader sedan att för första gången någonsin. Det finns en kvinna... 594 01:03:31,840 --> 01:03:38,640 Det finns en kvinna som blev Python Core-utvecklare och förtjänade det commit-privilegiet. Den första kvinnan 595 01:03:38,640 --> 01:03:43,920 någonsin att gå med i vårt team och har fortsatt att vara och deltagit och försökt hjälpa oss och 596 01:03:43,920 --> 01:03:52,320 alltid en mycket bra förespråkare för att försöka förbättra vår mångfald. Nu när jag har sett kameran, 597 01:03:52,320 --> 01:03:59,840 Jag kan inte göra det. Mitt liv förändrades verkligen efter det. Många möjligheter öppnade sig bara 598 01:03:59,840 --> 01:04:10,320 eftersom jag är en Python Core-utvecklare. Hej, hur mår hur mår du? [Mariatta fortsatte med att ge sin egen uppsättning 599 01:04:10,320 --> 01:04:19,760 talar om hur viktigt det är med mentorskap. När man inte har förebilder som man kan relatera till, 600 01:04:19,760 --> 01:04:28,720 börjar man tro att man inte kan göra det. Tack dig. Hej, allihopa. Uh mitt namn är Mariatta. Jag är.. 601 01:04:28,720 --> 01:04:37,200 en PyLady. Jag driver PyLadies Vancouver. Jag hjälper också hjälpa till med PyLadies con. 10 år sedan, 602 01:04:37,200 --> 01:04:41,840 Jag var också i det här rummet för Pyladies-lunchen på PyCon US 2015. 603 01:04:41,840 --> 01:04:49,120 Det var en livsförändrande händelse för mig. Det var vid den händelsen som jag kände för första gången i 604 01:04:49,120 --> 01:04:58,880 mitt liv som utvecklare kände jag att jag hörde hemma inom tech eftersom jag ser 100 kvinnor i rummet med mig. 605 01:04:58,880 --> 01:05:09,040 Jag vill bara att andra kvinnor ska ha förebilder. Jag hoppas att jag kan hjälpa till att inspirera och hjälpa dem. 606 01:05:09,040 --> 01:05:15,360 Dessa möjligheter tillhör dig också. Du är anledningen till att jag gör det här, för jag vet att det finns 607 01:05:15,360 --> 01:05:23,600 fortfarande mycket att göra och jag vet att vi tillsammans kan hjälpa varandra och stödja varandra. Okej.., 608 01:05:23,600 --> 01:05:33,760 Jag tror att det var allt. Tack så mycket allihopa. [Jag har varit så genomgående imponerad 609 01:05:33,760 --> 01:05:41,760 av Python-gruppens förmåga att ha en respektfull och respektfull och verklig reflektion och 610 01:05:41,760 --> 01:05:51,440 dialog om hur man ska förvalta sig själv och hur man ska föra den framåt på ett sätt som jag tycker är så inspirerande 611 01:05:51,440 --> 01:05:56,480 och en vision om vad som är möjligt i andra gemenskaper. Och jag menar det verkligen uppriktigt. 612 01:06:06,720 --> 01:06:13,680 Det fanns ett ständigt växande antal vetenskapliga discipliner vetenskapliga discipliner där all kod var 613 01:06:13,680 --> 01:06:21,280 skrivet i Python eller mycket av det var prototypat i Python åtminstone. Och sedan var nästa steg 614 01:06:21,280 --> 01:06:28,480 maskininlärningspaket som började med TensorFlow och senare följdes av PyTorch. 615 01:06:28,480 --> 01:06:35,120 Under en lång tid sågs Python som ett slags ett skriptspråk som du bara skulle göra 616 01:06:35,120 --> 01:06:41,280 små saker som du behöver automatisera och inte produktionsklar kod och så det gavs inte en 617 01:06:41,280 --> 01:06:48,400 massor av uppmärksamhet. Och nu har AI/ML liksom förändrat saker där det nu är en affärsdrivare. 618 01:06:48,400 --> 01:06:57,440 Den vänder sig till människor som inte är professionella programmerare men som behöver programvara för att utföra en uppgift. 619 01:06:57,440 --> 01:07:03,600 Det finns några andra språk som Rm som du kan göra några intressanta saker i men Python är verkligen det 620 01:07:03,600 --> 01:07:09,920 för en AI/ML nuförtiden. Python har förmodligen som århundraden av ingenjörstid som har 621 01:07:09,920 --> 01:07:15,040 gått in i koden i ekosystemet specifikt på dessa ämnen. Så om du använder Python, 622 01:07:15,040 --> 01:07:22,160 du kan omedelbart utnyttja dessa bibliotek. Meta har PyTorch, som har ett fantastiskt Python API 623 01:07:22,160 --> 01:07:28,560 och front-end som folk kan interagera med. Det finns också SciPy, NumPy, Numba, Pandas. Det finns en 624 01:07:28,560 --> 01:07:35,200 en hel svit med riktigt omfattande verktyg. Att försöka bygga ett språk och ett språkekosystem som 625 01:07:35,200 --> 01:07:39,840 är anpassningsbar till allt detta är inte trivialt. Det krävde faktiskt verklig design, verklig eftertanke, 626 01:07:39,840 --> 01:07:46,240 och kollektiv innovation i det verkliga ekosystemet under årtionden. Baksidan av dessa verktyg är 627 01:07:46,240 --> 01:07:54,800 vanligtvis C eller Fortran eller något annat modersmål som är mycket snabbare, men som skulle vara svårt för 628 01:07:54,800 --> 01:08:03,760 någon med AI-bakgrund att programmera in. Och det fortsätter att användas för allt detta av alla 629 01:08:03,760 --> 01:08:07,920 AI-forskare som utvecklar modellerna, och människor som tränar modellerna, människor 630 01:08:07,920 --> 01:08:17,320 med hjälp av modellerna. Och det ger ännu en steg av tillväxt till Python-gemenskapen. 631 01:08:17,320 --> 01:08:24,400 [Musik] Python är ett fantastiskt språk även om du inte är en vetenskapsman. Jag har bara 632 01:08:24,400 --> 01:08:29,600 tror inte att det skulle ha nått upp till nivån dramatiska användning utan vetenskapen först 633 01:08:29,600 --> 01:08:33,760 datavetenskap och maskininlärning. Vi har hade en enorm inverkan på världen. Du vet.., 634 01:08:33,760 --> 01:08:39,120 Jag tror att ett bevis på Pythons framtid är, om du ber någon av LLM:erna att göra kod 635 01:08:39,120 --> 01:08:44,640 generation idag. Om det är front-end, kommer det att kommer det att vara JavaScript. Om det är back-end dataanalys, 636 01:08:44,640 --> 01:08:49,440 kommer det att vara Python. Det är framtiden. Och Python är en del 637 01:08:49,440 --> 01:08:58,560 av den framtiden. Tur för mig att jag att jag valde det språket och inte ett annat. 638 01:08:58,560 --> 01:09:05,680 Hej, Jacob. Åh, hej, god morgon. Hoppas att du inte har något något emot att bli filmad. Ja, det gör jag. Ah, okej. Ida följer 639 01:09:05,680 --> 01:09:11,840 ...mig. Okej, då. Ja, hon filmar lite b-roll för dokumentären, tror jag. Ah, trevligt. Jag först 640 01:09:11,840 --> 01:09:21,760 använde Python 1997 eller något liknande. Wow, det är verkligen tidigt. Så, det har 641 01:09:21,760 --> 01:09:26,960 30 bildrutor med animering. Åh, wow. Jag sa till alla att han skulle hata att få DSA, men det gjorde de 642 01:09:26,960 --> 01:09:32,480 det i alla fall. Ja, det är jag. Ursäkta, DSA? Distinguished Service Award. Jag skrev om honom i årsrapporten 643 01:09:32,480 --> 01:09:37,920 som en ledare i Python-gemenskapen en gång och han fick mig att ta ut den. Ja, vi kan se det. Men.. 644 01:09:37,920 --> 01:09:43,920 ändå satt han med i styrgruppen i fem år fem år. Uhhuh. Och han var en ledare. Jag fick en 645 01:09:43,920 --> 01:09:49,520 jobb från en Python-konferens 2017. Jag växte upp upp i Indien. Jag flyttade till Tyskland och förändrade mitt liv. 646 01:09:49,520 --> 01:09:54,560 Så jag tror att Python förändrade många saker för mig och jag ville bara säga tack till dig för att du 647 01:09:54,560 --> 01:10:00,560 som gör det här språket. Det är väldigt gulligt. Ja, det är det. Gör det du något emot om jag tar en bild med dig eller det 648 01:10:00,560 --> 01:10:06,640 gillar du det inte? Jag är så ledsen. Jag tycker verkligen inte gillar det och särskilt inte på upptagna platser. Okej, då, 649 01:10:06,640 --> 01:10:13,200 inga problem. Jag fattar. Jag fattar. Okej. Hitta mig i en mörk gränd och jag ska göra det. Okej. Jag fattar. Okej. Jag fattar. 650 01:10:14,480 --> 01:10:20,800 Jag har alltid sett mig själv som basisten i Python, vilket är bra. Du vet.., 651 01:10:20,800 --> 01:10:26,320 du kan göra mycket, du kan ha roligt, och strålkastarljuset är inte på dig. Och jag älskar det. Jag kan inte.. 652 01:10:26,320 --> 01:10:32,560 tänk att ha den sortens strålkastarljus på sig, i så många år. Jag hörde en historia från 653 01:10:32,560 --> 01:10:38,480 en Apple VP för teknik, att Steve Jobs hade nekat dem att anställa Guido för att han sa, 654 01:10:38,480 --> 01:10:48,960 han har sina egna anhängare och vi vill inte vill inte ha den typen av distraktion. 655 01:10:48,960 --> 01:10:54,320 Python har alltid varit ett språk som förändrats. Vi har aldrig varit ett av de språk som säger 656 01:10:54,320 --> 01:10:59,840 om du skriver kod mot den här versionen av Python, kommer den att köras för alltid med alla nya versioner av 657 01:10:59,840 --> 01:11:08,800 språk. Vi har helt enkelt aldrig varit de människor. En PEP är en akronym för Python Enhancement 658 01:11:08,800 --> 01:11:14,480 Förslag. Det är ett dokument som skrivs av någon som vill göra en betydande 659 01:11:14,480 --> 01:11:19,440 byta till Python. I grund och botten försöker du övertyga folk om att det här är en bra idé. Det 660 01:11:19,440 --> 01:11:24,960 skulle skickas för diskussion till en sändlista lista och så småningom Guido som BDFL, 661 01:11:24,960 --> 01:11:31,760 den välvilliga diktatorn för livet, skulle bestämma om din växel skulle gå in eller inte. Men 662 01:11:31,760 --> 01:11:40,640 har folk alltid oroat sig för att nästa förändring kommer att vara den som förändrar känslan av 663 01:11:40,640 --> 01:11:47,360 språket. Det kommer inte att passa min hjärna längre eller det eller så är det inte tillgängligt längre. Jag har faktiskt sett 664 01:11:47,360 --> 01:11:52,640 stormar folk ut ur rummen och säger: "Ni förstör det här språket." Vissa människor tar det väldigt, väldigt 665 01:11:52,640 --> 01:12:00,640 personligen och på allvar. Och Walrus-operatören var inte annorlunda. Ja så, PEP 572, jag vet inte 666 01:12:00,640 --> 01:12:04,560 som myntade begreppet valrossoperatören, men men om man vrider på huvudet ser det ut som 667 01:12:04,560 --> 01:12:13,360 en liten valross. Det var en ny funktion som föreslogs men det var också en syntaxändring. Den 668 01:12:13,360 --> 01:12:19,520 Walrus-operatören låter dig göra uppdrag, vilket betyder lägga in värden i variabler på platser som du 669 01:12:19,520 --> 01:12:26,000 tidigare inte kunnat. Det var förmodligen den mest omstridda språkförändringen, konstigt nog, eftersom 670 01:12:26,000 --> 01:12:31,120 det är typ av en mindre sak, men det var det det var så mycket passionerad känsla om huruvida det borde 671 01:12:31,120 --> 01:12:37,760 eller inte, att det skapade lite av ett av en ruckus. När jag först såg Walrus-operatören, 672 01:12:37,760 --> 01:12:43,040 Jag tyckte inte om den. Det kändes lite opytoniskt för mig, men sedan började jag spela 673 01:12:43,040 --> 01:12:47,840 med den. Det fanns ett särskilt användningsfall som Jag kom på i min egen kod som jag tänkte, 674 01:12:47,840 --> 01:12:53,200 "Åh, vet du vad? Det här är faktiskt ganska coolt". Och sen tänkte jag: "Det är.. 675 01:12:53,200 --> 01:12:58,480 något som jag inte kommer att använda så ofta, men när jag behöver det, är det verkligen bra att ha. Och jag vände, 676 01:12:58,480 --> 01:13:06,640 180° och blev ett fan av det. Men det var mycket störande. [Musik] Språkfunktioner och 677 01:13:06,640 --> 01:13:13,200 särskilt syntax kan vara ett tveeggat svärd. Så en persons kortfattade, eleganta kod kan vara en annans 678 01:13:13,200 --> 01:13:21,600 personens oläsliga pussel eller en fusklös röra. Det fanns mycket starkt uttalade förutsägelser om 679 01:13:21,600 --> 01:13:27,200 hur illa det skulle vara för Python. Och sen bara för att Python var så mycket mer populärt på den tiden 680 01:13:27,200 --> 01:13:31,840 finns det så många ställen där folk pratar om Python om Python. Jag menar Twitter, du vet, på 681 01:13:31,840 --> 01:13:37,680 ...tid. Allt det här sker ju offentligt, eller hur? Och.. alla kan typ med låg ansträngning kasta sina 682 01:13:37,680 --> 01:13:44,080 in i ringen och alla kommer inte att hålla tillbaka att hålla tillbaka sig själva när de gör det. 683 01:13:45,760 --> 01:13:50,560 Jag blev mer och mer övertygad om att PEP 572 faktiskt var rätt sak att göra 684 01:13:50,560 --> 01:14:04,160 att göra. Jag var BDFL och jag accepterade pEP. Och nästa morgon vaknade jag upp 685 01:14:04,160 --> 01:14:09,360 och jag kände mig miserabel 686 01:14:09,360 --> 01:14:12,640 på grund av alla attacker som hade hänt tidigare. 687 01:14:14,080 --> 01:14:23,680 Jag satte mig vid datorn och skrev ett kort mejl, och tryckte på skicka där jag meddelade att jag sa upp mig 688 01:14:23,680 --> 01:14:33,040 på BDFL. Och det hade en otrolig inverkan eftersom ingen hade förväntat sig att jag skulle avgå 689 01:14:33,040 --> 01:14:40,560 och absolut inte att jag skulle sluta i raseri över den här frågan, vilket det i grund och botten var. 690 01:14:55,720 --> 01:14:56,720 [Musik] 691 01:14:56,720 --> 01:15:02,240 Överföring av makt. Nu när PEP 572 är klar, vill jag aldrig behöva 692 01:15:02,240 --> 01:15:07,760 kämpa så hårt för en PEP och upptäcka att så många människor föraktar mina beslut. 693 01:15:07,760 --> 01:15:12,880 Jag skulle vilja ta bort mig själv helt och hållet från beslutsprocessen. Jag ger i princip 694 01:15:12,880 --> 01:15:19,280 mig själv en permanent semester från att vara BDFL och ni kommer att få klara er själva. Jag är inte 695 01:15:19,280 --> 01:15:25,600 kommer att utse en efterträdare. Så vad ska ni ska göra? Skapa en demokrati, anarki, 696 01:15:25,600 --> 01:15:31,200 en diktatur, en federation? Jag kommer fortfarande att vara här, men jag försöker låta er alla räkna ut 697 01:15:31,200 --> 01:15:40,560 något ut för er själva. Jag är trött och jag behöver en mycket lång paus. Det var allt. 698 01:15:40,560 --> 01:15:47,520 Jag har inte läst det... Det var det jag tyckte var ganska välskrivet. Jag gillar att säga att han mic 699 01:15:47,520 --> 01:15:51,840 han tappade bort sig själv. Du vet, han bara.., Jag är ute. Jag är färdig. Ni får lösa det här. Så.., 700 01:15:51,840 --> 01:15:58,880 det var en total chock för mig. Jag kände mig bara så ledsen över det. I 701 01:15:58,880 --> 01:16:06,560 önskar att han skulle ha gått i pension under bättre omständigheter. Jag kände att jag behövde ta en 702 01:16:06,560 --> 01:16:13,920 jag har tagit ett steg tillbaka för att återhämta mig. Jag tror att många många människor verkligen kände för Guido, du vet, 703 01:16:13,920 --> 01:16:26,480 att han kunde pressas till den punkten kanske vi släppte ner honom för att låta vitriolen 704 01:16:26,480 --> 01:16:33,360 över den här förändringen till Python för att driva, du vet, någon som vi brydde oss om till den punkten. 705 01:16:35,600 --> 01:16:41,840 Vi upplevde alla att det var som en stor händelse tillfälle eller som en betydande förändring som 706 01:16:41,840 --> 01:16:46,560 skulle du sätta en markering i din tidslinje i historieboken i Pythons historia, eller hur? 707 01:16:46,560 --> 01:16:52,720 Eftersom det hade körts på BDFL-modellen under hela sin hela sin existens. Så det fanns en liten bit av 708 01:16:52,720 --> 01:16:57,760 osäkerhet som, kan det här fungera alls utan guido? Det är som en förälder som säger, det är 709 01:16:57,760 --> 01:17:02,560 dags för dig att växa upp och räkna ut det på egen hand på egen hand. Jag tänker inte lösa det här problemet åt dig. 710 01:17:05,280 --> 01:17:11,040 Den första punkten på dagordningen var att besluta om hur vi skulle besluta. Och det visar sig att vissa människor 711 01:17:11,040 --> 01:17:15,520 har mycket starka åsikter om röstningssystem. Programmerare älskar att bråka om röstningsmetoder. 712 01:17:15,520 --> 01:17:22,400 Jag minns att jag tänkte att det här inte kommer att fungera. Många många starka röster. Det är verkligen svårt när man 713 01:17:22,400 --> 01:17:28,880 har hundratals kärnutvecklare och tusentals människor online och miljontals människor i 714 01:17:28,880 --> 01:17:35,920 och förmodligen miljarder dollar av programvara som mjukvara som körs på Python. Du kan inte tänka 715 01:17:35,920 --> 01:17:42,320 för det blir definitivt överväldigande. Jag ska erkänna att det var stressigt. Jag var tvungen att gå 716 01:17:42,320 --> 01:17:46,720 till en öron-, näs- och halsspecialist eftersom jag faktiskt började kvävas av min egen hals 717 01:17:46,720 --> 01:17:52,560 från stressen. Det var inte roligt, för om vi inte kunde bestämma oss för hur vi skulle bestämma oss, 718 01:17:52,560 --> 01:17:59,120 projektet var klart. Vi närmade oss det verkligen som de nördiga ingenjörer vi är. I Python klassiska 719 01:17:59,120 --> 01:18:03,600 mode, vi skrev en massa peps. Vi ville inte skynda på det eftersom vi visste att vi skulle ha 720 01:18:03,600 --> 01:18:10,480 att leva med detta potentiellt för alltid. Men vi insåg också insåg också att världen tittade på och inte gillade 721 01:18:10,480 --> 01:18:14,160 tanken på att inte veta om det här språket skulle kommer att finnas kvar om ett år eller inte, eftersom vi 722 01:18:14,160 --> 01:18:20,000 kunde inte sluta bråka med varandra om hur vi att driva oss själva. Folk sponsrade olika typer av 723 01:18:20,000 --> 01:18:23,600 av modeller. Jag tror att det fanns en som var som, låt oss välja en annan BDFL eftersom det är vad vi 724 01:18:23,600 --> 01:18:28,800 känna sig bekväm med. Och sedan fanns det olika olika typer av kommittéer och råd och vi slutade 725 01:18:28,800 --> 01:18:34,480 och sätter sig i den fem personer starka styrkommittén. God morgon PyCon! Tack så mycket för att ni kom 726 01:18:34,480 --> 01:18:40,560 oss. Så, välkomna till vår panel med Python styrande råd. För det är fem personer, 727 01:18:40,560 --> 01:18:45,680 har du inte samma problem med all stress och ansvar stress och ansvar för att göra dessa 728 01:18:45,680 --> 01:18:51,520 beslut som faller på en enda person. Jag kände faktiskt kände att det var vettigt för mig att vara med på den 729 01:18:51,520 --> 01:18:56,880 första styrgruppen med tanke på att det fanns inte längre kände sig så utbränd eller attackerad, 730 01:18:56,880 --> 01:19:02,160 för att ge en viss kontinuitet. "Du vet hur det går när ditt barn börjar på college. 731 01:19:02,160 --> 01:19:07,840 Några av er kanske har erfarenhet av det inte längre direkt involverad i deras liv, kanske, 732 01:19:07,840 --> 01:19:14,960 men man slutar aldrig att oroa sig. Och det är så Jag känner om Python just nu. Och det är 733 01:19:14,960 --> 01:19:24,880 varför jag [Applåder] varför jag nominerade mig själv till styrkommittén och här är jag". 734 01:19:25,920 --> 01:19:31,520 Det var val till det andra årets styrande och till en början nominerade jag mig själv och sedan 735 01:19:31,520 --> 01:19:37,440 drog sig tillbaka eftersom det fanns tillräckligt många andra starka kandidater. De behövde inte mig och jag var glad att 736 01:19:37,440 --> 01:19:56,080 ...att släppa taget om det. [Legitimiteten som kom från ersättningen som sprang upp från 737 01:19:56,080 --> 01:20:06,080 är avgörande för att den ska accepteras. Det kom från oss, så det är accepterat av oss. Det fungerar. 738 01:20:06,080 --> 01:20:11,600 Jag tycker att det fungerar för oss nu. Det kan finnas en tid i framtiden där det inte fungerar eller delar av 739 01:20:11,600 --> 01:20:17,840 det fungerar inte. Du måste vara villig att utvecklas. Förändring är den enda universella konstanten i 740 01:20:17,840 --> 01:20:31,480 universum. Och så kommer saker och ting alltid att förändras och du måste vara redo och villig att anpassa sig till förändring. 741 01:20:31,480 --> 01:20:38,560 [Musik] 742 01:20:38,560 --> 01:20:43,760 Det började som ett hobbyprojekt. Definitivt. Jag ville nog bevisa något 743 01:20:43,760 --> 01:20:50,960 för mig själv mer än något annat. Det överträffade mina vildaste förväntningar och det fortsätter faktiskt 744 01:20:50,960 --> 01:21:00,560 att göra det. Jag hör ständigt från människor vars liv vars liv helt förändrades av Python och det 745 01:21:00,560 --> 01:21:08,960 har skapat denna otroliga gemenskap som var också en komplett typ av bonus över allt 746 01:21:08,960 --> 01:21:16,880 än vad jag hade förväntat mig. Det här gemenskapen som har en enorm konferens varje år och 747 01:21:16,880 --> 01:21:26,160 mindre konferenser i alla världsdelar tror jag utom Antarktis. Det fanns en av Python 748 01:21:26,160 --> 01:21:32,480 konferenser där det fanns några tusen personer i publiken. Jag minns att jag bara såg mig omkring 749 01:21:32,480 --> 01:21:40,960 och tänker, det här är helt otroligt. Det var då punkt då jag visste att vi hade uppnått något 750 01:21:40,960 --> 01:21:50,320 viktigt, något som gjorde skillnad i människors människors liv och i världen. Python visade sig 751 01:21:50,320 --> 01:21:57,360 att bli mycket mer framgångsrik än kanske någon av oss trodde, utom kanske Guido och hans team. Jag tror att 752 01:21:57,360 --> 01:22:02,160 trodde de alltid att det här var framtiden. Och naturligtvis är det nu en av de mest populära, 753 01:22:02,160 --> 01:22:06,800 om inte det mest populära programmeringsspråket i världen. Han tillbringade två veckor i jul, 754 01:22:06,800 --> 01:22:10,880 1989, och skrev ett programmeringsspråk för att han tyckte att det skulle vara kul. Som vem 755 01:22:10,880 --> 01:22:16,640 skulle ha föreställt sig att det skulle vara en sådan livsförändrande och även världsförändrande sak att ha 756 01:22:16,640 --> 01:22:23,520 ...gjort. Jag tycker att det har varit bra för världen. I tror att det har fått människor att känna att de kan komma in 757 01:22:23,520 --> 01:22:28,320 programmera när de aldrig trodde att de kunde. Jag tror att det gjorde programmering tillgängligt för människor. 758 01:22:28,320 --> 01:22:36,640 Det är bokstavligen en del av förskolan till och med årskurs 12 utbildning runt om i världen. Och är på Mars 759 01:22:36,640 --> 01:22:41,760 tack vare att det användes som ett skriptspråk för att bearbeta fallskärmen för rovern Perseverance 760 01:22:41,760 --> 01:22:45,440 ...landning. Som om det är svårt att tänka på något som inte har berörts av någon Python-kod 761 01:22:45,440 --> 01:22:52,000 ...någonstans. Det är helt otroligt. Det är ett viktigt språk. Det är ett populärt språk. Det är ett levande 762 01:22:52,000 --> 01:22:58,400 och relevant språk idag lika mycket som det var i det och jag tror att det kommer att vara det även i framtiden 763 01:22:58,400 --> 01:23:03,520 framtiden. Programmerare 30 år från nu kommer att vara som, "Åh ja, du vet, jag jag använder fortfarande 764 01:23:03,520 --> 01:23:09,760 Python." Precis som idag använder folk fortfarande Fortran och C och C++ och det är gamla språk som 765 01:23:09,760 --> 01:23:35,080 du vet också i det stora hela. Schema - Lisp, ett annat gammalt språk. Så ja... [Musik] 766 01:23:35,080 --> 01:23:40,400 [Musik] 767 01:23:40,400 --> 01:23:43,680 Nu fortsätter jag att tänka på konstiga skämt. Det finns ett bibliotek i 768 01:23:43,680 --> 01:23:49,920 Python kallas Pickles eftersom pickle är ett roligt ord antar jag. Dokumentationen använde 769 01:23:49,920 --> 01:23:57,520 att ha en fotnot om hur du ska föreställa sig Guido och Jim sniffa pickles.