

The History of Python - bockris
http://python-history.blogspot.com/
Python is 19 years old and Guido Van Rossum is starting a new blog on the history of the language.  Here is the from his regular blog that announces it. http://neopythonic.blogspot.com/2009/01/history-of-python-introduction.html
======
stcredzero
"The ABC group wanted to isolate the user, as completely as possible, from the
_big, bad world of computers_...ABC should be the only tool they ever needed.
This desire also caused the ABC group to create a complete integrated editing
environment, unique to ABC"

The problem with this design choice, is that it isolates you from the rest of
the software ecosystem. This is why PHP became part of the LAMP stack and why
Smalltalk became isolated and esoteric. In this sense, Perl, Ruby, and Python
all made a beneficial choice to be good citizens in the Unix-like space.

------
lehmannro
See also Guido's introductory announcement for this post.
[http://neopythonic.blogspot.com/2009/01/history-of-python-
in...](http://neopythonic.blogspot.com/2009/01/history-of-python-
introduction.html)

------
PieSquared
One of the comments is good. Basically, it asks, why the need for semicolons
at all?

~~~
johnrob
Probably to make it easier for programmers who end lines with them as a knee
jerk reaction. After a stint of java or javascript, I find myself doing it
too.

~~~
eru
And you can put two or more commands on one line.

~~~
gaius
Yeah. Often it's bad style, but IMHO if you just need to do something like:

    
    
        x = 0; y = []; z = None
    

Then it is actually clearer to group them together, it means more "real code"
on screen at a time.

~~~
eru
I do not know whether that was a good example to show the benefits of the
semicolon:

    
    
        x, y, z = 0, [], None

~~~
lehmannro
While the semicolon is only a convenience it has some common use cases. For
example shoot-and-forget invokations of third party modules:

    
    
      import sys; sys.exit()
      import pdb; pdb.set_trace()
      import cgitb; cgitb.enable()
      import psyco; psyco.full()
      import pygtk; pygtk.require('2.0')
    

And of course it's pretty useful in environments where one-liner are easier to
handle:

    
    
      $ python -c "import mymod; mymod.test()"

~~~
gaius
Now that I look in my code I actually have:

    
    
        import matplotlib; matplotlib.use('Agg'); from matplotlib import pyplot

