Python Is Eating the World: How One Developer’S Side Project Became the Hottest Programming Language on the Planet
Total Page:16
File Type:pdf, Size:1020Kb
Python is eating the world: How one developer’s side project became the hottest programming language on the planet By Nick Heath Image: Dan Stroud under the Creative Commons licence Guido van Rossum at Dropbox headquarters in 2014. Frustrated by programming language shortcomings, Guido van Rossum created Python. With the language now used by millions, Nick Heath talks to van Rossum about Python’s past and explores what’s next. In late 1994, a select group of programmers from across the US met to discuss their new secret weapon. Barry Warsaw was one of the 20 or so developers present at that first-ever workshop for the newly- created Python programming language and recalls the palpable excitement among those early users. “I can remember one person in particular who said, ‘You cannot tell anybody that I’m here because our use of Python is a competitive advantage.’ It was their secret weapon, right?” Even at that early meeting, at the then US National Standards Bureau in Maryland, Warsaw says it was evident that Python offered something new in how easy it was to write code and simply get things done. “When I first was introduced to Python, I knew there was something special. It was some combination of readability, and there was a joy to writing Python code,” he remembers. Today enthusiasm for Python has spread far beyond that initial circle of developers, and some are predicting it will soon become the most popular programming language in the world, as it continues to add new users faster than any other language. Millions of people use Python each day, with the exponential growth in users showing little sign of tailing off. Python is used for tasks big and small by professional and amateur developers and is particularly popular among web devs, data scientists, and system administrators. It was Python that earlier this year helped stitch together the first images of a black hole some 500 million trillion km away, just as it’s Python that powers countless hacked-together scripts on desktop PCs worldwide. Python plays a pivotal role in some of the world’s best-known organizations, helping Netflix stream videos to more than 100 million homes worldwide, powering the photo-sharing phenomenon Instagram, and aiding NASA in space exploration. PYTHON, THE EARLY YEARS In some respects, the rise of Python is as surreal and surprising as the British comedy group it was named after, and, in its own niche, the coding language has become just as famous and influential. The programming language was started as a side project by Dutch programmer Guido van Rossum. In the late 1980s, van Rossum was working on a distributed system at the Centrum Wiskunde & Informatica (CWI), the Dutch national research center for math and computer science. Frustrated by the inadequacies of existing programming languages, he decided to create a new one -- one that would be both easy-to- use and capable. 2 To an outsider, creating your own programming language might seem akin to saying ‘I’ll build my own airplane’, but van Rossum, then in his thirties, had something of a head start. He had spent three years working with a team at CWI that had created ABC, an interpreted programming language, so he already had insight into what it would take to build an interpreter that executes programmer instructions, and the syntactic building blocks needed for a new language. It’s also important to realize just how difficult it was to get anything done with the limited programming languages available to van Rossum at the time. The Amoeba distributed computing system he was working on required him to work in C or the Unix shell, both of which had significant limitations. C not only required developers to wrestle with the complexities of manually managing memory and to navigate a minefield of potential errors, but it also lacked a library of reusable code for everyday developer tasks, Image: Barry Warsaw requiring developers to reinvent the wheel with each new project. Meanwhile, the Unix shell had different problems -- it offered a suite of utilities for common tasks, but ran so slowly it couldn’t handle complex logic. The restrictions these languages placed on developers were such that, for van Rossum, creating his own interpreted language -- one that would borrow the best features from the ABC language -- really did seem like the best option. Van Rossum is pictured during the first Python “I basically thought ‘Well, why don’t I create my Workshop in discussion with Warsaw and Roger own language’, stealing my ideas from ABC but reducing Masse, who worked with Warsaw at the time. the project size from something that took three years to complete to something I can do on my own, as a skunk works project in three months, and thus Python was born,” he says. Van Rossum started work in earnest in late 1989, borrowing the name from his favorite comedy troupe Monty Python’s Flying Circus -- the association with snakes and the entwined Pythons logo came later -- and working on the project whenever he could. “I didn’t have a very rich social life at the time. So, instead of just watching TV, I would be coding, or sometimes doing both at the same time,” he admits. While Python was nominally created to help him at work, van Rossum sees that the impetus may have been more the challenge of creating a language of his own. “I don’t know how serious I was in believing this really would make me more productive. I think that, in part, I just really enjoyed the idea of starting a big project on my own, of laying out the code I wanted to lay out and designing it the way I wanted to. Programming is fun for me,” he says. 3 As unusual as it might sound for an individual to create created using identical syntax, and there was the their own programming language, van Rossum was familiar interactive prompt where you could type in good company. In the late 1980s, various major Python to immediately carry out calculations. languages sprang out of individual frustrations with the tools available to developers at the time. Larry However, while his two colleagues took to the Wall famously said he was driven to create Perl language and immediately started using it, van by how difficult it was to solve a problem while Rossum didn’t have huge expectations for its wider coding, as well as by an abundance of ‘laziness, adoption, having already experienced how difficult impatience and hubris’. Similarly John Ousterhout’s it was to get a programming language off the ground search for a better language to create interactive in the pre-internet age. tools for building integrated circuits led him to devise Tcl. Within just three months van Rossum While sharing software with the world today only had created a working prototype for Python as an takes a few clicks, in the 1980s it was an altogether interpreted language, one that he says was missing more laborious affair, with van Rossum recalling the modern features but would still be recognizable as difficulties of trying to distribute Python precursor the language used today. ABC. “I remember around ‘85, going on a vacation trip to the US, my first ever visit to the US, with a magnetic tape in my luggage,” says van Rossum. “I don’t know how serious I was in believing this really would make me Armed with addresses and phone numbers of more productive. I think that, in part, I people who had signalled an interest in ABC via just really enjoyed the idea of starting the rudimentary email system available at the time a big project on my own, of laying -- which wasn’t suited to handling anything as large out the code I wanted to lay out and as source code -- he travelled door-to-door posting designing it the way I wanted to. the tapes. Despite this effort, ABC didn’t really take Programming is fun for me.” off. “So, no wonder we didn’t get very far with the - Guido van Rossum, creator of Python distribution of ABC, despite all its wonderful properties,” he says. But as the internet revolution gathered steam, it would be much easier to distribute Python without a suitcase full of tapes. “The current day Python has a lot of important Van Rossum released Python to the world via the alt. abstractions that weren’t present at the time, but the sources newsgroup in 1991, under what was pretty language looked very similar,” he says. much an open-source licence, six years before the term was first coined. While Python interpreter still “At that point I had all the basic components of the had to be joined together into a compressed file from interpreter and the language working. Simple Python 21 separate parts and downloaded overnight on the programs from the first working Python interpreter Usenet network, it was still a vastly more efficient will probably still work today,” he says, adding that delivery mechanism than the hand deliveries of a functions were defined the same way, indentation few years earlier. worked the same, dictionaries and tuples were 4 “I was hoping that there would be some kind of success, but I had done at least one other thing that I had released and basically ended up being a flop,” he says. With his past experience in mind, van Rossum says it was a long time before he read anything into Python’s growing user base. Gradually he realized momentum was building and after some time regularly interacting with the Python community did he realize he had created something that could be successful.