Python 3.15: features that didn't make the headlines
Python’s role in a “post‑AI codebot” world
- Several commenters report rewriting large Python codebases (100k+ LOC) in Go or Rust, citing:
- Much faster and more reliable services.
- Better fit with static typing and compilation, which help verify AI‑generated code.
- Others argue Python is still excellent for:
- ML/AI, research, scripting, and rapid prototyping.
- “High-value tokens” (concise, readable code) where raw speed is less critical.
- Disagreement over whether Python truly gives faster development than TypeScript/Go/Rust.
Language design, ergonomics, and ecosystems
- Criticisms of Python:
- Indentation-as-syntax, weak lambdas, slow and evolving type checkers, GIL, FFI story.
- Dynamic typing making large codebases hard to reason about.
- Defenses:
- Indentation is natural, reduces syntactic noise.
- Python is readable, high-level, and has long been effective for business and prototyping.
- Some see Rust, TypeScript, Kotlin, C#, or Go as better “sweet spots” for new work.
- Web dev split:
- Python/Django praised for server‑rendered CRUD and simplicity.
- Others prefer TS/JS stacks (e.g., TSX templates) and claim far superior DX.
Python 3.15 features and semantics
- Lazy imports:
- New
lazyimports and lazy evaluation of type annotations (PEP 649/749) discussed. - Some see this as overdue, long‑requested, and helpful for huge codebases/startup time.
- Others view it as complexity driven by big companies, with added security/testing risk.
- New
- Improved error messages:
- AttributeError hints now map common names from other languages to Python equivalents; widely liked.
- ContextDecorator changes:
- Now covers full lifetime of coroutines/iterators; seen as a good but potentially subtle behavior change.
- New iterator synchronization primitives and
except*/ExceptionGroup improvements are welcomed but considered niche. - Some feel new features erode “Pythonic zen”; others say modern Python is better than ever.
Security and supply chain concerns
- Anxiety about
pipinstalling unvetted code with full$HOMEaccess. - Replies stress:
- Unix has no isolation between processes of the same user; Python alone can’t fix that.
- Recommended mitigations: containers, devcontainers, VMs, separate users.
- Concern that growing supply‑chain attacks may eventually hurt the ecosystem.
LLMs and language evolution
- Mixed reports on LLM performance:
- Python code quality varies; static typing scarcity may hinder reasoning.
- TypeScript often works very well; Rust support is improving but less idiomatic.
- Worry that LLMs will lag behind new Python features until retraining catches up.