July 10, 2013
This article was contributed by Martin Michlmayr
EuroPython 2013
The EuroPython 2013 conference in Florence,
Italy opened with a keynote by Van Lindberg about the next twenty years
of Python. Lindberg, a lawyer with an engineering background, is the
chairman of the Python Software Foundation
(PSF) and the author of the book Intellectual Property and Open
Source (reviewed by LWN in 2008). His keynote looked at the
challenges facing the Python community and the work underway to ensure that
Python will remain an attractive programming language and have a healthy
community for the next twenty years (and beyond).
The design philosophy of Python
Lindberg began his keynote with a retrospective of the last twenty years of
Python. He described the origins of Python as a skunkworks
project, which led Guido van Rossum, the creator of Python, to a number of
interesting design choices. One is that Van Rossum borrowed ideas from
elsewhere, such as ALGOL 68 and C. Another design approach was to make
things as simple as possible. This involved taking the same concepts and
reusing them over and over again. Python also follows the Unix philosophy
of doing one thing well, he said. Finally, perfection is the enemy
of the good, as "good enough" is often just that. Cutting corners is
allowed, as you can always go back and improve it later. Lindberg
summarized that Van Rossum "got a lot right in the early days".
Lindberg noted that Van Rossum also succeeded in creating a community
around Python. Lindberg identified four factors that were crucial for the
success
of Python. First, Python was an excellent language. This was a necessary
basis because "otherwise there's nothing to gather and rally around".
Second, Van Rossum chose an open source license even before the term "open
source" was invented. Third, Van Rossum encouraged a sense of humor,
naming the language after the Monty
Python crew.
Finally, Python had a sense of values.
The values behind Python, in particular, are what differentiates Python from
many other programming languages. Lindberg asked the audience whether they
knew about
"import this". This is an Easter egg in
Python
which displays the Zen of
Python, the guiding principles
behind Python. Unlike Perl, which proudly proclaims that there's more
than one way to do
it,
Python encourages a certain programming style. This is reflected in the
Zen of Python, which says that there should be one — and preferably
only one — obvious way to do it.
Challenges for the Python community
Lindberg emphasized that Python is a remarkable story of success. There
are hundreds of thousands, maybe even millions, of people using Python as part of their jobs. Python is widely deployed — it
has become the de facto standard in the movie and animation industry, is
overtaking Perl in bioinformatics, and is the implementation language of
two of the leading cloud platforms. Python is also a significant player in
education, "finally replacing Java as the primary teaching language for a
lot of universities", he said.
Despite the success, Python is facing what Lindberg described as "market
share challenges". JavaScript, which used to be stricken by buggy,
browser-only, and inconsistent implementations, has become a fairly big
competitor in the desktop and server spaces, and particularly in mobile.
Lua is increasingly used as an embeddable extension language. Lindberg
sees Go as another contender. What makes Go attractive is its concurrency
and ability to create easily deployable binaries that you can just drop on
a system and run. "Frankly, deployment is a challenge for us", admitted
Lindberg, as are mobile and other areas with highly constrained space
requirements. Lindberg also mentioned the statistical and graphic
abilities of R as a potential
competitor.
Asking "why do I care?", he explained that it's important to keep growing
— otherwise Python will end up where Smalltalk and Tcl are today. He
rhetorically asked the audience when the last time was that anyone did
anything interesting in Tcl. Noting that these are fantastic languages,
Lindberg argued that "they have died because they have not grown". It's
not just the language, but also the community around it, that can die. He
observed that in addition to technical challenges facing Python, there are
also challenges with scaling the Python community that need to be
addressed. Lindberg believes that ten or twenty years ago it was enough to
focus on the programmer, whereas these days you have to form a culture around
programming.
There is something special about the Python community, according to
Lindberg. He quoted the mission of the Python Software
Foundation, which is to "promote,
protect, and advance the Python programming language, and to support and
facilitate the growth of a diverse and international community of Python
programmers", observing that "these are important words". Lindberg
argued that the current community is getting older and that actions have to
be taken that will create the Python community twenty years from now: "if
we don't build and grow the community, it will go away".
Big changes coming
Lindberg emphasized three areas that the Python Software Foundation is focusing
on to grow the Python community, now and in the future. One is the Code
of Conduct the PSF adopted in
April. The Zen of Python has been important in defining Python, but its
focus is on code. The Code of Conduct, on the other
hand, captures what the community itself should be like — it should
consist of members from all around the world with a diverse set of skills.
He said that a member of the Python community is open, considerate, and respectful:
members are open to collaboration, to constructive criticism, and to
fostering an environment in which everyone can participate; they are
considerate of their peers; and they are respectful of others, their
skills, and their efforts. The Code of Conduct condenses what is great
about the Python community. "It's about being the best people that we can
be and being the best community that we can be", Lindberg said. Alluding
to Python's reputation as the language with batteries included, he
summarized that "Python is the language with community included".
The second focus for PSF is education. As we're all getting older, we have to
think about where the next generation is coming from, Lindberg said. He
told the
story of Sam Berger, an eleven year old school boy from South Africa, who
attended
PyCon
and participated in professional level tutorials and classes. This is an
illustration of where the next generation of Python leaders is coming
from. In order to encourage that next generation, the
PSF is supporting initiatives to promote young coders, such as making a
curriculum
to teach kids Python available online. Lindberg is also
very supportive of the Raspberry Pi. He
reminisced about the 80s when computers booted into BASIC. The default
way to interact with the computer was through programming. If you wanted
to do something else, you had to make an explicit decision. This led to
an entire generation that understood that computers are tools — tools
that won't break if you play around with them.
Finally, the PSF itself is adapting to better serve the needs of the Python
community. It is working on a new web site (a preview of which can be
found at preview.python.org). The design goal
of the new site is to make it easy for the community to get involved. It
is also putting a lot of thought into representing the community, and there
will be efforts to address various needs, such as learning Python
or teaching Python. Lindberg also lamented that the PSF is not broad and
inclusive enough. Membership in the PSF currently requires a nomination
from an existing member, but Lindberg believes that every member of the
Python community should be a member of the PSF. In April, the PSF voted to
completely redo its membership program and to open up membership to anyone.
Answering a question from the audience, Lindberg clarified that basic
membership will be available to anyone who signs up. Further rights, such
as voting privileges, will be given to those members who have demonstrated
a commitment to the Python community, such as by contributing code,
documentation, or test cases — or by organizing events.
Lindberg closed by saying that the PSF is "changing to be your home". It
is fundamentally saying that "we need each of you" and that "this is all
about you". This is the most significant change the Python community has
seen since the formation of the PSF, according to Lindberg, and it's about
building the next twenty years of Python.
(
Log in to post comments)