The Python Programming Language

There are many dozens of programming languages that exist in the tech universe today. In no particular order, Assembly, BASIC, C, C++, C#, Fortran, Java, Perl, Python, Javascript, PHP, SQL, Delphi, Visual Basic, Lua, Lisp, Go, Objective-C, Swift, ColdFusion, R, Actionscript, COBOL, Erlang, ABC, Haskell, ASP, A, B, D, E, F, F#, F*, G, Pascal, Tcl, YAML, SALSA are some of the languages out there for programmers to choose from. Some such as Java or Python can be used for anything. Some such as SQL are used for specific purposes, in this case for talking to SQL databases. Often more than one language is used on a particular application especially if it's big and complicated. Whatever it takes to get the job done, programmers will use.

Some languages are more popular than others and are used far more often. There are lots of reasons for this including developer preference, ease of use, extensibility, and the overall ease of finding developers who can work with them. To figure out which are the most popular current languages, we look to GitHub's annual Octoverse report where they list languages associated with the most new projects. According to GitHub, the second-most-popular programming language in 2017 was Python, knocking in Java, which was number 2 in 2016, into third place. It was a pretty good year for Python too as there were 40% more pull requests opened in 2017 than in 2016. Javascript is well-entrenched in the number 1 spot.

Note: GitHub is a repository for software projects, that is an online place where people can put their code to work on and show others. The way it works is that a software engineer creates a project or repository on GitHub and uploads their code to their repository. When they make changes, they do what’s called a “commit” and leave a note detailing the commit for other developers. Other developers can access the code, download it, change it, upload it, and commit those changes. This leaves a record of all changes so if the project goes off in a bad direction, they can go back to the older versions of the project. GitHub is an invaluable tool for both amateur and professional software development. In GitHub’s annual Octoverse report, they listed the languages of the projects with the most new projects associated with them, which is what we're using for the basis of this post.

 

The One and Three

Javascript, the most popular language on GitHub, is the scripting language for the web. Almost every website you visit has some sort of Javascript component to it, sometimes to a fault. It's what adds all the bells and whistles to web pages from those neat little image slide shows you view, to those quick error messages you get when you go to fill out a form incorrectly, to complex browser-based games. It has also become, because of Node.js, a backend language as well, meaning that it is not only doing stuff in the browser, it's also doing stuff on the server.

For a long time, Javascript was derided by programmers for a number of reasons, mostly that one cannot do a lot of things easily that one can do with “higher” languages. From people coming from regular software development backgrounds as opposed to web development, Javascript seems like a feckless pain in the ass, or at least it used to seem that way more but not as much now. Over time better coding practices and the development of certain "code libraries", which are for the most part files with a bunch of ready-made functions in them, made Javascript development much better, if not fun. JQuery, AngularJS, and BackboneJS are just a few of the libraries that made Javascript development in the past decade much better and organized on both the browser and server. But the big thing about Javascript is that it is the only front-end language (that is, a language that makes stuff happen in your web browser as opposed to the server it comes from) that all browsers support. For this reason and its growing use on the server, it has become the most widely-used programming language. 

The third-most-popular language is Java. First off, Java has absolutely NOTHING to do with Javascript. In fact, Javascript was given that name because Java at the time was getting popular and the people pushing Javascript thought it a good idea to give it a name similar to the other upstart language at the time. But they are nothing alike or at least they are about as dissimilar from each other a they are from any other programming language out there.

Java for the most part powers the world. That's not a huge overstatement either (although I admit it is a tiny bit of an overstatement) because it really it powers a lot. Java is a very powerful general use language that has many developers and tons of documentation behind it. Many of the devices you have in your home that have any circuitry and require software are likely to have been written in Java. Your Blu-ray player software was written in Java. Other well-known Java applications just to name a few include OpenOffice, Nasa World Find, JPC, Twitter (its front-end moved from Rails — a programming framework using the "Ruby" language — to Java many moons ago), and MineCraft. Do you own an Android phone? Those apps on there? Yeah, Java.

 

Python, but not the snake

Screenshot from Eve Online
EVE Online, the massively multiplayer online role-playing game (MMPORG), was written using a version of Python known as Stackless Python.

Python is a much-loved programming language. Of course it like everything else had its detractors, nine times out of ten those detractors just a bunch of curmudgeons who prefer bullshit and don't like well-formed and reasonable things. Python is simple, clean, and its syntax doesn’t require a lot of extra typing. It is a powerful true object-oriented language that is very adaptive and extensible, meaning you can add a lot of stuff to it to do other stuff effectively. That stuff comes in the form of "modules", and its these modules that really add oomph to the language. Wanna make games? Try out PyGame. Wanna make a robust web application? Try Django. Wanna make some graphs for your data? Take a look at Matplotlib. These modules and many others make most development in Python far easier than it usually would be. Other languages of course have similar modules and libraries, but with Python it just always felt easier (at least to the guy writing this). Python also checks all the boxes that most tech-dorks look for in a programming language — flexible, had a lot of uses, supports multi-threading, easy syntax, fast, tons of resources, easy to find other developers.

Python is great for general development as well as web application development. Dropbox, Google, NASA, Quora, Instagram, BitTorrent, Spotify, Reddit, are just a few of the big web entities that use a significant amount of Python in their architecture. As for games, Civilization IV, Battlefield 2, and Eve Online are all written in or make heavy use of Python. 

 

And now for something completely different…

Python was initially developed in 1989 by a Dutch programmer named Guido van Rossum, who was at the time working at the Centrum Wiskunde & Informatica (CWI) in the Netherlands on a distributed operating system called Ameoba. Rossum was trying to develop a scripting language for the operating system, that is, a language that people could use to create programs to run it. Prior to that, he had worked for four years at CWI on developing a programming language called ABC. That language didn’t really go anywhere, so development on it was cancelled and Van Rossum ended up working on Amoeba instead. 

At the time, Van Rossum didn’t see any existing languages that would have fit with the Amoeba project. So instead he decided to create a new language using and improving upon many elements from ABC. 

“I was familiar with Perl 3, but it was even more tied to Unix than the Bourne shell. I also didn’t like Perl’s syntax — my tastes in programming language syntax were strongly influenced by languages like Algol 60, Pascal, Algol 68 (all of which I had learned early on), and last but not least, ABC, on which I’d spent four years of my life.”

When it came time for a name, Van Rossum didn’t want to get too bogged down with it, so he simply named it after the first thing that came to his mind, which happened to be the British Comedy troupe Monty Python’s Flying Circus. Van Rossum was a big fan, but he also liked the sound of “Python”. It was short, somewhat edgy, and memorable. In addition, Van Rossum was going along with one of the programming traditions at CWI.

Guido Van Rossum, pictured here in 2006
Guido van Rossum (shown here in 2006) was the person behind Python. (Photo by: Doc Searls via Wikimedia Commons)

“The Monty Python team may not be famous for their advancement of science or technology, but they are certainly a geek favorite,” wrote Van Rossum. “It also fit in with a tradition in the CWI Amoeba group to name programs after TV shows.”

Van Rossum began working on Python in late December 1989, and a couple months later he had a working version. Throughout 1990, several developers who were part of the Amoeba group began working with Python and the language itself began to grow. Then in February 20, 1991, Van Rossum released Python to the world as an open-source project before the term had even been invented. 

Programmers around the world were intrigued by Python and many sent feedback and encouragement to Van Rossum. Over the next few years, Van Rossum and his group put out regular releases of the language, newsgroups were created, and more programmers got involved in the development. At one point, however, there came to be a realization in the Python community that it was too dependent on Van Rossum’s contributions to keep the language going, a problem most ably stated on a Python newsgroup post entitled “If Guido was Hit By a Bus”. So to remedy this possible issue, the program’s code repository was made available to anyone interested in seeing its development and put in-place was an open system for tracking bugs and patches for those bugs. Van Rossum himself by this time had gone to work in the United States first at the National Institute of Standards and Technology (NIST) and later at the Corporation for National Research Initiatives (CNRI).

Over the next few decades, the Python community grew as did the language’s popularity and functionality. Today Python is usually recommended as the first language that would-be programmers should tackle because of its power and easy syntax. 

You can read more about the early history of Python from Van Rossum himself here. Well worth a perusal if you're interested in computer history.

Categories
Pub date
12/05/2017

Advertisement