mirror of
https://github.com/kennethreitz/kennethreitz.org.git
synced 2026-06-05 22:50:17 +00:00
46 lines
3.6 KiB
Markdown
46 lines
3.6 KiB
Markdown
# Python 2 vs Python 3: A Sacred Love Story
|
||
|
||
<iframe class="speakerdeck-iframe" style="border: 0px; background: padding-box rgba(0, 0, 0, 0.1); margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 100%; height: auto; aspect-ratio: 560 / 420;" frameborder="0" src="https://speakerdeck.com/player/c5b0ff40c2a801314e2706393c0335dc" title="Python 2.7 and Python 3: A Sacred Love Story" allowfullscreen="true" data-ratio="1.3333333333333333"></iframe>
|
||
|
||
|
||
## Introduction
|
||
|
||
- **Python 2.7: A Love Story** explores the emotional and practical challenges faced by the Python community during the transition from Python 2.7 to Python 3<label for="sn-python3-transition" class="margin-toggle sidenote-number"></label><input type="checkbox" id="sn-python3-transition" class="margin-toggle"/><span class="sidenote">The Python 2 to 3 transition, spanning over a decade (2008-2020), was one of the most challenging language migrations in programming history, involving breaking changes to fundamental language features.</span>, emphasizing the importance of uniting these two versions.
|
||
|
||
## Evolution of Communication
|
||
|
||
- **Historical Context:**
|
||
- Early human communication was one-to-one, evolving to one-to-many with the advent of the printing press, and eventually to many-to-many with the internet.
|
||
- The internet democratized information sharing, allowing anyone to publish and access a vast array of content.
|
||
|
||
- **Implications:**
|
||
- The shift in communication methods parallels the evolution of programming languages, where Python has become a crucial tool in this new era of many-to-many communication.
|
||
|
||
## The Zen of Python
|
||
|
||
- **Core Philosophy:**
|
||
- Python’s guiding principles, known as "The Zen of Python," emphasize simplicity, readability, and explicitness, making it a beloved language among developers.
|
||
|
||
## The Fear of Python 3
|
||
|
||
- **Division and Fear:**
|
||
- The transition from Python 2.7 to Python 3 created a division within the community, leading to fear and uncertainty among developers.
|
||
- Issues such as differences in string handling and the complexity of Unicode<label for="sn-unicode-complexity" class="margin-toggle sidenote-number"></label><input type="checkbox" id="sn-unicode-complexity" class="margin-toggle"/><span class="sidenote">Python 3's strict separation of bytes and strings, while ultimately beneficial, required developers to explicitly handle encoding/decoding, exposing many hidden assumptions in Python 2 codebases.</span> contributed to this fear.
|
||
|
||
## The Great Separation
|
||
|
||
- **Duality in the Community:**
|
||
- Python 2 and Python 3 coexisted, but this duality required library maintainers to support both versions<label for="sn-dual-support" class="margin-toggle sidenote-number"></label><input type="checkbox" id="sn-dual-support" class="margin-toggle"/><span class="sidenote">Tools like six, 2to3, and eventually python-future emerged to help manage cross-version compatibility, but maintaining dual codebases remained a significant burden for maintainers.</span>, doubling their efforts.
|
||
- This separation threatened to fragment the community and hinder the language’s progress.
|
||
|
||
## The Call to Action
|
||
|
||
- **Unity and Resolution:**
|
||
- The document urges the Python community to look within and embrace Python 3, overcoming fears and divisions.
|
||
- It calls for direct experience and contribution to bridge the gap between Python 2 and Python 3, ensuring the language’s future.
|
||
|
||
## Conclusion
|
||
|
||
- **The Future of Python:**
|
||
- The community must come together to prevent Python 2 from becoming just a memory, uniting both versions to preserve the language’s legacy and foster its continued growth.
|