PyCon: Day 3

by Jeremy Jones

Yesterday brought PyCon 2007 to a close. Well, sort of. There are sprints going on for the next few days, but the formal sessions are over. This was a great experience for me and I'm already looking forward to next year. I'll try to put my thougts together for a "PyCon 2007 as a whole" blog post later.

The first session was a keynote by Robert M. Lefkowitz entitled "The Importance of Programming Literacy". This talk was humorous, engaging, thought provoking, and almost bizarre at times. As a speaker, Lefkowitz is energetic and connected well with the audience. (At least, what he was saying connected well with me.) He challenged the thought of "computer literacy" being "ability to work the applications on a computer". He also challenged the thought of "programming literacy" being "knowledge of 'the classic texts' of computer science such as SICP, Kernigan and Ritchie, Stevens (network programming), and Knuth". He proposed an analogy of programming literacy to prose literacy. If prose literacy is knowledge and familiarity with classic works of prose, so programming literacy is knowledge and familiarity with classic works of programming by way of the source code. Taking the analogy further, he proposed that our works of programming could (and maybe should) work more like works of literature. Why is it broken up into multiple files? Why do we spend as much time (sometimes more) writing spoken/written language explanations of what the code does rather than let the code speak for itself? He hinted that perhaps the future of programming would include some multimedia file format for source code which would include requirement specifications, coding reasons why an algorithm is implemented a certain way, and the kitchen sink to boot. I thought this was insightful, but I don't have a clear picture of what a programming environment would have to look like.

The next talk I attended was "You vs. The Real World: Writing Tests With Fixtures" by Kumar McMillan. He expressed the importance of testing applications in as real world of a sense as possible. The main focus of the talk was to walk through such cases using the "fixture" package.

Next, Kevin Dangoor gave a talk entitled "The Wonderful World of Widgets for the Web". Basically, Kevin gave an overview of the new ToscaWidgets toolkit which was recently spun off from the TurboGears project. These widgets provide a standard way of including "things" in a page (such as a forms) which include CSS for styling, JavaScript for a richer experience, and can also perform validation.

After Kevin's talk on widgets, I attended "The Essentials of Stackless Python" by Christian Tismer. I had attended another Stackess talk on day 1 by Andrew Dalke. Christian's talk delved a little deeper into how things actually work and he even tied some things in to PyPy.

I attended two testing sessions next. The first was "twill, scotch, and figleaf -- tools for testing" by Dr. C. Titus Brown. Titus walked through using his tools (twill, scotch, and figleaf) with TurboGears and Django. This was a really informative talk and showed how easy it is to get started testing. The next testing talk was "Pybots: Testing Python Projects in Real Time" by Grig Gheorghiu. While interesting, this talk seemed slightly less applicable to the typical user. The idea of PyBots is that it allows you to automatedly test a Python application against various versions of Python on various OS and hardware platforms.

The final session that I attended was "Weaving Togethehr Women and IT" by Anna Martelli Ravenscroft. Anna discussed the disproportional ratio of women to men in the IT industry and tried to give some insight into the reasons for this. A lot of the reason seemed to be "we don't know for sure". But there seemed to be good indicators that much of it is specifically cultural. She brought up a topic that seemed to pop up quite a bit in the conference: basically computer classes in elementary and middle school are mostly worthless. They focus on "tools" such as MS Word, Powerpoint, etc. Her point on this was that such basic courses are relevant if you're interested in becoming a secretary, but not much more. I think it's always good to think about such things as her topic which challenge thoughts you may not even know you had.


2007-02-26 08:59:38
"almost bazaar at times"? Did you mean bizarre? Even that doesn't quite fit.
Jeremy Jones
2007-02-26 09:26:31

Yes, thank you. I did mean "bizarre". And I think it totally fits. Ideas as revolutionary as what r0ml was proposing are almost by definition bizarre. And some of the connections he was making were so out of step with conventional thinking that they almost have to be thought of as bizarre. Now, if you took me to mean "the man was bizarre", then, no, that wouldn't fit. But the talk was so interesting and non-conventional and thought provoking that at times, bizarre (when I got the proper spelling for it - thanks) was the only word worthy of what he was stating. Again, thank you for catching my error. I've corrected it.

Barry Hart
2007-02-26 12:29:30
I really liked the talk overall; it was very thought provoking.

However, I did not agree with his assertion that code is split into multiple files only for technical (not design) reasons. Most code I work with is split into files based on logical groupings - a single class or related classes/functions. In Python, Java, C++ and other languages, data or functions may be declared visible only inside that one file, helping to reduce the visible "surface area" of the code.

Jeremy Jones
2007-02-26 14:02:08

In the future that Lefkowitz was hinting at, it could be that "files" aren't a particularly interesting was of looking at a big group of source code. It may be that everything is one "file" on the filesystem which contains a virtual filesystem within it. Or it could that things for developers remain virtually unchanged where we structure our files as we see fit and maybe adjacent groups "mount" our files and gain the particular view that they're interested in. This whole idea is anybody's guess at this point.