Python Needs Fewer Frameworks
An opinion piece arguing that Python's strength lies in simplicity and standard tools, not in an ever-growing ecosystem of frameworks that cause fatigue, fragmentation, and lost productivity.
Why Python Needs Fewer Frameworks
Every week, it feels like another Python framework pops up. Another web framework. Another async toolkit. Another way to do what we’ve been doing for years. And I get it—innovation is great. But here’s the thing: Python’s strength has never been about having the shiniest new toy. It’s been about simplicity, readability, and getting stuff done without drowning in abstractions.
The Framework Fatigue Is Real
Let me paint a picture for you. You're a developer at PythonSkillset, building a small internal tool. You need to serve some data via an API. Your first instinct? Reach for Flask. It’s lightweight, you know it, and it works. But then someone says, “Hey, have you tried FastAPI? It’s async, has auto-generated docs, and it’s the new hotness.” So you switch. Then someone else mentions Starlette. Then Quart. Then Sanic. Then aiohttp.
Before you know it, you’ve spent more time evaluating frameworks than actually writing code. And that’s the problem.
The Hidden Cost of Choice
Choice sounds great in theory. In practice, it means fragmentation. It means tutorials become outdated six months after they’re written. It means companies end up with codebases that use three different frameworks because each team picked a favorite. And when you hire a new developer, they need to learn not just Python, but whatever flavor-of-the-month framework you’re using.
I’ve seen teams at PythonSkillset spend weeks migrating from one web framework to another, only to realize the new one has its own quirks and limitations. The net benefit? Minimal. The lost time? Real.
What We Actually Need
Instead of more frameworks, Python needs better standard tools that solve common problems without reinventing the wheel every two years. Look at the standard library’s http.server module—it’s perfectly fine for small stuff. But it’s rarely used because everyone assumes you “need” a framework. What if the core Python team spent more energy on making the standard library’s web capabilities more usable instead of leaving us to the framework circus?
Similarly, consider async. Python’s asyncio is powerful, but it’s surrounded by a dozen competing libraries. Want an async web server? You’ve got aiohttp, Quart, FastAPI, Sanic, uvicorn, hypercorn… each with its own ecosystem and gotchas. Beginners get paralyzed. Veterans get annoyed.
The Real Star of the Show
The most productive Python developers I know don’t chase frameworks. They master the language itself, plus one or two well-chosen libraries. Django for full-stack. Flask for microservices. Requests for HTTP. SQLAlchemy for databases. That’s it. They don’t need twelve tools to do what four can do.
And you know what? Those same developers write code that’s still maintainable five years later, because they didn’t tie themselves to a framework that got abandoned or replaced.
A Modest Proposal
Let’s slow down. Before creating yet another Python framework, ask yourself: Does this genuinely solve a problem that the existing tools can’t handle? Or is it just a different flavor of the same thing? If it’s the latter, write a blog post, improve an existing library, or contribute to the standard library.
PythonSkillset exists because people love Python’s clarity and power. Adding more layers doesn’t make Python better. It makes it harder to see the beauty underneath. So next time you’re tempted to jump on a new framework train, take a breath. Pick what works. Stick with it. Your future self—and your team—will thank you.
Comments
Questions, corrections, and tips stay visible for everyone reading this page.
Join the discussion
No comments yet
Be the first to leave a note — it helps the next reader.