Oral History of Guido Van Rossum Part 2

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all right it is March 29th 2018 in pants ensue and we are today with Guido van Rossum them so it's going to pick up where we left off we were talking about pythons change over time some sort of going back into that topic maybe could you describe or summarize how Python has changed over time since since the beginning to it now Wow since the beginning well the the language has expanded it has many features that I hadn't even thought of that that I wasn't aware you could do with language design to be honest in the beginning it has a much larger library it has a much larger community the philosophy of the language has also changed quite a bit I'm pretty flexible I'd sort of I like whatever users are doing with the language obviously my original idea was for Python to be sort of in-between shell scripts and C programming because those that sort of in the early 90s that was the bread and butter of my work my programming work and these days there are many other ways that Python is used where it's either an alternative to Java or go or it's a tool all by itself scientists use it to drive incredibly powerful libraries so hmm one one particular aspect that also has changed quite a bit is how the language is managed and sort of how the how changes to the language happened in the early 90s everything was basically me I think I already mentioned that I was like the mailing list administrator and I reviewed all the patches and I answered all the email questions there was also sort of it was very easy for people to get new things into the language if they had an idea and I liked the idea it was basically in and we didn't care that much about backwards compatibility because sort of the user base was small enough that if I changed my mind about some detail of the language or even some big big very visible part that was okay people would just sort of update their code write new code nowadays we have backwards compatibility we have sort of there's a high bar for proposing new features we can't break any existing code and there are there are billions of lines of Python code in the world that could possibly break if we sort of add a new feature even or change something in a very subtle way and even if all the Python code I have written in my life would never be broken by a particular change the chances are that someone else's code will break if if we were sort of changing existing behavior so they're much much more thought goes into that and it's sort of it's it's much more a community process many times changes go in I don't get involved at all it's other people you might call them lieutenants or they're just sort of the volunteers who are active as core Python the veil who have been around the longest who often make the call this is a good idea this is a bad idea and then there's a whole sort of cycle of development where sort of even even a good ideas doesn't always get accepted for any number of reasons and that sort of the but that that's a long process nowadays and that was sort of I think we introduced the idea that there was a formal process in early 2000 when we introduced the Python enhancement proposal process and so now we have peps and they're used for all sorts of things but the basic use of peps is to sort of have a way of getting changes into the language that acknowledges sort of the need to think things through and debate things and have a good motivation and a careful specification right talking about backwards compatibility you know one of the major breaks in backwards-compatible was python 3.0 why was it necessary to break compatibility in that instance versus previously well why was it necessary that I don't know that it was necessary and we we decided to to break compatibility and this this was a collective decision of this sort of the core developers at the time sort of the reasons that led us to to break compatibility he had to do with certain types of changes where we didn't have we we didn't feel there was a gradual backwards compatible way to introduce those changes and at the same time we really did not want the language to be stuck forever with certain sort of MIS designed features a unicode behavior was probably the the biggest one and the one that's that sort of would have been the hardest to to sort of change gradually or in a backwards compatible fashion how did how old does Python support concurrency or functional programming for concurrency pythons approach is mostly based on operating system threads which is not a very sort of advanced mechanism it's more sort of an easily available mechanism we introduced that I think in the early 90s we sort of myself and that small a small number of people actually around me at CWI we're learning about threading models on hardware that was available to us at the time there were sort of some workstations had multiple threading so I've built in into the operating system and looking back I think we were fairly naive and so python pythons multiple threading is in some sense fake because of the global interpreter lock the gill as its called it effectively means that you can create multiple threads and they correspond to operating system level threads which is is good because you have sort of you have all the behaviors and property properties of OS threads with one exception you cannot use multiple CPUs simultaneously and in the early 90s multiple CPUs on a single machine was like oh that was very fancy that like the workstations we actually had had a single CPU and maybe for very advanced applications some hardware vendors could sell you multi multiple CPUs and they were super expensive and they had worked hard on the operating system support for that but that was not really the focus of Python because when are you going to use multiple CPUs at least this was how we we were thinking at the time well when you have something that is incredibly computationally intensive well you're probably not going to write that code in Python in the first place because if you if your core for loop is written in Python it's just going to be slower than when you write it in C so that kind of parallelism was really not didn't seem interesting to us at the time and most of the the hardware we ever saw and that we expected to be using Python um did not have multiple CPUs but they did have multiple processes and several OS vendors I think Sun and Silicon Graphics and who knows who else companies we haven't heard of in 20 years were sort of adding multiple threading to their operating systems and we saw that there was a certain advantage even when you can't when when sort of using multiple CPUs was not the point of your program you could do multiple sort of independent IO actions you could like have one thread manage the user interface and another thread talk to the network and maybe a third thread talked to a database service and those kind of used cases for threading we thought were very useful also we were just sort of we were learning about this and somehow an easy way to learn about all sorts of things was to to write a Python extension to support that new thing because then it was much easier to play with it I remember teaching myself how sockets worked in the same way so like with so many other things in Python we didn't want to spend the time to to sort of and we probably also didn't have the technical from NASA to be honest at the time to sort of take our existing single threaded interpreter and make it truly concurrent make it so that if two threads were updating the same database data sorry dictionary which is an in-memory data structure in Python that's that sort of the results would be reasonable and you would never have a crash or a deadlock just due to that I mean obviously if one thread is changing a dictionary and the other thread is looking at it the other thread may sort of see may or may not see exactly what the first that put in may have to wait a little bit that was okay but we'd sort of so we didn't want to add concurrency locks to all pythons fundamental data structures most of which well in many many of which are are completely mutable at lists and dictionaries and a lot of things are built out of those like regular classes and instances are and modules are all built out of dictionaries so they're also fundamentally mutable so we sort of we came up with this quick hack where there was a lock that sort of was essentially protecting all pythons data structures with the exception of i/o buffers and we sort of because we had control over the actual eye operations in Python we designed a set of macros and we did some work in that area so that if you actually went out to the network and you were blocking for a receive or a send operation to complete another threat would be able to to run and just to sort of I guess to keep it interesting or to follow the most common threading model we found in other languages we also made it so that if you have had multiple threats that were all sort of just doing CPU operations the interpreter would just occasionally hop between different threads so that they would all get their share of the single CPU and this is like it's at some level the earliest UNIX kernels had a similar threading model where different pieces of kernel code sort of were had sort of independent control flows but there was only one CPU the Aeneid sort of early versions of unix didn't have multiple CPU support and I think in many cases the threading notion was not exported out of the kernel out of the kernel it was all processes which is a heavier abstraction but so we sort of did a similar thing as as sort of kernels do which is when you're waiting for i/o is a good time to let someone else do some work and then we had this added thing where we we sort of said well if if nobody gives up the CPU we'll just sort of switch occasionally for you and that that is called pre-emptive scheduling and this has this has always been controversial it's been very useful the the use case I described like one thread taking care of the UI and other thread taking care of the network or for example ten threats that are all doing network operations where the network is just sort of slow or you're going out way far on the Internet you can do a lot of useful work using pythons threading model it's no good however to just speed up a slow computation by adding CPUs which well I certainly did not predict that at some point Moore's law would sort of run out or at least we couldn't just buy computer chips that were twice as fast every few years we would suddenly hardware manufacturers were sort of giving us computer chips where there were more multiple cores and you could sort of execute multiple instructions concurrently if you wrote your software that dealt with that and that sort of I'm actually mostly glad that we we didn't jump on that bandwagon too early and for specialized cases like numerical Python numpy the libraries can take care of allowing multiple CPUs to do different work concurrently but the libraries have to be sort of aware of how pythons internals work and release the Gil and things like that oh let's let's move on to talking about users of Python so initially who were the key adopters or what organizations were the key adopters when it was gaining acceptance and so what and what key adopters helped Python gain acceptance that's tricky often I had no idea even which organizations people were working for who are contributing to Python I think I was quite surprised to find in 1994 that there were people at NIST the National Institute for Standards and Technology in Maryland who were using Python and sort of interested in in doing things with it that I had absolutely no understanding what sort of what exactly they were using it for I don't know how far that particular project went but that was that's an example of sort of research labs in a sense adopting Python or at least trying to do things in the late 90s very influential was Lawrence Livermore National Labs in Livermore here across the bay which adopted Python as the standard scripting language to derive their numerical computations and they were head of things like numpy in a sense they hosted one of the very early Python workshops I forget when it was but it must mean in like around 1996 or so another place oh yeah also now I think of who was hosting Python workshops in late 90s USGS Geological Survey there were people there again scientists who were adopting Python for to derive their numerical processing code and they were not writing numerical algorithms in Python but they were using the fact that Python was easily extensible so they would write a small amount of bridge code that sort of linked Python on one hand with their Fortran or C++ or C code on the other hand and they found that that was a very effective way to sort of let scientists experiment with their data and and sort of death development has as never stopped really that's death world has grown bigger and bigger and now we have like a lot of data science happening in Python I think in the sort of the early web days Python was also popular with startups who were developing sort of web applications actually yeah core core developer at the time named Greg Stein worked for a small startup and they were doing an e-commerce platform and he somehow convinced all his colleagues or maybe he convinced the director of engineering or whatever he convinced everyone that they should write their code in Python and using like pythons interfaces to databases interfaces to the web standard library that made all these things easy and basically they could concentrate on the functionality and they they won in his in essence a race to be first to market or at least first to beta and then they the very interesting thing happened they got acquired by Microsoft and suddenly Microsoft owned and was maintaining a huge bundle of Python code and this was in the late 90s was yahoo mail oh now you mention it yes that was also a big one I forget if that was late 90s or early 2000s but it might have been early 2000s they were definitely sort of very big Python users yeah I think thanks for reminding me of that I had totally forgotten and I don't know if it was just mail but in Jogja mail was sort of the big thing that took off at the time we've we've previously talked about how your your work with a Python community caused you to move to the US so I'd like to sort of go back to that and talk about you know your career trajectory from that point till now so starting so you moved to the u.s. in 1994 because partly because you had gotten this invitation from NIST yeah so I spent I spent two months about in Maryland as sort of a guest of NIST then I went back to CWI but they basically had a job offer in my pocket and in the first half of 95 I moved back to to the u.s. to work for CNRI that was Bob Kahn and Vint Cerf's company I think Vint was already no longer much involved with the management so it was at the time it was maybe just Bob Collins company but it was Bob and Vince sort of creation corporation for national research initiatives and they were very cleverly located at a drive away from Arlington where I think DARPA or the NSF had their headquarters and we sort of CNRI got a lot of funding through those organizations for various very interesting sometimes Internet related research and Python was supposed sort of two programmers they're actually sort of looked at Python and thought that it would be a really good tool for a project that they were sort of tasked with that was part of some research and they met me at that NIST NIST NIST also organized the workshop for in November I think 94 for sort of essentially local Python users okay the first Python workshop the first Python workshop and so these two guys at CNRI came up with the idea that Python would be a good language date they sort of they needed a language that that had a virtual machine and there were at the time there were different ways of interpreting that word and sort of an interpreter like like the JVM essentially and so Python has has a similar concept inside the interpreter and they thought that that would be a good sort of kind of technology to use in their in their research project and it turned out that that particular idea never really went anywhere bob kahn was was very proud of it and i remember going through all the motions with lawyers to for patent application but the the sort of the technical idea behind it was was never never ended up being all that useful but but python sort of grew as a result of that and start with well CNRI also started using python for other research projects so several other projects that were also funded by DARPA or NSF or some other funding source that CNRI had figured out we're also using Python to write big systems essentially and a few of those people also ended up as core Python developers so what were you specifically working on uh I think I was mostly sort of one of the programmers and architects for for the code the code that was part of this project that Bob Kahn yeah yeah so there was there was a lot of programming there was also a lot of sort of thinking through the architecture of the whole system because it was was a very networked kind of application yeah hmm it was I think it was a funny situation because as far as I know the project that was called no BOTS KN o WB o T that project had a manager who was really sort of an engineering manager they run meetings and do the hiring and firing and make sure that the reporting to upper management is okay that kind of stuff and we had a number of programmers myself and Barry and Roger and maybe one or two more actually and I don't believe that we had like researchers on the staff and I'm actually very surprised because most of the projects that were happening at CNRI there was someone in a p.i role prime what is it principal and principal investigator or something yeah and I think for a different project that we did later after the nobod funding ran out I was sort of promoted to PI but I found that it wasn't really a role I was very compatible with I think I think for no BOTS Bob Caron himself sort of acted SPI and but he sort of yeah he was running the whole organization so we didn't have all that that much sort of regular intense interaction with him although I every once in a while he sort of he tried to micromanage what we were doing um so you also wrote a DARPA funded proposal called computer programming for everybody yes yes that was sort of in in some sense that was driven by the need for funding because the noble project was not sufficiently successful that sort of follow up funding round was feasible and so we were trying to find other things that we could do with what we had learned and by then it was obvious that Python was actually a big hit it might have been a sleeper hit but it was sort of it was clear that that sort of work on Python itself was a good use of our time and we were trying to find a way to turn that in into a research project and in order to qualify for DARPA funding I think we went for DARPA funding in order to qualify you have to sort of present it as research because they won't fund a project that is basically well there are a number of existing ideas and we're going to implement that and maybe we're going to implement it slightly differently than before but sort of implementation work or like improving a programming language was rarely a fundable thing but so what we found was that Python had had interesting sort of prospects for education and I sort of I had this vision of people sort of kids learning learning Python in school which at the time looked pretty far-fetched because they weren't even that many computers in most schools but that's sort of where the computer programming for everybody idea project proposal came from I'm also pretty sure that it wasn't just me but that sort of other people in the Python community and there were like workshops every year and and sort of other times that some people got together there was some talk about that where people said oh python is such a cool language it's so simple to learn why couldn't we use that in education there are people who are currently teaching C++ or Pascal and C++ is way too complicated for all but like a very small number of brilliant high schoolers and Pascal does not really have much of a future as a technical skill so you can say well we're not teaching them programming for so that they have an employable skill but we teach them programming so that's they learn a certain way of thinking and they know what's going on inside a computer and sure but nevertheless maybe sort of if you teach them Python instead of Pascal you can certain they can focus more on on that learning experience and less on where the semicolons do or don't go and that was sort of it was it turned out for me personally it was a very frustrating experience I felt like I wasn't very competent in writing a research proposal because I had sort of I even though I had worked at the periphery of academia I there always been in a programming role not in P I role I had not written a PhD thesis I had never really published a paper or cared much about citation indexes or even how to format your references for that matter and so I felt that was was not I I wouldn't say I was pulled into it kicking and screaming but I'd sort of I was pretty skeptical about how that would work out and as it turned out that sort of with a lot of help we got a small amount of funding enough to sort of keep the team together and then it turned out that I had completely misunderstood how research funding actually works and only after we we had sort of we thought we had gotten the grant it was explained to me well okay now you have to do more talking to people and writing proposals and convincing them that that they should actually give you money plus the money you've you've been allocated is is not enough you have to sort of try to get more money but even the the sort of the funds that you've been allocated it came from the DARPA which means that there had to be some defense organization that was doing his own research that thought they were interested in our potential results and wanted to fund us and there was a whole separate sort of set of negotiations meetings with people from the west coast who live the word for some lab in San Diego I believe naval research if I remember correctly so that was a sort of a big downer because I hadn't expected that I had to go to cocktail parties and chat up top researchers who had their names in all the C ACM publications and things like that and I plus I had to sort of manage a team which also turned out this if the engineering managers side of that I didn't really enjoy that much and then on top of all that so that that was sort of I was I don't think I was super happy with that on the other hand I was very happy because we did actually have continued employment and we didn't have to work on the know box we could spend sort of all our time on doing stuff with Python which we thought was the most fun and which sort of had the the most the rewards because whenever we release a new version of Python users would sort of fall over us and say oh this is so great this is amazing sort of there's there's a really positive feedback loop there so the team was was very happy in that sense and then another dark cloud started looming on the horizon and and coming closer very quickly which was licensing issues because by the end it's sort of I started at CNRI in 95 and so through 99 or so we did regular releases of Python and every once in a while we bumped the the minor version number it went from one point three to one point four to one point five and sometimes was was the micro version number one five one one five two and Bob Kahn started sort of getting uncomfortable with effects that there was an open-source license on there that didn't sort of grant see an arai any rights into the code because it was like well scenery has sort of employed all these people and secured the funding for all this work and well there was there was mention of CNRI in the license but the license sort of it was it was a very liberal open-source license I think I explained that in the previous session that was then the MIT license and so Bob Kahn started getting uncomfortable with that and at the same time the open source sort of became a thing that the term itself became popular and and sort of there was the Free Software Foundation on the one side and I'm excited and the open source initiative on the other side and I was like Debian Linux was very strict open source project and at the same time other projects at CNRI not not Python related had been released under licenses that had been sort of I know made up by senior eyes lawyers that were very clearly not open source and not free software or Libre software and I think that CNRI at the time underestimated the significance of that and thought well we'll sort of there was this license for I think the digital object identifier system and there was there was software that was written by some people at CNRI that implemented all the infrastructure and the license was essentially not free it was like well if you're just playing around with this or using it strictly for research you can use it for free and otherwise let's talk and you have to pay for a license and we were very worried that senior I wanted to change pythons license to a similar nam free Nam open-source license and so CNRI did sort of require us to change the license and I felt like I didn't I I didn't have sort of legal standing to refuse that because they did fund my time and several other people's time for several years and surely that sort of amounted to at least some significant fraction of the code that we were releasing regularly and it was hard to sort of tell where the boundaries were like if a file originated at CWI in Amsterdam and then was sort of modified or a bug was fixed fixed in it during my time at CNRI who owned the copyright to that file does it really matter but there were some worrisome sort of things going going on and I remember a very emotional meeting where I'd like the Python team and Bob Kahn and his lawyer and probably some other people really sort of had a big clash about shoot Python stay open source or shoot it not or sort of Ken seeing her I'd just changed the license and what are sort of what are the consequences I was I was really scared at that point that pythons the next version of Python would have a license that was not open source and that as a result pythons users would say oh we can't touch that because that's that's sort of commercially too risky because there were there were like people in in the Python community who had built their business around Python by them there was was a small company named digital creations which later became soap everything they did was Python they were big tributaries to Python as well those contributions were sort of not always directly acknowledged in the source code and they had thought well Python is clearly open source but that license was easy to read for a layperson and the worry both sort of with me and the Python core team at CNRI as well as with the user community was that somehow CNRI would suddenly come and say hey digital creations or whatever other company it was it was was a guy who did computations for pricing for aircraft like big commercial airliners it turns out there's a super complicated financial model that determines what the payment schedule is if you buy an heir an airplane and he had written all this code in Python and that was his business he had the hit like few people worked for him but he had written all the code another example of a really cool application in Python and the worry was that seeing her I would suddenly come and say hey you're using this software and we have to that that is sort of that is our property and you have to license it from us and their sled was like no reasonable sort of price I mean why would what would senior I be charging if they wanted to charge or just the threat that they could come after you with all their lawyers was was sort of that worried me a lot and fortunately I think with some intervention by Eric Raymond and Evan Moglen the free software foundations lawyer a compromise was reached where CNR I did put a license on Python that was sort of much longer and worthier and harder to read but was still sort of approved by the open source initiative and by the Free Software Foundation as open source and free software and compatible with the GNU GPL license the GNU Public License so that was pretty scary and that happened sort of concurrently with a different development which was though that I think we we sort of we were tired of the sort of the DARPA funding story and a threat to the Python licence story and I had been approached by someone who had a startup that was all open-source based and he wanted he desperately wanted to employ me and I was pretty green where it comes to startups at the time because I had sort of worked for Dutch government funded research organisations and us research lab that was also essentially government funded even though it was a little less direct and I had no idea what was going on in the world of venture capitalism and startups and and plus we were in Virginia and all the action was happening in California and I well we had some we had some Python users there for example Greg Stein and his team for e-commerce and we know that that there were sort of all sorts of interesting things going on there and they were conferences I remember going to early O'Riley open-source conferences and so somehow a little on the late side actually I got the startup bug and I thought whoa wouldn't it be cool to be sort of done with this whole CNRI slog and sort of I could could just be doing what this guy with his startup says he wants me to do which is just sort of make Python better and so I decided to give that a try and this light be open that this was be open yeah and I convinced three of my co-workers at CNRI to also join me there were a few others who decided to stay at CNRI they were not so so into risks but myself Barry Jeremy and Fred decided that we would start working for be open and I remember we sort of we called me I I sort of called a meeting with Bob calm to talk to him to basically present him with the news that we were leaving he was like in shock he also immediately realized that I didn't know what I was doing but he was also he he realized that he couldn't stop us because we had sort of without letting him know we had negotiated contracts and start dates and all sorts of things and we would just sort of stay in Northern Virginia where we all lived except for burial came from Maryland but it was just on the other side of the Potomac River so Bob saw suddenly he's four of his most valuable developers depart and sort of one of his projects implode because he yeah I have no idea what happened with with that project with any anything we were working on at CNRI that sort of I don't think any of that continued click the no bar yeah well the no boats were dead by then but sort of the computer programming for everybody research was also just us there were there were there was another project that was about I think nanomachine so maybe they had a slightly different than nanotechnology they stayed but anyway I remember sort of in the following days Bob Kahn sort of coming to me and sort of asking why are you sure you know what you're doing have you thought about what would I mean this is a startup there must be at least an epsilon probability that it fails what do you think would what is your plan B in that case I think you also tried to make it clear that we couldn't just come back to C and I at that point which was completely understandable and there were they had never thought I hadn't I had never thought of a plan B but I didn't think that going back to seeing her I would be the viable plan B but I definitely had vastly underestimated what the probability was that everything would go upside down and so as it turned out that mean it it's it's a crazy story by the time we started at be open they had already gone through several sort of very dramatic management changes one of the cofounders had been kicked out due to some unspecified conflict and apparently was paid out his share of of ownership in cash at least that's that's to this day that's what I believe that happened he was never heard from again and it was sort of he was paid off and if I mean if he had been paid off in a share of the company he would have had zero but as it was he was probably just happily retired somewhere on the Atlantic coast but and so that was one of the big changes that happened I think in early 2000 and the other thing was that there was another guy there whose name I can't can't remember right now but was like it was never really clear what his background was and he seemed to always sort of claim things that were too good to be true and he claimed he had an investment company but he would never go into details he would never even mention the name of that company I remember someone I had a long phone conversation with someone as I was sort of trying to get clarity whether I should really join be open or not and somehow I found another open source developer who knew this person and who basically tried to warn me and saying this guy fakes it he's a con man and he had a particular anecdote where he said this guy so this this was not one of the founders of be open this was was someone who had sort of attached himself to be open in a very early stage as I think the CTO and his sort of his exact title was was fluid it was was very strange were very strange times but this guy sort of so someone tried to warn me again and said this guy is not real and I was just to sort of Bob whiner who was the founder who had most of the connections with me and who was an Emacs core developer or at least an Emacs big Emacs contributor there was particular Emacs package that he had written that was very well known and so I thought he was solid and he was very convincing and he was also vague on details but that might sort of inexperience in these matters made it that I didn't really know what questions to ask or how to sort of critically look at what he was telling me and so I convinced three of my colleagues to leave our employer CNRI I also convinced another core Python developer who was in Cambridge Massachusetts to move to Reston Virginia to also join be open and Bern was headquartered on the west coast the open was headquartered I think it's Santa Clara yeah we visited their offices once or twice but yeah we we we were we stayed in Northern Virginia and we had like weekly meetings in my living room where I had one of those fancy speaker phones and we sort of discussed the state of the world with an company and our work with Bob miner and after a few months Bob miner started sort of trying to get us to do other things that didn't look like were part of what he had hired us for before and we went on recruiting missions trying to drum up business I think we went to HP and I remember The Motley Fool I believe we were trying that they were a big Python shop apparently in 2000 and we were trying to sell essentially sort of the best Python consulting service money could buy but nobody would buy because Bob liner had sort of he he could sort of talk a good story but he didn't have the the sort of the salesperson skill of closing the deal that I mean that's that's one thing that that sort of became apparent we we saw all these amazing opportunities and nothing ever came of it and he was probably also a terrible judge of character because a lot of the people he hired for senior positions in the company were terrible then he I don't think that in in in the the sort of overheated startup world of Silicon Valley in 99 and 2000 people thought that they sort of shoot Vette people they were trying to employ because there was old so such so much competition if we didn't snatch this great guy then surely someone else would snatch him and that was all that matters and so like we had a terrible VP of Sales it was just was pathetic it was always losing his cellphone and missing appointments we went through I think two or three VPS of engineering and so they were like every new new VP of engineering did a complete pivot of what we were going to do at some point I think the third one said we were going to develop anti-spam software which was a great I sort of if you could pull it off that was great but I don't think we had any particular competency in that area as the companies of trying to do well yeah so that was also this really vague thing that there was was like it was the core business was supposedly an open source portal website and so portal website was was all the rage like yahoo started out like that and so there wasn't any search facility or maybe user you could search for one keyword in a small database or something but it was like they were supposed to be there was was a very fancy home page with links to all sorts of articles and daily updates and the hope was that people would sort of visit a website frequently to find out news about open source and we didn't really understand what it I mean the Python team was just cranking out a new Python release and which we did successfully but sort of the the the core be open business was something completely different and there was a team of web developers and well we'd sort of we never knew who they were or where they were and they were like that the only contact was through email and and we never never quite understood who was doing what and why and how and when and the website had no it there was basically no no way to make money of that website and that sort of there was all this this sort of early Silicon Valley web startup idea where well well well we'll be losing money but we'll maybe we'll be making it up in volume that's kind of crazy stuff and like or oh well first we have to be the most popular open source website and then we'll figure out how to make money I guess advertising well there was like there was a secret section of the business plan that I'm sure was just made up and didn't make any sense either and was something about points when I was well that is so none of none of sort of the the company was churning through real money because sort of the Python developer team was five really well-paid programmers and they paid competitive salaries otherwise we wouldn't have left Sheen or I plus they had the web development team and the hardware for the web site and was no income so and it was was clear that that sort of they were getting more and more stressed and that's that sort of when we started going on these these consulting missions where we were trying to rustle up business and none of it ever worked out I don't think I wrote a line of anti-spam code or did anything for any of the other come potential customers we had we cranked out Python to know though I forget exactly what the the timing of that was I think that was late in the summer and we were sort of hard at work at subsequent things and we did sort of the only the only smart thing we did was that we were aggressively open source ourselves Python was open source and the code was hosted well yeah one of the things we did with was we moved the code from a private CVS server to SourceForge which also I think at the time didn't have a business model but wanted to become the big open source service provider for hosting and so they hosted our revision control we converted everything I don't know if that's also when we started a bug tracker but sort of everything we did was out in the open lots of people had their own copies because anybody could just check it out if they had the subversion software oh yeah the subversion was written by Greg Stein and a few of his friends so the same guy he had sort of reinvented himself anyway subversion is now mostly known because it was like it couldn't make it against the competition of mercurial and git but at the time subversion was amazing it was so much cooler than CVS and it worked and it was fast and they would sort of had lots of cool features it was very reliable and so we we hosted everything on SourceForge in using SVN and so when be open finally folded and I think what happened was that one one day our paychecks were all sort of reverted like there was everybody had direct deposit and well if every two weeks or twice a month or so yeah if your direct deposit in your bank account and one day someone noticed hmm the direct deposit came in and then it was rolled back and that was the first we heard about it and after that we got an email from Bob whiner saying that the company had folded and I think after that that was on a Friday and I think the next week we got some some email or a phone call from one of the investors who was sort of cleaning up loose ends and I think I forget where where we got this advice but one of some somebody who knew about these things said okay guys well that was that there's nothing you can get out of the open they don't have a penny but there's also no way they can ask for their computers back so every one of us had like a really nice good home computer setup like we had big sort of the beefiest PC you could could buy with big monitor and a fancy keyboard and Ethernet cards and modems and hang out was some kind of zip drive and some well everybody got sort of what they wanted I think some of us had laptops and the advice we got was okay well just keep your hardware that's that sort of your reward for for being very suddenly unemployed and then we started sort of well this this was obviously sort of kind of panicky because we all had families and we needed employment and we were we we ended up negotiating with two small companies that were actually doing real stuff in the Python world one was active state which I think had become big on doing a Perl poor to Windows but was also branching out to Python and had a lot of interest in in Python and the other was digital creations which was just about to rebrand itself as soap I think that the software they had written was called soap and there was just a nonsense word that they had made up and soap was successful and they were sort of changing the company which was digital creations into soap.com and well lucky for us so calm came through or digital creations I think at the time still came through with a competitive offer to take the entire team and we yeah we named ourselves Python Labs that was also the sort of the the the internal team name and be open so the five of us were Python labs and all of Python labs stay together and joined digital creations and we would do sort of part of our time we would continue cranking out Python releases and part of our time we would be working on soap and so did actually have real customers who are paying the bills and I'm very happy that we didn't choose active state because they were in Vancouver Canada plus their CEO and Founder at the time oh dang I'm blanking out on the name he was quite a character and active state has sort of sort of had I think that the next few years were rougher aft active state although that they're still around and they still have an active Python distribution it turned out that things that soap were also kind of rough but it was a really nice company to work for and there was real people and real work and I had a good very good time there it was was very different from sort of be opened which was basically built on and was soap where were they located oh yeah that's so soap was located also in Virginia in Fredericksburg and so we also we lucked out we continued to basically work from home and once maybe twice a week we would all pile into a car and drive to Fredericksburg on I think I 95 which wasn't too bad and so you spent half your time working on Python itself and then the other half working on soaps gems so what was their primary business so soap is a web framework it was very influential in those days in the Python world it was all written in Python with the exception of some networking and database layers that were Python extensions but they sort of a lot of the database layer was also open source and it was like only little bit of secret sauce their main customers were a network of newspapers that mostly in Virginia and other East Coast states I believe that had sort of still a sort of they were very much live newspapers but they also very much wanted the web presence and they sort of zope hosted their websites and wrote the applications to run the websites I think that the newspapers themselves just sort of entered the content and it was not like a modern newspaper website where the entire newspapers online it was I think mostly classified advertisements and a few other specialized things that sort of were very suitable for putting in computers and accessing online so then you were there until 2003 yeah that's right and I think by then Jeremy Hilton had decided that he wanted to move back to Pennsylvania so he was part of it he was one of the Python labs guys he mu he left I think he first moved to Pennsylvania and worked from dere but that did work very well and then I think he joined Google and he still stood still there I don't think he did anything in-between and and it had to do with family and his his wife's employment so he left and soap started sort of having some trouble sort of getting enough business and I got a phone call from a guy who was doing another startup in California believe it or not and I had learned I had learned my lesson and I did more research and I sort of but I did let them convince me to to join but not with not with the whole Python labs team they sort of had a very different role for me in mind so that was a place called elemental security and they were in San Mateo and they got the guy who called me was down farmer who was sort of an internet celebrity at the time for our lease and sort of a hacker idol because he he knew how to break into any system but he used his powers for good and he sort of he had written this together with another guy I think a Dutch guy actually later they wrote a book together on forensics which was really good but they also written software that sort of probed a systems network defenses and depending on your mood the name of the software was either Satan or Santa and it was people people hated that I think it was just a bunch of Perl scripts that just sort of had a huge date database of known vulnerabilities in in many different systems and it would just say sort of oh yeah well if there's something on port 238 try sending at this magic packets and boom and and sort of he had so he he and meatza had apparently done this for a long time and then they had written they had sort of automated the whole thing and released at his open source and they had become somewhat famous and infamous for that obviously and he sort of his idea was to use his skills to to sort of increase the defenses of various enterprises and so from the inside you could also check for vulnerabilities oh is the mode of the password file maybe world writable or is there a user with no password in there and things like that and and so again the disorder of the software was intended to to have a a large and and constantly updated database of through various vulnerabilities but sort of in a much wider sense than your typical virus checker it wasn't just looking for files with bad cult but like whole system configuration it turned out that even though they dem and his co-founder who was more of a business person which really sort of helped helped me get over the fence but even they couldn't figure out how to sell enterprise software which turns out there is just really hard you have to sort of you have to have sold a lot of enterprise software in order to be able to sell enterprise software and that that chicken-and-egg problem they never got around so after a few years having fun there and I designed a custom programming language for them and implemented it and did all sorts of other stuff as well so mentoring some rescuing Java code and when I thought yeah there there there was a change in management and I'd really could not get along with the new VP of engineering and it turned out that several of the other sort of lead engineers also couldn't so that people were leaving and I thought okay well I'll try something else and I asked some of my friends at Google including actually Jeremy Hilton if I could apply there so then you started that's that's yeah that's that's a lot of sort of very personal history I don't know how how much it bears on Python itself but oh but we're interested in your personal history here well so so you started at Google in 2005 and even there until 2012 just you could talk about seven years yeah seven years and your work on various things there well I always try to do everything with Python and sort of or in sort of in support of Python developers at Google so what were you hired to do I was hired my at least my first team was actually build tools which is sort of very internally focused team that at the time owned a variety of developer tools not just build tools actually the the thing that got open-source maybe two years ago under the name basil by Google had its origins in in those days although I had nothing to do with it but sort of the people who were were creating basil under the name Blaise at the time the word in sort of we all reported to the same manager my project yeah that it it wasn't clear what what I would sort of bring to the table for build tools although it was clear that I could do something because it was a place where there were a lot of Python applications I remember there was a huge wrapper script for perforce that took care of all sorts of crazy extra stuff that was a huge Python script there were Python libraries and as a starter project I thought I would do something about the problem of code review and I wrote one of the very early web-based code review applications so there's no intelligence in this sometimes people seem to think that code review is about finding bugs that's different set of tools code review is where another engineer can basically check your code and comment on it and tell you well ok you got to change this this and this and then you can check it in and Google has this and always had I think this great system where every piece of code has to be reviewed by at least one other person before it can become to to source control and so the there was there were elaborate rules for how to do the reviews but the tooling for reviews was mostly email and so you had to just hand craft an email or there was a tool that sort of you I think you could copy and paste the diff into the email and then sort of start typing your comments in the middle of the diff and it was all kind of painful and there were there were BOTS that were watching the email and sort of if you if the reviewer responded with certain phrases the bot would automatically notify the author of the code okay it's been approved and then the the author could commit it it was always the author who had committed but that the flow was was was complicated because you had to sort of go to your email client to write up the review and to and the offer had to read the review in their email client but to sort of to see the comments in the context of the code you had to frier up your editor and then there was a third tool where you had to fire up where you could sort of see that the diff highlighted with like deletions in red and additions in green I think that was about the extent of it and so there were all these different applications that were involved in doing a review both this for the author of the code and for the reviewer and I remember a colleague who was also a core Python developer at the time Neal Norwoods suggested that as a starter project I should try to sort of improve that workflow by making a web application for it and so he sketched maybe some basic ideas like well the web application can look at the source code and it can sort of look at your email and it will present the diff in in in the web and then they will write you you write a little bit of JavaScript so you can click on anything anywhere in the code and start inserting your comments and I thought okay well I've written a web application before Python seems well supported for this kind of stuff so let me try that and I didn't know if it was probably a few months before it was sort of really ready but that it became my main project for almost two years and we sort of we sort of and the I think after about a year every engineer at Google was using this tool which had named Mondrian to do their code reviews and code review is sort of is a pretty big part of software development so I would sort of if I visited another Google office I would just walk through the open office space and I'd recognize the color patterns of the the review tool I hadn't hit it off every second screen that that was pretty cool I think in 2011 they replaced it with a new generation which was basically the same thing but it had a really good run and then after it turned that sort of became too more too much focused on just production sort of keeping the production up which was never my strong point and then I joined Google App Engine team which was a completely different thing but also very Python focused so that's that sort of web hosting of applications written in Python with a database interface that is sort of customized it's it's a nom-nom SQL object databases as I think it's called no sequel I think isn't as that the buzz word anyway that's sort of that it's very different from virtual machines because you don't you don't get a whole machine but you get one process that's sort of where you can write any Python code you like and I spent about five years there through all sorts of different parts of the project and quite a bit of growth I mean when I joined the team they had just been an internal launch and so we went through the first public launch and then a year later there was another public launch where there were the second language was supported so the first language was supported was Python and then a year later Java was also supported but I think the majority of App Engine users always preferred the Python approach I did all sorts of things there towards the end I I also worked on attempt to port app engine to a more traditional virtual machine based environment which i think is what's currently if you look up Google App Engine that's usually how it's done and then sort of diversion I worked on originally was it's called classic App Engine or something why was python so popular well why is - so popular at Google Oh at Google specifically I think that Larry and Sergey when they started coding they happen to know some Python and started writing their first prototype in Python and they had sort of they had some friends helped them who were better skilled Python coders and so there there was always a sort of a long tradition of using Python that at Google and sort of by the time I joined in in 2005 most most of Google's applications were written in C++ that sort of the search engine and all all everything around it but for internal tooling whenever there was anything that had to be scripted it was always always Python was that sort of lead choice of language I mean yeah I'm sure there was born shell scripting sort of to glue a few things together but there was very very minimal and sort of a lot of tooling was always programmed in Python and every once in a while products would use Python but not all that many there was for for I don't know maybe four or five years there was big project where Google would host open source code basically sort of the same ideas github but using mercurial and the the web presence of that project was all implemented in Python and during you know this your time at all these various companies from be open to go through through Google you spent half your time continuing to work I thought is that was that pretty much continuously like you would half of your work was was on Python throughout that's yeah that that's sort of that's pretty much the gist of it and often sort of I think so where did that start well at the open that was basically full-time Python except during the sort of latter half of the year there was a lot of pressure to turn that into consulting at soap it was pretty much 50/50 again maybe towards the end of my stay there was a bit more pressure to sort of help help out the the projects that were working for for paying customers sort of if if the developers there were stuck or if they urgently needed a certain piece of functionality the Python lab team would help and I would sort of dedicate a lot of my time to that at Google I felt that I could just sort of negotiate for what I wanted so there I I just said well I would like to have the freedom to spend fifty percent of my time on pure on Python things whether that's answering email from the community or attending conferences or reviewing peps or coding up new features and they agree to that I think elemental security is the one place where I didn't have a deal like that and so it was like it was a start-up funds were somewhat scarce although in the beginning it was fairly well funded I think I elementary I may have had like one day week or like twenty percent of my time so I was I was eager to sort of bump that back up to 50% because that really sort of if all I'm doing is using Python yeah it's it's obviously my favorite programming language but they also really crave that sort of interaction with the community and the feeling that that I'm sort of responsive to to the needs of the community right because you continue to be sort of the head of the community yeah and at what point did the Python Software Foundation get started the Python Software Foundation started in I think 2000 or 2001 there had actually been some failed attempt at having some kind of user organization while we were still at CNRI we actually created something called the Python software activity the PSA and this was like in response to some people in the community who said that it would be useful or fun or whatever if people could claim they were a member of Python whatever that means and maybe that was something that they thought would look good on their resume or maybe it would sort of help them explain to their manager why this was important the PSA was never very successful I think we had a few hundred members and I think everyone paid $50 I don't know if it was it was annually or once but for when you paid you just got your name on a mailing list and there was a so there was a separate PSA mailing list I believe but we didn't really do anything there was like board or bylaws or meetings or minutes or anything so that was not very successful I I don't remember if it was in the be open time indefinitely in the zouk time we had Python Software Foundation yes it must have been in the zouk time so it must have been 2001 the Python Software Foundation started was created in 2001 because I remember sitting down with soaps lawyer to sort of nail down the details of the bylaws and the guy explained that it had to be registered in Delaware for some reason it was like the best corporate law that's what we did there was also then at a Python conference we had an official meeting there was like a group of about 20 founding members so I was like the I don't know chairman or something and several other people I remain well I think everyone um in the Python labs group was was present and I think Eric Raymond was there and Greg Stein was there there's probably minutes somewhere in the Python world org archives oh yeah dick Hart was there and that now I remember dick Hart was the name of the active state founder and so somehow all of us were like software developers not very well versed in business and sort of how do you run a foundation and every time some kind of action item came up dick Hart said oh I'll do that yeah I got my corporate lawyers I've got experience I've been running businesses for years and a nonprofit is not all that different so all the action items ended up on dick Hart's plate and then for a whole year he didn't do anything and then the next year we had another meeting of the Python Software Foundation and nothing had happened and we essentially started over so what was the motivation for starting the foundation at that point in time yeah my original motivation was to secure the ownership of the source code because after CWI and CNRI and be open I was very worried that at some point I wouldn't make a narrow escape or Python wouldn't make a narrow escape and some part of Python would suddenly be no longer open-source and some some company would sort of claim ownership and say everybody who's using python 2.2 or later owes as licensing fees and there were there were like horror stories in the industry about that still are I mean the Oracle Google lawsuit is essentially about something like that so there were some examples Greg Stein was a member of the Apache Software Foundation and so he said well you should do it the way we did it in the Apache Software Foundation we have pretty simple bylaws and we basically just copied that and over the years some small changes have been made and the membership sort of structure has changed a few times but we were essentially pretty happy with that but the goal was really initially was just have have a sort of an officially registered organization a foundation that that sort of has a legal presence and claim to the the source code copyright and licensing rights and then the sort of the board will make sure that the PSF always sort of ensures that python stays open sore and that everybody can use it without paying any licensing fees and it was like well sometimes the trademark was an issue we wanted to make sure that if people people sort of started creating software that was also called Python and claiming that they owned Python the name that that sort of we could say well the Python Software Foundation already owns that and so the only reason that we were we were collecting money from members and we had sort of the idea was that we had corporate members who would pay like a few thousand dollars annually for the right to be members and we would just sort of save that money as a rainy day fund in case some kind of legal assault would happen and then we got the idea of using those funds as a sort of a starting fund for a conference because we had like workshops that were just essentially run by whichever organization hosted it like mr. USGS or L&L and then for a few years a conference bureau that was a subsidiary of CNRI ran the conferences but they were never able to to sort of make it a commercial success and people were complaining that despite the lack of commercial success the entrance fees were too high and so at a convenient time I forget it was 2002 or 2003 there abouts we started organizing our own conference and again as I had way too much involvement with this personally through some connection connections we found a venue it was a really nice venue I think it was George Washington University in downtown DC and was like three really nice conference rooms and I learned a lot because it turns out that almost all the money you paid a venue goes to catering but and and so with the the the sort of the fact that the PSF was an existing organization made it possible to sort of make the necessary deposits and we didn't just have to tell those people Oh trust as lot lots of people like us will pay you back once they've paid their entrance fee we could we could sort of the the PSF was taking the financial risk for the conference and somehow we were smart enough that that was actually successful and after all the bills were paid we had a little bit more money in the bank account than before and we still had like a number of corporate members and an other sort of occasional random donations and so we did that again and and by now the pie calm is this gigantic event while gigantic but is like three thousand people show up and budget is in the millions and it's still financially closely tied to the PSF but except for one year in I think 2008 it was not financially successful but we also didn't go out of business and ever before but also ever since my column has made a modest profit for the PSF and that has always been used to sort of well see seed funding for next year's conference but also sort of just handouts for the Python community if someone wants to start a local Python event then the PSF can give them a hundred bucks for pizza or something or to pay for a local for the small venue and so we've the PSF now one of its very important roles is to to sort of foster the community and there's also sometimes stipends for people who want to attend Pike home but can't afford it also are paid by BSF funding and moving on to Dropbox if you've been at Dropbox since 2013 can you talk about already yeah you talk about what motivated first that move and also what you do there well so my move in part was was motivated by a very personal appeal of drew Houston who just came to me and said look we've got this great little startup we are super fans of Python here all our code is written in Python drew and Arash the two founders wrote the first client and server of Dropbox in Python and all that all that code is still around and still mostly written in Python and I think I gave a talk at Dropbox which was like partially for Dropbox and where they were like 50 employees there that the like this was like in 2003 or 2004 no sorry I mean 2010 or 2011 or so I gave a talk there and Drew and I go to talk there again I remember him visiting me at Google and having lunch and I had a very interesting chat with him about sort of his startup and how they were using Python and I blogged about it and so at some point I think in late 2012 he approached me and said well you should really consider come come to work for us we've got lots of cool stuff we're big python fans and he was lucky I mean I honestly got sort of requests like that before and was never very interested but the mood and that Google App Engine project had changed quite a bit from the sort of the days of the first launches it was much larger organization management was completely different the project founders had all left Google and so I was was sort of without actively looking I was also ready for a new challenge and I thought that's actually pretty cool to see what life is like in a start-up with 200 people well by the time I started was 250 that sort of it's always been a lot of fun and definitely very different things and quite a few quite quite a bit of variety of what I've been doing there yeah I started out with also like a starter project that someone suggested which was sync for structured data this turned out to be not a great great hit with developers so that that that API is no longer around but this sort of it was was a lot of fun to to sort of create that and work with a whole team of people on sort of getting it ready for production and launching it and presenting it at launch activity we probably worked a little too hard on that particular project after that after the launch event everyone was was like suffering from burnout and all the developers went on really long vacations while the customers were sort of wondering why the software was buggy and why no one was fixing it but we sort of recovered from that my current project which have been working on pretty much full-time for the past two years I think at least is my PI which is a static type analyzer for Python yes it's I think it you mentioned something similar last time we're talking about it's probably some overlap yeah yeah so it's sort of similar to the the OE this is a static analyzer it's a static analyzer okay yeah so we we have a an optional syntactic extension to python where you can add type annotations to create critical parts of the language mostly function signatures and the regular Python interpreter ignores that but a separate program called my PI can check those type annotations and it basically analyzes your whole program and checks that whenever you call something the arguments that you provide in the call side correspond to what the types of the arguments expected by the function definition and does this bear any relation to the the kinds of type checking that ABC had that we were talked about last time uh oh that is a good question let's see there there is a certain similarity in that when you don't specify types explicitly in in Python the mypie type checker will infer types based on the values that go into an expression so the simplest case is if you say x equals 1 then the type of X is an integer and now if you say y equals x plus 1 then Y is also an integer and there are all sorts of transformations if you call a function that takes an integer and returns a string it'll know that it'll infer that it's a string and you don't have to sort of declare anything explicitly there is a difference in that in ABC there were no type annotations at all everything was sort of derived from context and from from sort of literals and in sort of using my PI you don't get very far without having to put some without putting some annotations in basically every function needs to have an annotation it's just the variables that don't need to let's talk a little bit about more your personal life what are your interests in activities outside of Python and outside of work computing well mostly hanging out with my family watching TV together I like to read books I like to go out for bike rides books well I like to read sort of popular science also science fiction also honored novels yeah that carries lots to be honest can you talk a little bit about your family uh I've got a wife and a son I got married in 2000 pretty late in life we got a kid in 2001 he's 16 now he's a teenager he's uh he's good kid is there a wife American she's American yeah she's actually from Texas but we met in the Washington DC area and how's your work affected your family life it affects it a lot yeah I sort of I really have to force myself to sort of spend time with the family rather than being on the computer always working yeah dead like there's no there's always more email from Python dev or from Dropbox honestly so yeah I'm I'm the the main provider my wife has a PhD in economics she used to teach then she started a self-defense school in Baltimore now she's teaching yes the self-defense stuff is pretty hard on your body so she can't do it anymore but she's a personal trainer at the peninsula Jewish Community Center in Foster City but so that I'm I'm the breadwinner of the family and that that's sort of that yeah that has affected everything I mean we moved to California because I got a lucrative job here and I mean great work are you able to afford to live here with on a single salary yeah yeah that's sort of welded because of my reputation I I get paid pretty well what was it like moving to the u.s. from the Netherlands and what was you know was a significant adjustment for you well I guess it was I mean I lived in Amsterdam in in a beautiful apartment on one of the canals and I moved to a suburb Reston in Northern Virginia and suddenly I had to drive a car to get everywhere that kind of stuff and my social life was very different I remember that that was a little bit of an adjustment that you couldn't really go out drinking with your buddies and get all that drunk because everybody had to drive home afterwards but all in all it was was a fairly easy transition I was somewhat familiar with life in America so I had been here on vacation in 86 I had been to numerous conferences in various parts of the country I'd seen the Grand Canyon Yellowstone Yosemite oh and I lived in Maryland for two months during that stay at NIST that also sort of gave me some some some experience oh yeah and in 88 or 89 I had spent a summer in Palo Alto working for a Dec Cirque so I had actually lived in different parts of the US briefly at least so it was it was not entirely unfamiliar with all the many differences and and importance of your social security number and the crazy financial system with credit cards and checks none of that was this was all that that challenging how would you compare the Netherlands the Washington DC area and Silicon Valley as places to live and to work well yeah the Netherlands is actually very densely populated Amsterdam is incredibly busy always was where I lived in the DC area was much more like like suburban I lived in a townhouse the but was much less dense and you couldn't walk to the corner store to buy a groceries the weather was very different much hotter in summer winters in Northern Virginia sometimes there was like two feet of snow in Amsterdam if there is like two inches of snow everybody's excited so yeah we were talking about comparing the Netherlands DC and Silicon Valley I do remember that that sort of the job offer in California was it's felt like a great thing I really was looking forward to living there and and I'm still very happy living here and I think that might have had something to do with the mild weather but also just with the sort of the cultural and social climate in the Bay Area especially compared to DC which is like well it DC has it has its moments to definitely but the sort of it is very much a federal town and that it can be a little dead on on weekends what about the cultural climate here particularly attracts you well actually I really I really enjoyed the sort of outdoors things that I can do nearby like recently I've picked up birding my wife gave me a nice pair of binoculars for my birthday and like wherever we go we have like great shorebirds Raptors and I'd really enjoy those things bike rides the weather is good pretty much the year-round well I got sort of the funny thing is the longer I live here the narrower might sort of my my sort of comfort zone seems to get some now and now I'm really glad I don't live in DC anymore with the hot summers and the frozen winters although actually it it wasn't so bad then and and the Natanz actually is is relatively mild it's just never very warm it sort of I think of the Netherlands as a lot of outdoors activities too because in part because that's just what my family when I grew up enjoy doing and there is so much like very flat land where you can see forever and ever and ever and I just sort of because I grew up there and and spend so much time there that sort of that's still one of one of my favorite sort of outdoors landscapes but I sort of I I remember really enjoying this sort of the mountains of West Virginia all the different sort of things we have here my wife grew up in a desert town El Paso I've enjoyed out - did she sometimes bored when I say oh I'd love to go to the desert because he grew up there but for me it's very special all the different types of cacti and so I sort of have a several sort of more summarising type of questions so or the or what organizations or what are the major users of Python today I I have to think about the specifically the users because there there are so many but I sort of don't keep a list I mean I used to sort of be able to rattle off well okay NASA is using Python Boeing is using Python lol is using Python now I'm sure that any name in technology or even in finance that you can mention has a large code base in Python I mean I I spoke to some investment firm a few years ago and that the amount of Python code they have is like unbelievable that's probably old crap like thousands and thousands of programmers writing scripts that they're not really maintainable but yeah it's a lot of code so I I think the the sort of the areas where Python is used most is on the one hand sort of web application development draw boxes big one there okay tooling like the the internal tooling we used at Google there's a lot of death to draw box to and sort of again Facebook Instagram the Instagram service is written in Python then there is the sort of numerical Python and scientific Python world which I don't actually know enough about but I know it's it's a huge growth area for Python and sort of pythons recent sort of jumping up on all the lists of popular programming languages are largely due to data scientists and and like Jupiter notebooks those kind of things so that's a very different type of development than sort of what traditionally was one of Python strings because these people are not developing websites or accessing databases they're they're sort of deriving very sophisticated data processing or machine learning libraries so you're you were talking about ten so far uh yeah tensorflow is this large machine learning package written by Google I think they happen to be here today actually oh yeah that's right there was a tensorflow Developers Conference now I'm I'm sure that all the these sort of essential bits of tensorflow are implemented in C++ or machine language on the other hand all the users of tenth tensorflow start by writing Python code that imports their data and presents it to tensorflow I mean if you look at sort of tutorials for tensorflow everything just says start with import tensorflow is not even like if you using Python do it this way if you're using javascript do it that way it's just like here it is what makes my fun particularly useful in machine applications it's probably sort of the fact that python is easily extensible with code written in other languages so Python is a great glue language you can yes you can write applications that are millions of lines of Python but a lot of people write very small Python applications that sort of farm out all the heavy lifting to libraries written in other languages and Python has a very rich environment that makes it possible to link python with other languages there like you can write a Python extension module very easily there's well-developed and well-defined API well documented there are also tools that sort of write the extensions for you something called scythe um there are other sort of tools in that area plus a lot a lot of existing tools for dealing with data and sort of reading data files like the pandas project is a good example and so all these things the more tools there are that make python useful in this this field the more tools other people will develop to sort of build on that so it's not always necessarily key features of the language although I think the extensibility is a very important one but the fact that python has a convenient for loop or allows a class definitions is probably not all that relevant for the choice of language to be honest and Python but about 10 years ago broke into mobile and embedded computing and and I was since also become popular and you know things maybe talk about about that mobile is actually still not a great place there are there are some projects that do use Python on mobile devices but the owners of the major mobile platforms aren't all that interested in supporting a wide variety of languages they prefer to push the one language that they support for that platform and sort of its rate on their environments for that language and the features very quickly because it's it's a crazy feel to be honest so Python on mobile devices is pretty marginal on the other hand on the Internet of Things one thing one thing that's that I think is making a difference is something called micro Python which is a really small lean Python implementation that was written from scratch by someone who sort of had a very different goal than what I had in mind 20 years ago but who managed to follow pythons sort of syntax exactly so if it's Python syntax micro Python will recognize it and and work with it now micro Python standard library is much much smaller and in I think it's also in a sense more varied in that micro Python can be customized for different hardware it runs on really small pieces of hardware and then it also has a really small minimal library and often sort of if there is hardware that has one particular special feature like it can drive an array of LEDs then there is a special library that is just dedicated to that platform there's no sort of pretense at portability there it's just that the sort of the core language not the library but that I think it's a it's a great piece of work so why has Python been so successful as so many different things outside of your initial vision for it well probably the extensibility comes back in there again because it means that I mean it's as a programming language it's very likeable it sort of concise you can sort of you can show someone here the basics of Python and if they know bit of programming in another language they'll see oh wow this is very simple this is very easy I can understand this already so it's it's easy to get into but then in in every field of endeavor it turns out that you can adapt Python to do things well say the Internet of Things or a particular piece of hardware or tooling or developing websites or driving numerical libraries or driving a user interface all those things are possible because people wrote extensions and so pythons extensibility the sort of the mechanism where you can write some C code but then it presents to Python programmers as just another module in the world of Python modules and that's like a third-party library that sort of has somehow inspired look by now generations of programmers to sort of create new applications using Python and sort of it's very easy to turn an application into a library for Python and so people tend to structure their applications as a little bit of top-level code that drives the application and a lot of library code that can be sort of connected too differently by different applications once you're sort of in roughly the same field like visualization lots of different people have visualization needs a visualization library is much more powerful than a visualization application the other thing that probably helped a lot is sort of open source which so I'm I'm really glad that we were always successful that sort of the debate over the Python license at the time when I was leaving CNRI and the sort of the PSF to keeps you keep the ownership of the source code sort of clear and freed all those things have helped to to sort of encourage people to do things with Python and that that community has sort of made it where what it is and where do you think Python will go in the future well I obviously hope that it will have a long and successful career in front of us I sort of I actually feel like almost comically in inadequate in predicting the future I never know what's going to happen next so I don't know if the future is the Internet of Things or machine learning or web 3.0 or whatever it is I think Python will will continue to play a big role because of sort of it it's flexibility and I I expect that Python will also keep evolving to to sort of meet the needs of its users and not just Python the language but Python the sort of the community in the ecosystem will change and and sort of grow and improve and learn and maybe thirty years from now we won't recognize the community we will probably still recognize the language because the language as a was 25 years ago is pretty darn similar to what we have now we want to get another take on the story of the naming of Python so um you just tell that story again on how you named the language well let's see what I remember so when when I started implementing a new language I don't think I already had a name in mind I do remember that I had been very frustrated with the process through which ABC obtained its name [Music] because it was like naming by committee there was like endless submissions of all the team members what name they thought would be good and then there was some kind of filtering process and in the end none of the sort of cool sounding names were deemed adequate or appropriate or acceptable and something very bland came out and so I was probably unhappy with the blandness of ABC as a name I also remembered that they're sort of there there I had recognized certain trends in in naming software systems where at some point I think my internship at Dex Cirque they were big on the Greek mythology and the sort of names no names from antiquity were somehow in the 70s and 80s seemed to sort of everybody seemed to name their there big system Olympus or Zeus or Hercules or some pun on any of those things they're worse there was too much of that and then they were like languages some languages had acronyms or somewhat pronounceable acronyms like Fortran and alcohol and then there were the names the language is named after sort of important historical figures from science Engineering like Pascal or Eiffel or ADA and on the one hand I thought that that's sort of naming it after someone else was kind of cool but I I was like I was not so happy with picking a famous name from from signs like Euler or I also wasn't into Lord of the Rings that much otherwise it might have called it Frodo but I was into somewhat subversive TV shows and so Monty Python was one of those that I enjoyed watching and then the the sort of the name Python has like it is not complete I mean I I would never name a language Monty Python I would probably also feel like a copyright infringement or a trademark infringement if you name it Python it could arguably be named after a snake I named it after Monty Python but at sort of I took it from Monty Python and it was like easy to type not too many letters not too many consonants next to each other easy to pronounce and it sort of I don't know maybe it maybe there was also in some subtle sense where it was similar to Perl at least started with a P I didn't I didn't know pearl pearl is a brilliant name because it's a nonsense word and it's it's so pronounceable but Python felt like pretty good choice and I didn't want to think about - too much I wasn't expecting major success and so I wasn't really sort of carefully weighing the downsides and upsides of this name versus that I just went with a gut feeling and oh yeah I should also mention that in the ameba project we had named some other tool which I forget after some other TV show which I also forget but I know that there was definitely at least one other instance maybe several where we use sort of current popular culture as our naming inspiration rather than sort of the history of established signs or other other pompous sources of names I want to go back to a question I asked earlier today this will be my second last question so could you talk about Python support for functional programming oh I'm sorry yeah I got into the threading so much that I forgot about the functional programming that's actually that's kind of a weird story Python doesn't have much support for functional programming and if you sort of if you look at what the strengths are of functional programming languages and then we're looking at Haskell as like one prime example there are a few others like F sharp those languages typically are really strong on the compiler technology the idea is that if you write in a purely functional style and if your language and and forces that you write in a purely functional style your compiler has a lot of freedom to generate optimal code and when you want to paralyze your code in the compiler that's easy because the compiler knows sort of what the mathematical properties of your program are in Python on the other hand we we sort of have adopted a few functional idioms like a map function and a filter function to go with lambdas and we have famously something called comprehensions but underneath all those things in python are very sequential in nature and they do not allow the compiler to rearrange the order of evaluation for different array elements and that sort of in in my view that actually makes python fail the test for functional programming support which is totally fine with me it's not meant to be a functional language it's meant to be a procedural object-oriented language and I sort of there are certain data types that are immutable and the implementation can use that to to sort of optimize certain cases but there are other data structures where I'm much happier with the simple sort of mutable data types that Python has compared to the potential immutable data types that the functional language might have I'm also pretty sure that a functional language would have a much harder time with sort of an extension module that the kind of extensions that are very easy to write in Python are much harder to write for functional languages and I'm not saying that it's impossible but you sort of you have to work much harder at it while in Python it's relatively easy to write extensions and sort of the the the data model that an extension sees is is pretty straightforward you know what the list means it's just an array of object pointer x' and that helps so yes is there anything that you would like to add sort of talk about anything in general that we missed wow it's a we've spent at least five hours talking I don't know that we missed much I've I cannot emphasize enough that the community did it it's it's really I mean it is such a great place there's so many people contributing and yes we also argue but that the sort of I learned so much from just listening to other people explain why a certain thing cannot work or why we should do a certain other thing and I enjoy the debate and I'm very happy that the community takes care of all these things that I couldn't possibly do all by myself like organizing conferences with three thousand people or selling t-shirts or even solving the problem of software distribution for Python there are so many things that sort of are outside my my my own scope I can't possibly sort of solve everything but I can make the language good enough that other people can solve whatever it is that they need to solve and so do you see your role as being like providing a focal point or a figurehead for the community like is that a useful thing for the community to have is to have sort of this leader if I read my fan mail I think that's for many people it's still very important to sort of have a person they can point to for the people that that are doing the actual work I think my role is mostly debt of a mentor and sort of I I sort of spending a less and less active role in the development of code and even the development of language features and more sort of helping people sort of figure out how to think about solving software problems and sometimes how to think about solving people problems or community problems or honored real-world problems all right thank you very much
Info
Channel: Computer History Museum
Views: 6,874
Rating: 4.9729729 out of 5
Keywords: Python, open source, Python Software Foundation, PyCon, PythonLabs, NIST, CNRI, LLNL, BeOpen, Zope, Google, App Engine, Dropbox, web programming, machine learning, scientific programming, numerical programming, functional programming, Monty Python., Oral History, Computer History Museum
Id: y-Yetu20snM
Channel Id: undefined
Length: 145min 24sec (8724 seconds)
Published: Thu Jul 26 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.