Why I'm still using Python
16 years and counting...
I’ve been using Python since 2006, and every year I ask myself if it’s still the right language for me. I don’t want to get stuck using a language just because it’s the one I’ve become comfortable using. Languages are constantly evolving, and if there’s a language that better suits my needs I’ll happily invest the time needed to make a change. In the end, though, Python is still right for me, for the same reasons it was right in 2006: it lets me get the work done that I want to do, enjoyably and efficiently. There’s also the added bonus of getting to be part of one of the best communities I’ve ever been involved in.
I grew up in the 70s and 80s, and my father was a software engineer at the time. We had a kit computer in our basement before most people had even thought of having a computer at home. I learned the fundamentals of programming when I was nine or ten years old; the first programs I wrote were in BASIC. Over the next twenty years I dabbled in a variety of languages: LOGO, Pascal, C, Fortran, Perl, Javascript, Java, and PHP. I was a hobbyist programmer, and I enjoyed learning a new language every few years. In 2006 I was working on a larger (for me) project in Java, and a friend told me I should check out Python. “Your programs will do the same things, they’ll just be one third as long as they were in Java.” That was a bold claim, but as I looked at a thousand-line file, it seemed like a pretty good idea to find out if he was right.
Rewriting that first project in Python was magical. As I reimplemented sections of the project, I watched my files grow shorter, and they looked cleaner as well. I’d always enjoyed programming, but writing Python felt different. Ideas that were newer at the time such as semantic whitespace, and not needing to declare variable types, went from strange new patterns to ideas that made perfect sense in retrospect. My files looked consistent and well-structured, and they were much easier to read, review, and debug. Also, they were just plain fun to write. When the project was finished the files were, in fact, less than half the length of the corresponding Java files.
My programming efforts shifted from hobbyist to professional over the next ten years, and as my projects grew more significant Python continued to serve me well. The code “got out of my way” much more than it had in the other languages I’d been using. I was still doing programming work, but I found myself spending more of my time thinking about the real-world problems I cared to solve and less time thinking about syntax and language-specific constructs.
I went to my first Python conference in 2012. I was intimidated about going because I was a teacher first and a programmer second, and I assumed everyone there would be a professional programmer. When I showed up I found an entirely welcoming community. Half the people there were clearly better programmers than I’d ever be, because it’s what they focused on. But half the people there were just like me; they had real-world problems they wanted to solve, and they were finding that Python could help them work more effectively and more efficiently. My life got better the moment I stepped into the Python community, and it’s been one of the best parts of my life ever since.
I’m still interested in other languages; my innate curiosity about programming will always be there. But work life and parenting life doesn’t leave me as much time for exploratory learning as I used to have. I want to learn Go, Rust, a functional language like Haskell, and others as well, but I don’t have a compelling reason to spend significant time on those languages at this point. I’m sure I will at some point, but for now I have every reason to stick with Python for most of my work.
There are aspects of aging that I don’t enjoy, but I deeply appreciate the decades-long perspective I have on programming languages, and the role of technology in society overall. It’s been fascinating to see the development from lower-level languages to higher-level languages over the course of half a lifetime (🤞). Most criticisms I see leveled at Python are still completely unfounded. Many times the criticism can be addressed by using the language in a different way. Python isn’t a perfect fit for all problem domains. There are some areas where most experienced Python programmers would recognize it’s not the best fit. So be it; if I’m not working in one of those areas, then Python is still probably the best fit for me. I used to hear that Python wasn’t the best at any one thing, but it was second best at most things. I agreed with that line of reasoning for a long time, but these days Python is as good as any of its peers for many things, and it’s still quite effective in many areas where it might not objectively be the “best” fit.
Heading into 2023, I couldn’t be more excited to continue using Python. I hope you are as well. :)