![]() |
Guido : https://python-history.blogspot.com/ |
And the oracle:
Go to the summary |
Python 1.x (1991 – mid-90s)
-
Initial release (1991): Guido van Rossum’s invention. Already had dynamic typing, exceptions, functions, modules, and high-level data types (lists, dicts, strings).
-
Big idea: readability and simplicity (“executable pseudocode”).
-
Earth-shaker: The language itself. At a time when scripting was Perl-dominated, Python’s clarity stood out.
Python 2.0 (2000)
-
List comprehensions → a concise, expressive way to build lists in one line. Hugely influenced by functional programming and later spread widely in other languages.
-
Garbage collection with cyclic references → no more manual memory juggling with ref cycles.
-
Earth-shaker: List comprehensions fundamentally changed idiomatic Python, making it more elegant and expressive.
Python 2.2 (2001)
-
New-style classes (unifying classes and types). Before,
class Foo: ...
was distinct from built-in types likeint
. This release made everything an object with a single inheritance model. -
Generators (via
yield
). Revolutionized iteration — let functions produce sequences lazily. -
Earth-shaker: Generators. They made Python truly excellent for data streaming and iteration.
Python 2.7 (2010)
-
Last major 2.x release. Added dictionary comprehensions and
set
literals. -
Earth-shaker: not a feature, but end of life looming. This froze the world in a “2 vs 3” split for nearly a decade.
Python 3.0 (2008)
-
Unicode everywhere → strings became
str
(Unicode), withbytes
separate. Made Python a first-class citizen for the modern, international internet. -
print() as a function instead of statement.
-
Removed many warts (like
<>
, implicit int/long distinction). -
Earth-shaker: Unicode by default. It was painful, but essential for the web era.
Python 3.3 (2012)
-
yield from
→ made composing generators much more natural. -
Virtual environments (
venv
) → lightweight isolation of dependencies. -
Earth-shaker: venv. This made dependency management accessible to everyone, not just sysadmins.
Python 3.4 (2014)
-
asyncio
module → foundation for async/await concurrency. -
enum, pathlib modern conveniences.
-
Earth-shaker: asyncio. It opened Python to high-performance networking, microservices, and event-driven programming.
Python 3.5 (2015)
-
async
andawait
keywords baked into the language. No longer obscure callback soup — asynchronous code looked almost synchronous. -
Matrix multiplication operator
@
(for NumPy users). -
Earth-shaker: async/await. This turned Python into a serious competitor for Node.js in async I/O.
Python 3.6 (2016)
-
F-strings (
f"Hello {name}"
). A massive quality-of-life improvement for string formatting. So widely loved that it instantly became idiomatic. -
Underscores in numeric literals (1_000_000).
-
Earth-shaker: f-strings. Conciseness + readability = a feature devs never looked back from.
Python 3.7 (2018)
-
Data classes (
@dataclass
). Removed boilerplate for simple classes. -
Context variables (for async).
-
Earth-shaker: dataclasses. They changed how Python code models data, especially in APIs and configs.
Python 3.8 (2019)
-
Walrus operator (
:=
). Assignment inside expressions. -
Positional-only parameters.
-
Earth-shaker: walrus operator. Controversial but powerful (e.g. regex matches in
if
, avoiding duplication).
Python 3.9 (2020)
-
Dictionary merge/update operators (
|
,|=
). -
New parser (PEG-based) → allows more flexible grammar in the future.
-
Earth-shaker: PEG parser. Invisible to most users, but opened the door for new syntax (like pattern matching).
Python 3.10 (2021)
-
Structural pattern matching (
match ... case
). Brought modern algebraic data-type style dispatch to Python. -
Earth-shaker: pattern matching. A new paradigm for control flow, making Python more expressive for compilers, AST work, and config parsing.
Python 3.11 (2022)
-
Major speed boost (10–60% faster) via specializing adaptive interpreter.
-
Precise error locations in tracebacks.
-
Earth-shaker: performance. Suddenly Python wasn’t “slow by default” anymore — CPython itself got much faster.
Python 3.12 (2023)
-
Even more performance boosts, cleaner C API.
-
Type system improvements (e.g. generic types without
from __future__
). -
Earth-shaker: types go mainstream. Type hints aren’t just annotations now — they’re actively shaping Python’s ecosystem.
Python 3.13 (2024)
-
No GIL preview builds (still experimental). Removing the Global Interpreter Lock would be epoch-making for multi-core scaling.
-
Earth-shaker: If no-GIL lands fully, true parallelism in CPython will change Python’s place in HPC and server workloads.
Summary Table of Earth-Shakers
Version | Earth-shaking Feature | Why it mattered |
---|---|---|
1.0 | The language itself | Readability over Perl/C |
2.0 | List comprehensions | Expressiveness |
2.2 | Generators | Lazy iteration |
3.0 | Unicode everywhere | Web-era ready |
3.3 | venv | Dependency mgmt for all |
3.4–3.5 | asyncio, async/await | High-perf networking |
3.6 | f-strings | Readability boost |
3.7 | Dataclasses | Boilerplate killer |
3.8 | Walrus operator | Concise expressions |
3.9 | PEG parser | Enables new syntax |
3.10 | Pattern matching | New control paradigm |
3.11 | Speedups | Python isn’t slow anymore |
3.13+ | No GIL (in progress) | True parallelism |
No comments:
Post a Comment