What does it mean to treat developers as consenting adults?
| Speaker | Vanessa Mohr |
|---|---|
| Track | Community |
| Type | Short Talk (25 minutes) |
Abstract
Python famously trusts developers to make their own choices; a philosophy summed up by Guido van Rossum’s iconic quote, “We’re all consenting adults here.” But what does this freedom actually mean in practice?
As a software engineer with plenty of experience in Python, as well as more statically typed languages such as Java (and an enjoyer of both), I often find myself wondering "Why is Python my go-to language - my absolute favourite?" And the answer is the freedom, simplicity, and accessibility of Python. To line up what I would like to talk about, I should mention something about myself. In my team I am known for consistently advocating for standards and best practices across all our projects, irrespective of stack or language. So it's no surprise that I often ponder on questions involving Python's flexibility. Supplementary to this, I am aware that scepticism exists around the freedom that van Rossum speaks of.
I would like to talk about why this flexibility is awesome when leveraged responsibly. In my experience, Python has made every problem-solving experience enjoyable. It is readable and brief, and its dynamic nature can make a well-designed approach feel intuitive. Apart from giving examples of where this flexibility shines, I will give practical tips on how to avoid the pitfalls that come with this freedom, including targeted debugging tools, static analysis tools, and test-driven development (TDD). I’ll also explore how to thoughtfully evaluate whether a particular use of Python’s flexibility is a maintainable design choice, or a potential design smell.
My talk is aimed at anyone that writes code, as it is focused on being intentional and thoughtful in every choice one makes around one's code. I hope to encourage the community to leverage Python's flexible nature to the fullest, and to do so responsibly in order to uphold high quality and reliability in their code.
