I attended the PyCon 2008 in Chicago March 13 – 15. It was a cool conference – it was partially on a weekend and it was right near an airport and it was in a relatively inexpensive location. The Holiday Inn Crowne Plaza at Chicago’s O’Hare airport is an excellent conference venue.
You can see the videos of the conference up here:
http://www.youtube.com/user/pycon08
I am pretty excited about Python after teaching (si182) this past semester – I wanted to get a sense of the nature of Python and perhaps run into other teachers. I also came to the conference hoping to meet Guido von Rossum and do a quick video of him for my “Internet and Web Pioneers” series.
Since this was my first PyCon – I made a few mistakes. First I wore a jacket – big mistake. Anything but a t-shirt immediately indicates you are a noob. This is a situation where a jacket+kahki’s does not work. Of course I had not brought any of my cool street-cred enhancing t-shirts so I was stuck with my dorky and out-of-place business casual.
After I registered for the conference I set up my camera to take stop-motion video of registration – in case I got to interview Guido. As I was walking around in the hallway – there he was! Without thinking I whipped out my camera and took a bit of video. After abut 15 seconds I realized that he was talking about kids and being sick from school – at about the time I realized it was a personal conversation, he realized that he was being taped. He was not pleased – he motioned me over and told me to erase the footage – which I immediately did – apologizing profusely and feeling like a total idiot. Sonce I was the only guy in a jacket, any chance of being nice to him and getting an interview was lost. Within the first thirty minutes of my time at PyCon – I had established myself with Guido as a rude person. Ah well – time to pick myself up and dust myself off and move forward – no point feeling sorry for myself.
The first session was a keynote by Guido – so I decided to tape it all and edit his keynote as my first cut of a Guido video for my SI182 class. So I went in and got a really good seat so I could video tape his whole keynote. As I taped I was sure that he was looking right at me (the rude guy in the suit) and that he was still ticked at me – but more likely this was all in my mind. He was clearly on his game during the PY3K talk – making jokes and interacting with the audience.
Guido’s keynote was a replay of his “Python 3000” keynote from a year earlier – he apologized to the audience members who had already seen it – but for me it was all new and completely fresh. Guido is called the “Benevolent Dictator for Life” by the Python community and this talk was clear evidence of why he absolutely deserves the title. Unlike an end-user application, a programming language is smaller conceptually even though there are millions of small details. Clearly Guido kows every little corner of the core language. It was comforting to know that he was keeping track of it all.
What impressed me the most about Python 3000 is how carefully Guido thought about every little thing and understood every detail. The key is that Python 3000 allows him to do some non-upwards compatible changes in the language that are essential for Python to move from a niche language to an Enterprise language. I was impressed as he went into every little detail – it was clear that he was adopting ideas from other languages like Ruby and Java – he saw features such as universal Unicode support that was supported better in Ruby than in Python and addressed it in Python 3000.
At the same time, he is willing to fix simple things like integer division truncating. In Python 3000 – integer division gives a float. While this seems to be simple, it is brilliant and bold – one of the key wins of Python is that it is a powerful language that is quite approachable by beginners. A little thing like integer division truncating is just a silly notion from the C language – over 30 years ago – there is no reason to keep it just for “tradition”. While many may feel that this is messing with the primal forces of nature, Guido realizes that the definition of “what is a language” needs to change over time and that it is OK for Python to be the first to do “the right thing”. It was ironic that I was giving a midterm at the time and one of my questions was about integer division truncating. Integer division truncating is so “dumb” that I have to specially call it out on a midterm to help students remember it. Also I cannot tell how many times the students programs had bugs when computing an average because they had an integer count. Python 3000 has lots of little good ideas.
I kind of wish Python 3000 would improve the OO syntax in Python. Frankly, some additional upwards compatible syntax (almost pre-processor style) could make OO code look much cleaner in Python – but that is not to be. Perhaps the new argument annotation will show the way forward in that area.
After the keynote the next talk I attended was Kirby Urner – Kirby runs the Edu-sig for Python – here is his talk:
http://www.youtube.com/watch?v=hbeHdg8mtdc
His talk is a brilliant wander through various approaches to teaching children mathematics – for me as a teacher his approach and insight was quite useful. He talked about how the whole K-12 math education is less about teaching math understanding and more about scaling the “Calculus mountain” – and implicitly sorting students – by washing most of them out of math by overly difficult material. As someone interested in K12 math education – I found this fascinating – even if it were a little impractical to implement :).
In the evening I went to the Education BOF – this was great – I met a number of cool people also very much interested in Python and education.
I met Dr. Andrew Harrington from Loyola University who teaches a beginning Python class at Loyola.
http://us.pycon.org/2008/tutorials/Python101AHarrington/
I also met Anna Ravencroft who is a co-author of the O’Reilly Python Cookbook and talked to Anna about techniques for teaching SI182. I also attended Anna’s session on data extraction with Python.
http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973
I talked to Anna about the use of Python as a data-grokking language.
After I talked to folks about teaching using Python at the college level I also listened to some of the other sub-groups talking about One Laptop Per Child and the approach to learn about math through wooden blocks (Gattegno method). This was all pretty fascinating. I wanted to learn how to use the colored blocks to teach common denominator. It has to do with thinking of multiples as infinite series and showing the concept graphically with the blocks. I have to think about that some more.
The next morning I went to a topic called “Using PyGame and PySight to Create an Interactive Halloween Activity” presented by John Harrison or Insight Industries. This was probably one of the most entertaining presentations that I have ever been in. He used a Macintosh with built-in camera and a laser pointer and a computer projector to make an interactive halloween game in his garage. He did it just because he wanted to learn PyGame – and because he is a very cool dad. Here is a video:
http://www.youtube.com/watch?v=S7PkSFFpkYI
I also went to a talk titled Using Python To Teach Object-Oriented Programming in CS1 by Dr. David Letscher. David is a co-author with Dr. Michael H. Goldwasser of the book titled “Object-Oriented Programming in Python” (http://prenhall.com/goldwasser). I had looked at this book for teaching SI182 but decided it was too Object-Oriented – too focused on CS concepts and not enough on just using the language to get stuff done. But since I was watching the talk *after* a whole semester and realized that properly presented, OO concepts can be helpful even to the beginning programmer – I liked his talk and learned a good bit from it.
I prepared a lightening talk about SI182 – but there was not time – it was probably just as well – all in all I felt really intimidated by the coolness of the Python folks. Here is my talk that I wanted to give but never gave:
http://www-personal.umich.edu/~csev/talks/2008/2008-03-15-python-light.pdf
Lighting talks are a cool thing – sign up the day of the talk – you get five minutes and then the hook – using two projectors – a new speaker is up every five minutes.
I also attended a session where the Python Software Foundation chair talked for a while. As a person who was part of setting up the Sakai Foundation I found the culture and relationship between the Python Foundation and the open source community to be quite fascinating. During the talk I surfed the PSF web pages to learn more about the PSF.
I found the PSF web pages simple and easy to read (while I was listening to the talk) I was quickly able to find a clearly articulated set of mission and goal statements:
http://www.python.org/psf/mission/
If you look at the committees of the foundation, you can see that the focus of the foundation is very much supporting the open source community and nurturing independent contributors:
http://www.python.org/psf/committees/
If you look a little further down the bylaws – the only way to become a PSF member is to contribute:
http://www.python.org/psf/membership/#how-does-one-become-a-member-of-the-psf
This is very similar to Apache where the requirement of contribution and demonstrated long-term commitment to the common good and to the open source community acts as a filter to entering into foundation governance. I could see no indication that the Foundation attempted to govern the technical direction of Python – this was left to the open source community led by Guido (Benevolent Dictator for Life).
One thing that particularly impressed me was the devotion that members of the Python community showed toward the overall community. This was clearly far more than a technical collaboration. At one point the conference chair told a story of how he had a rough patch in his life and how his involvement in and support from the Python community (emotional and financial) helped him get though the rough bits in his life and turn things around.
The Python Software Foundation spent $160,000 in 2006 with the following expense breakdown:
http://www.python.org/files/psf/records/financials_2006.pdf
If you look at what the money is spent on you can see the top expense is the conference followed by grants for community members to attend the conference. You can clearly see the focus on nurturing the community.
Summary (finally)
I came to PyCon 2008 with three perspectives: (1) as a teacher looking for help on how to teach Python more effectively, (2) as a computer scientist / architect wondering if Python has a place in the enterprise application space, and (3) as an Open Source thinker and fellow traveller in open source governance.
As a teacher, I was very pleased – I learned a lot – I do wish there were more talks on education so I could have learned even more.
As a computer scientist / architect – I was very pleased – Guido has Python well in hand and has a broad based and strongly committed open source community. Google clearly is providing a high level of support as well. Python seems to be the “language of Google”. The Python 3000 talk was wonderful – it gave me a lot of confidence of the future of Python and the amount of deep thinking that was going on as Python evolves. Python will not rest on 18 years of success – Guido wants to add the most modern features and at the same time keep Python the most approachable programming language on the planet. And looking at Python 3000 he is both improving and simplifying the langage at the same time.
Looking at the Python Software Foundation I was also impressed – it seems to have a very clear mission and goals and clearly understands its role in the Python community. The Python Software Foundation is an important element in the long-term viability of the Python effort.
All in all I was very excited and expect to find ways to increasingly use Python in the courses I am teaching. Python seems like a great bet as a language.