The European Python community came together in 2005 for the annual EuroPython conference, held as in 2004 at the campus of the School of Architecture at the Chalmers University of Technology in Göteborg, Sweden. EuroPython brings together developers, designers and business people from the Python and Zope communities, where Zope is a Python-based open-source application server for building content-management systems, intranets, portals and custom applications. The conference attracts a good mix of people, from those who have just started to learn about Python to more experienced users. Also, the "benevolent dictator" and inventor of Python, Guido van Rossum, was again present at the conference and, as usual, always available for a chat.

The 100 talks presented during the three days were categorized into 12 "tracks" and covered a wide range of activities, including success stories of using Python in companies as well as educational talks and tutorials. Frameworks written in Python that help to ease the life both of developers and users were also presented to the attendees, who numbered around 270.

A common theme in the tracks was the methodology used for the development of projects. The clear favourite here was the "agile process", used in virtually all large projects. The main feature of the agile process is that it is a lightweight yet disciplined process aimed at making software development more predictable and efficient. Some, like the Zope and PyPy projects, have even established special teams to analyse and improve the development process. Agile methods emphasize real-time communication, preferably face-to-face, over written documents, and they attempt to minimize risk by developing software in short slices of time, called iterations, which typically last one to four weeks.

One such suggestion is "sprint-driven" development, which makes the distributed development effort more efficient, significantly increasing productivity. A "sprint" is a two- or three-day focused development session, where a maximum of 10 developers get together in a room and focus on building a particular subsystem. Sprints are lively bursts of development activity and have proven to be very effective and successful. A panel discussion on methodologies wrapped up this theme, addressing how tools and artefacts can be used in various types of "sprints" (coding, design, requirements, tutorial sprints and so on) to improve the overall product.

In one user example a team of only three people from the R&D department of a pharmaceutical company developed a flexible tool (with around 35,000 lines of Python code) in less than three years. This is now deployed and used by the 1000 targeted users. The success of the project was attributed to good communication, frequent and intensive testing, an excellent architecture and the use of Python as the language of choice for the implementation. The importance of the close interaction between the scientists who use the tool and the software developers who wrote it was emphasized, especially the fact that the developers often had to follow frequently changing requirements.

A definite highlight in the tutorial track for newcomers was the "batteries included" tour of the standard modules library that comes with Python. Also very well received was the tutorial on "Acceptance Testing Using TextTest", a tool that can help developers in various ways. TextTest can, for example, measure CPU time and other system information, and notifies the developer if one of the values is outside a tolerance margin set by the user. In addition, this tool can be used to test a graphical user interface (GUI) by recording which methods and functions the GUI software layer calls then "playing them back" in a later testing session and comparing the results. These tests can be run in batch mode (ideal for test runs during the night) or in parallel mode using various Grid engines (SunGridEngine, LSF, etc).

As every year, one of the two keynote talks was given by van Rossum, from the Python Software Foundation, who presented new features that will be included in future Python releases, as well as giving reasons for rejecting other requests. The second keynote talk was by Steven Pemberton of CWI Amsterdam, who is best known for his efforts in the World Wide Web Consortium (W3C), and is the chair of the working groups responsible for the XHTML and XForms standards. He was once involved in the development of the ABC language, the forerunner of Python, where he worked together with van Rossum. Pemberton gave an inspiring talk entitled "Hypothesis: Programmers are Humans Too!", arguing that computing languages - the interfaces that the programmers see - have not evolved significantly over the past 30 years. He concluded that it is better (and easier) to change programs than programmers.

The conference concluded as usual with the "lightning talks" session of short talks - a time limit of five minutes was strictly controlled, but in a humorous way. These were in general very illuminating and ranged from specific technical issues to a very lively demonstration on how to give a presentation as well as a call to collect sonnets from the Python community. Other "lightnings" covered new developments of tools and modules for a personal financial management system, for managing WiFi cards under Linux, for an implementation of the XPath 1.0 subset for ElementTree in pure Python, and a library for morphing splines.

Some of the short demos showed how to use Python on a Nokia phone to communicate with a GPS personal digital assistant (PDA) via bluetooth. A short demo from van Rossum showed what you can do with the new generators, which are Python's mechanism for lazy evaluation of a function that would otherwise return a space-prohibitive or computationally intensive list.

• The next conference will take place at CERN on 3-7 July 2006.

Author:
Compiled by Hannelore Hämmerle and Nicole Crémel