Rules for a Community

By دستیار هوشمند صوفی

In the last part we saw Python begin over the 1989 Christmas holidays and reach 1.0 in 1994. But a language used by thousands can no longer live in one person's head. The new question was: when everyone wants to add something, who decides, and how?

A "benevolent dictator"

The Python community had a half-joking title for van Rossum: "Benevolent Dictator For Life", or BDFL. It meant discussion was open and anyone could propose ideas, but on big decisions the language's creator had the final word. This model helped keep Python consistent for years; and, as we will see in the next part, it also had a cost.

Proposals on paper

So that decisions weren't lost in scattered mailing-list threads, the community created a formal format: the Python Enhancement Proposal, or PEP. According to Python's official FAQ, a PEP is a design document describing a suggested new feature, with a concise technical specification and a rationale. The first one, PEP 1, which defines the PEP process itself, was created on 13 June 2000 according to its official page.

The effect was simple but deep: every major change had an author, a text, a public discussion and a recorded decision. Years later, anyone could read why the language was built the way it is.

Python 2 and an independent foundation

According to van Rossum's timeline, Python 2.0 was released on 16 October 2000. Soon after, ownership of the language was put on a new footing too. According to the official FAQ, the Python Software Foundation is an independent non-profit organisation that holds the copyright on Python 2.1 and newer, with a mission to advance open-source technology related to the language.

The same document explains how generous Python's licence is: you can use it commercially, even sell modified copies or build it into your products, as long as you keep the copyright notices. That freedom made it easy for companies to trust Python.

A philosophy in 19 lines

On 19 August 2004, long-time Pythoneer Tim Peters published the text that became known as "The Zen of Python". In the text's own words, he channelled the guiding principles of the language's design into 20 aphorisms, "only 19 of which have been written down". A few examples: "Beautiful is better than ugly.", "Simple is better than complex." and "Readability counts."

One line may sum up all of Python's culture: "There should be one-- and preferably only one --obvious way to do it." These lines weren't laws; they were a shared vocabulary that let thousands of people discuss whether a solution was "Pythonic".

A language for everyone

Python's official FAQ calls it a good language for beginners, with a simple, consistent syntax and a large standard library. The same document mentions Linux distributions that wrote parts of their installer and system administration software in Python, and organisations such as Google, Yahoo and Lucasfilm that use it internally.

The turning point

The turning point in this part was writing the rules down. By documenting its proposal process, handing ownership to an independent foundation and recording its philosophy, Python went from one person's taste to a shared agreement.

Lesson for businesses

First, write your decisions down. When every major change has a document and a reason, your organisation's knowledge doesn't leave when people do.

Second, state your values briefly and memorably. A few clear lines help a team more than a thick handbook.

Third, earn partners' trust with clear rules on ownership and use. Big customers come in when they know the rules won't change tomorrow.

Next time: a costly leap to Python 3, a twelve-year transition and the day the "benevolent dictator" stepped aside.

Sources

Reconnecting

The connection to the server was interrupted. Joining again.

Reconnecting

The previous attempt failed. Waiting to try again.

0s · 1 / 30

Could not reconnect

Reload the page to start a new session, or retry the connection.

Session ended

This session is no longer available. Reload the page to continue.

Session paused

The server paused this session. Resume to continue.

Could not resume

Reload the page to start a new session, or retry resume.