Python: From Hobby Project to Global Ubiquity
"The language, the community, the ecosystem, the market, the whole thing has had such an impact on humanity. Today, I think it's safe to say that almost anywhere there's a computer, there's probably some Python."
Humble Beginnings: Amsterdam in the 80s
Python's story begins at CWI, a Dutch research facility, known for major programming language developments like Algol 60 and Algol 68.
Frustration with Existing Languages
- Lambert Meertens found programming difficult to teach to artists due to the need to understand complex computer hardware details.
- Low-level languages of the time were designed when computers were expensive and programmers were cheap, prioritizing machine efficiency over ease of programming.
- This led to the idea of a language that was easy to learn, teach, and use, especially for beginners, without messy hardware details.
The ABC Project & Guido van Rossum
The solution was the ABC project, designed to be user-friendly. Guido van Rossum was hired to expand its prototype.
- The ABC language was released in 1985.
- Despite its potential, ABC reached very few people because the web didn't exist, and distribution involved sending floppy disks via mail.
- The project was eventually discontinued, leaving Guido disappointed after 3.5 years of hard work.
The Spark for Python
- Transferred to the Amoeba distributed operating system project, Guido found C inadequate for writing user applications.
- He wished for a language like ABC, but ABC was too high and abstract for operating system interactions.
- Seeing Perl as not a good alternative, Guido decided to create his own programming language to bridge the gap between C and shell.
Python's Birth: Christmas Holiday Project
Guido designed and built a new language for the operating system, based on principles learned from ABC, during a Christmas holiday.
- Key feature borrowed from ABC: use of indentation for statement grouping.
- Guido dropped aspects of ABC he disliked.
- Named Python after Monty Python, incorporating a sense of fun.
Early Users and Interactive Design
- Sjoerd and Jack Jansen were crucial early users, providing feedback and finding bugs.
- Python was the first real interactive systems programming language, allowing immediate execution without compilation, making it "much more fun to use than the old programming languages."
Open Source & Early Adoption
CWI allowed Guido to distribute Python to the world as open-source.
- The first release was difficult, distributed via Usenet (a network of bulletin boards) in segmented, ASCII-encoded files.
- Early feedback arrived quickly via email and Usenet.
- One of the first impressive experiences was at Johnson Space Center in the shuttle program, where Python was used as a scripting language for C++ libraries.
- Python took off slowly, aided by the rise of the internet and computers moving to people's desks.
Building the Community (1990s)
A growing, supportive Python community emerged, likened to a "big family."
- Guido moved to the United States as most Python users were there.
- The first Python workshop was held in November 1994 in Gaithersburg, Maryland, with about 20 attendees. This marked the beginning of the Python community.
- CNRI (Corporation for National Research Initiatives) hired Guido, allowing him to work full-time on Python. CNRI's mission included fostering research and cultivating internet-based technologies.
- python.org was set up, though python.com was unfortunately taken by a "stupid porn site."
The Benevolent Dictator for Life (BDFL)
- Guido was dubbed the "Benevolent Dictator for Life" (BDFL), a title he held as the ultimate decision-maker for Python's development.
- His style was to welcome all ideas but ultimately choose what he believed was right for the language.
The Zen of Python
- Tim Peters, an early contributor, codified Python's philosophy in a poem called "The Zen of Python" (originally "The Way of Python"), in response to community questions about the language's philosophy.
- Key tenets include: "Beautiful is better than ugly," "Explicit is better than implicit," and "Readability counts." This was seen as a playful yet serious reflection of Python's aesthetic.
Challenges and Growth (Early 2000s)
The dot-com bubble and its burst presented challenges and opportunities.
- Guido briefly joined BeOpen.com in early 2000, where he worked on Python 2. However, BeOpen quickly became incompetent and ceased paying salaries.
- This moment was critical; Python was not yet big enough to survive its core developers going separate ways.
- Digital Creations (later Zope), a company with a large commercial application built on Python, rescued Guido and his team, hiring them to ensure Python's future. This was a "critical point in Python's life."
- The Python Software Foundation (PSF) was established as an independent organization to own Python's copyright and license, ensuring it wouldn't be beholden to any single company.
- PyCon became the annual conference, a crucial "stool of the miracle of Python," fostering community and collaboration.
Python's Expansion: Web & Data Science
Python's utility expanded beyond scripting, becoming a powerful platform for web and data initiatives.
- Python saw "spikes when certain specialties pick the language up."
- It became a powerful platform for web servers and services.
- Dropbox was an early example of a company building production desktop software (both client and server) entirely in Python, demonstrating its scalability and competitive advantage over C++ or Java.
- YouTube was also notably built with a "couple of people writing Python" initially, outcompeting larger C++ teams. Python acted as a "force multiplier."
Data Science & Numeric Communities
- The numeric community (science and engineering) was one of the first specialty communities to widely adopt Python, driven by the need for high-performance matrix operations.
- Guido was "open to the needs of people who are not traditional programmers."
- In the early 2000s, Python's open-source nature was a significant advantage over paid alternatives like MATLAB, allowing users to freely share and adapt code.
- Around 2009-2010, "data science" emerged, with Python being well-positioned for data processing, modeling, and predictive analytics, even in the financial industry.
- Anaconda Distribution: As scientific and data libraries (like NumPy and Pandas) were complex to install due to underlying C++/Fortran code, Continuum Analytics (later Anaconda) created a Python distribution to simplify installation, making Python "super popular" in the data science world.
- Python and R were prominent in data engineering, but Python's end-to-end capabilities from data collection to analysis gave it an edge.
The Python 3 Transition (2007 - 2020)
A major, controversial change occurred with Python 3, aimed at long-term improvements but breaking backward compatibility.
- Python 3.0 was released in December 2007. The core issue was that changes would break existing Python 2 code.
- The community initially resisted, finding the effort to rewrite code not "worth it" and the transition feeling like a "top-down decision."
- The most controversial change was Unicode handling, making all strings Unicode and requiring a 'b' prefix for bytes, which was "incredibly disturbing" for developers parsing mixed data.
- Companies like Dropbox faced monumental tasks, migrating millions of lines of Python 2 code.
- Python 2.7 continued to be maintained for a decade. Migration tools like `lib2to3` and `Six` were developed, and the language itself became more backwards compatible.
- The turning point was around Python 3.4 and 3.5, which added features that drove widespread adoption.
- Instagram's successful migration to Python 3 (9-10 months for its large production deployment) provided crucial "vindication" and confidence for other companies.
- The final push was the declaration that Python 2.7 would no longer receive security fixes, making Python 3 a security imperative.
- This "decade long process" for migration was "a lesson learned" for the community, leading to the decision that "there will never be even a Python 4" to avoid a similar painful transition.
Diversity and Inclusivity
The Python community recognized and actively addressed issues of diversity.
- An anonymous t-shirt with "Python is for girls" prompted recognition of the lack of women in the community.
- Jessica McKellar, a PyCon co-organizer, championed efforts to increase women speakers at PyCon, leading to a significant increase from 1% in 2011 to 40% in 2016.
- Guido van Rossum personally committed to training and recruiting at least two female core Python developers.
- Mariatta was one of the first to take up this call. Despite initial fear and feeling undeserving, she reached out to Guido and received mentorship.
- Mariatta became the first woman ever to become a Python core developer and has since become a role model, running PyLadies Vancouver and helping with PyLadies Con.
- These efforts fostered a more welcoming environment, demonstrating the community's "ability to have respectful and real reflection and dialogue" to move forward.
Guido's Resignation and Community Governance
A contentious language change led to Guido's resignation as BDFL, prompting the community to establish new governance.
- The "Walrus Operator" (PEP 572), a minor but syntax-changing feature allowing assignments in expressions, sparked "so much passionate feeling" and a "bit of a ruckus."
- The public debate, particularly on platforms like Twitter, intensified the conflict.
- Guido, convinced it was the right decision, accepted the PEP but felt "miserable" from the "attacks."
- In 2018, Guido resigned as BDFL, famously stating he was giving himself a "permanent vacation" and challenged the community to "figure something out for yourselves."
- This created uncertainty as Python had always been run under the BDFL model.
- The core developers faced the stress of deciding on a new governance model, receiving various proposals from "another BDFL" to "committees and councils."
- They eventually settled on a five-person steering council, distributing responsibility and stress. Guido served on the first council to provide continuity.
- This community-driven replacement of leadership was "essential to it being accepted."
Python Today: Pervasive Impact and Future
From a hobby project, Python has far exceeded expectations, becoming one of the most popular programming languages globally.
- Python has made critical thinking more approachable by allowing people to write interesting code with minimal learning.
- It's literally on Mars, used for the Perseverance rover.
- The emergence of AI/ML has made Python incredibly important, now a "business driver."
- Python's ecosystem boasts "centuries of engineering time" in libraries like TensorFlow, PyTorch, SciPy, NumPy, Numba, and Pandas.
- Its simplicity and accessibility appeal to both professional programmers and scientists.
- Today, LLMs for code generation often default to Python for back-end data analysis.
- Python continues to evolve, maintaining its vibrancy and relevance.