I worked at this place, CWI and for my damn current project, which was the Amoeba Operating System, which I was working under Sape Mullender. One of our projects was to write application-level utilities for this new Amoeba operating system. So there was an operating system kernel, and it was very good at talking to the network and it was very good at managing processes, but there wasn't much user-level software that was barely a shell. I think there was a ported very old Unix shell, something like the original Unix version 6 shell, but because the file system model on Amoeba was so very different, we couldn't take an existing suite of Unix utilities. So we wanted it to be self-hosting and in order to do that, we realized we needed a large amount of user-level applications, utilities, tools, whatever you call it, from an editor to a mail program to a login utility and a backup tool. One of the things I realized as we had a small team of people working on those things, that it was very slow-going writing all that stuff in C and it wasn't particularly interesting or novel or difficult and often we also didn't really care how fast the code ran. All the reasons why you would write a piece of software in C didn't really apply. The only reason left was that C was the only language that for which we had a compiler. There was this ABC language that I had in the back of my mind that would be a much better language to write a whole bunch of utility application tools for Amoeba. Except that ABC was so high and abstract that it wasn't a good language to talk to servers and file systems and processes. The whole operating system thing was abstracted away from ABC. In an alternate universe, ABC could have become the language of spreadsheets. It was very good for talking about a user's data and doing all clever stuff with that data. It did that using very general, all-purpose data structures like lists and dictionaries. Of course, it had very nice code structuring devices like a small number of simple statements that could be combined in any way you wanted to create other constructs, the usual function and procedure abstractions. It was not at all an object-oriented language, although the implementation had some objects shining through. Anyway, ABC as it existed, still wasn't usable. But I somehow since I had worked on the ABC project, I knew exactly how it was built and I had this idea in my head that, given how much time we had available for our project, I could actually build a whole new language, design and implement it from scratch, given what I learned about both the design and the implementation of ABC, and start using it to implement our suite of tools and still be ahead of the game compared to a situation where we will just clinch on writing the things we wanted to write in C. For three months, I did my day job and at night and whenever I got a chance, I kept working on Python. I believed that within three months, I was to the point where I could tell people, "Look here, this is what I built." It had an interactive interpreter loop. So the first demos were all, let's assign an expression to a variable and print it back and let's define a small function and call it and let's put some things in an array and iterate over the array. All those things worked. Somehow, and I don't exactly know how fast this happened, but certainly my two office-mates were almost instantly taken with it and started helping out. They and the few others within the institute were very excited about this thing that I built. Of course, we didn't instantly use it on Amoeba because it wasn't mature enough to actually write the Amoeba utilities that we wanted, but it was already instantly useful enough to run on our Unix system. People within CWI, even outside my own department, started using it and recognizing that it was fun and productive to use. They used it for small scripts. People started contributing things like bug fixes. Somehow things went very quickly during that first year because I think by the end of 1990, a year after I started, we developed a plan to do an open source release of this language. This was before the word open source had even been coined. So we didn't call it that, but we did have some models. We had X11, the Windows system at the time. It had a distribution that was one of the open source examples. With two colleagues, I worked on building a distribution. It turned out to be very simple to get management to sign off on this release. That was an incredibly lucky stroke. I asked my managers. " Manager, What shall we do about this?" He said you got to talk to this and this person in the administrative branch of the institute. I talked to this woman and she was in charge of all legal affairs, I believe. I said, "Well, I have written this source code and I would like to release that and I have made up a license that's identical to the MIT license. MIT releases software under exactly this license." We just put the formal name of our institute in there instead of the regions of the Institute. She asked me some questions like, "Did someone pay for this to be developed?" My answer was "No, I started this all on my own time, and it was for this research project. My Manager is fine with it." So she said, "Sure, go head, " and we did it. So in February '91, we did the first Python release and it felt at the time like an incredible milestone. We needed to post it to Usenet. There was this Usenet newsgroup that would receive source code for random free projects. I got immediately started getting useful positive feedback initially just from random people who picked up free software from Usenet, and we quickly got into a routine of doing new Python releases. There were the obvious improvements to the language, and the library, and bug fixes. A very important category of things that were often contributed were ports or porting fixes where people had different architectures, different compilers. The Unix world was much less homogeneous at the time. There were lots of small Unix vendors that had their own compilers or their own hardware, all things. So the big things that happened during, say, the first half of the '90's was a community of Python users and developers self-organized. Then came the invitation to come to the United States for a couple months. From whom? From NIST, the National Institute for Standards and Technology. So I spent two months there. We organized the first Python workshop, which was hosted by NIST. Through that Python workshop, I met people who offered me a job. I went back to the Netherlands for a few months and then from '95 to 2001 US in Northern Virginia at CNRI. There we worked through a lot of growth of the community and the infrastructure. We created the Python website. I got in touch with a bunch of people who are still active in the Python community, like Barry Warsaw. I think when I started there, Python 1.3 was about to be released. While I was there, we released several subsequent versions leading up to 1.5.2, which for some reason 1.5.0 was nothing but 1.5.2 remained the gold standard of Python for a very long time afterwards.