Evaluating New Open Source Tech Panel
But therein lies a new problem: If there are 10 options, how do you choose? Do go for the oldest and potentially most stable? How about the most updated one? Maybe that hot new version that has the fastest adoption curve.
It's not easy. But luckily we have an excellent panel here to discuss exactly that. You'll hear from Emily Morehouse, Cecil Phillip, Kim van Wyk, Łukasz Langa, Gareth Thomas, and Dan Gerlanc.
Episode Deep Dive
Guests Introduction and Background
Gareth Thomas (CTO) Gareth has been programming for decades, moving from an early start on a Dragon 64 to leading teams as a CTO. His focus is on guiding technology decisions for production systems and ensuring developers choose stable, well-understood solutions over the latest shiny frameworks.
Kim VanWijk (DevOps and Software Engineer) Kim has 25+ years of coding experience in Python, C, and other technologies, working on embedded systems and broader DevOps. He offers a balanced perspective on picking technologies that teams can realistically maintain over the long haul.
Lukasz (Core Developer in Residence for CPython) Lukasz is deeply involved in the Python ecosystem, working as a Python core developer and managing CPython releases. He’s passionate about ensuring Python remains robust, while also emphasizing that stability often outweighs chasing the newest tech in production environments.
Cecil Phillip (Developer Advocate at Stripe) Cecil has a background in .NET, is well-versed in Python, and recently dabbled in Go. He focuses on prototyping and proof-of-concepts to showcase new technologies. His perspective highlights the importance of learning strategies and factoring in the human element when adopting new frameworks.
Emily Morehouse (Director of Engineering at Cuttlesoft) Emily oversees a variety of projects using Python, Ruby, JavaScript, and more. She has chaired PyCon, bringing a community-minded lens. As a consultant, she emphasizes greenfield decisions, the need for stable libraries when handing off to clients, and has firsthand insight into open source stewardship.
Dan Garland (Director of Engineering at Ampersand) Dan works on data science and ML engineering at scale, having taught on platforms like O’Reilly. His background in quant finance and consulting means he has navigated high-volume, high-risk technology decisions, often weighing open source solutions against in-house or proprietary alternatives.
What to Know If You’re New to Python
If you’re relatively new to Python and want to appreciate this episode’s conversation around frameworks and open source tools, it helps to know a few basics. Below are some quick points to set the stage:
- Python fosters a huge ecosystem of libraries, many of which appear on PyPI.org.
- Different web frameworks (Django, Flask, FastAPI) or data tools (Pandas, SQLAlchemy, and so on) may all solve similar problems but with different trade-offs.
- Open source often offers flexibility, but it also places responsibility on you or your team to maintain or adapt the tool if needed.
- Understanding how to install and inspect Python packages (e.g.,
pip install [package]
) will help you follow much of the discussion.
Key Points and Takeaways
- Boring vs. Bleeding Edge in Production Many guests argued that when picking tools for production, “boring is good.” Boring means mature, well-documented technologies with a large user community. This reduces risk and avoids finding yourself locked into a brand-new framework if it loses support or a key developer. However, there’s value in experimenting with cutting-edge ideas in safe environments to keep the team’s skills fresh.
- Links and Tools:
- github.com: Explore project repos, check commit histories
- pypi.org: Python Package Index to see how widely adopted a library may be
- Links and Tools:
- Balancing New Tech Exploration with Delivery Deadlines Cecil and Gareth highlighted that teams can waste weeks chasing the perfect solution rather than delivering. While experimenting is good, deadlines and business goals often require selecting a “good enough” technology and moving on. Once it’s validated, consider a small proof-of-concept or hackathon to confirm it.
- Links and Tools:
- Hackathon Starter Repos on GitHub: Examples for safe experimentation
- Sentry: Helps you monitor errors and performance in your chosen framework
- Links and Tools:
- The Bus Factor and Knowledge-Sharing Multiple guests underscored the danger of depending on a single maintainer or single team member for critical components. Whether open source or in-house software, if knowledge is siloed, you risk being stuck if that person disappears. Seek libraries with engaged communities or ensure your team cross-trains on critical code.
- Links and Tools:
- Bus Factor Explanation (Wikipedia)
- Cookiecutter: Offers standardized project templates, easing collaboration
- Links and Tools:
- Why Open Source Matters (or Not) Dan and Emily addressed that open source is valuable because you can fork and maintain it if maintainers vanish. But sometimes you can be fine with a closed-source tool if it’s easy to swap out. That said, be wary of deep integrations into proprietary systems, as your exit strategy may become painfully complex.
- Good Documentation Over Fancy Landing Pages While marketing-laden sites (like some JavaScript frameworks) can impress at first glance, many panelists said documentation and quick-start demos matter more. If a project’s site is plain but has thorough docs, that’s often a better sign of its reliability than a slick UI.
- Links and Tools:
- Vue.js Website
- Tailwind CSS
- Python.org (not the flashiest, but highly functional)
- Links and Tools:
- Community-Driven vs. Single-Sponsor Projects When a library is backed by a single giant sponsor, that can be reassuring short term. Yet if that sponsor’s priorities shift, the library might get abandoned. By contrast, widely adopted projects (e.g., Django, Flask) with diverse maintainers tend to remain stable over years.
- Links and Tools:
- Django Rest Framework (broad community)
- Flask
- Links and Tools:
- When it Makes Sense to Adopt the Latest Python Version Lukasz suggested testing new versions like Python 3.12 in your continuous integration (CI) early for compatibility, but you may want to wait for an official release before going live in production. This ensures you can catch potential upgrade issues but keep your main environment stable.
- Links and Tools:
- Consulting Perspective on Tech Choices Emily noted that consultants often start greenfield projects and must ensure the handoff to the client is future-proof. This leads them to choose stable libraries with a proven track record. On the flip side, a stable library does not necessarily mean zero commits—some tools are just “complete” and need fewer updates.
- Links and Tools:
- PyPI Stats to see download stats for libraries
- Links and Tools:
- Vendor Lock-In with Cloud Services Even with open source at the core, major cloud providers can create significant friction in moving your system. Services like AWS Lambda or RDS Postgres might be standard tech but are still AWS-specific. Understanding how these solutions fit your architecture is key before adopting them.
- Links and Tools:
- Selecting Tools for Data Science and ML Dan pointed out that picking data science tools involves balancing cutting-edge libraries (where updates are frequent) against proven frameworks that might not be as feature-rich. This is especially critical at scale, where rewriting or migrating is expensive.
- Simplicity in Side Projects: Static Site Generators Michael shared how a seemingly small decision (e.g., which static site generator to use) can highlight many of these production considerations. Tools like Hugo are widely adopted with vibrant communities, while rolling your own in Python can be fun—if you’re ready to maintain it.
Interesting Quotes and Stories
- On Boring is Good: “The best decision often isn’t the shiny new thing, but the stable, time-tested solution the team already knows.” — Gareth
- Bus Factor Caution: “If there’s only one stressed maintainer, that’s a risk. Either as an open source project or in your company—always cross-train.” — Lukasz
- Overly Flashy Tech: “When you see a super slick landing page, that might just be marketing. If the docs are lacking, that’s a big red flag.” — Kim
Key Definitions and Terms
- Bus Factor: A measure of risk related to how many individuals understand a system or project enough to maintain it. A “bus factor of 1” means if that one person leaves or is unavailable, the project cannot continue.
- Greenfield Project: A brand-new project with no constraints from legacy software or previous architectural decisions.
- Vendor Lock-In: A situation where migrating away from a specific technology or cloud provider is significantly expensive or complicated.
- Continuous Integration (CI): Automated testing and validation of code every time a change is committed, ensuring compatibility and stability.
Learning Resources
Here are some valuable paths to deepen your Python skills and insights.
- Python for Absolute Beginners: Ideal for those brand new to Python, covering core concepts with hands-on examples.
- HTMX + Flask: Perfect if you’re interested in building server-driven web applications in Python with interactive UI features.
Overall Takeaway
When evaluating new open source tech, striking a balance between innovation and stability is essential. It’s vital to consider the human factors—how much your team already knows, how large or diverse the community is, and whether a library has long-term support. While it’s exciting to try cutting-edge tools, often the most reliable path is to select well-established projects, validate them quickly, and ensure there’s a fallback plan or robust community to rely on if issues arise. Above all, remember that consistent documentation, knowledge sharing, and understanding business goals trump chasing the latest framework every time.
Links from the show
Emily Morehouse-Valcarcel: @emilyemorehouse
Cecil Phillip: @cecilphillip@hachyderm.io
Kim van Wyk: @kimvanwyk@fosstodon.org
Łukasz Langa: @ambv@mastodon.social
Gareth Thomas: @thestub@pythonist.as
Dan Gerlanc: @dgerlanc@fosstodon.org
Does the GitHub page need to be pretty?: github.com/tiangolo/fastapi
Do fancy "marketing pages" matter?
Poetry: python-poetry.org
Tailwind: tailwindcss.com
VueJS: vuejs.org
Aesara: github.com/aesara-devs/
Story of creating Michael's Site: mkennedy.codes
Went to the community: fosstodon.org
Hugo Site Generator: gohugo.io
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm
--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy