In 2006, I was working on a large Java project. A friend told me I should give Python a try: “your programs will do the same thing, they’ll only be a third the size they were in Java”. That was a bold statement, but when I looked at a thousand-line file, it seemed like a really good idea to find out if he was right.
Rewriting that first project in Python was magic. As I redeployed sections of the project, I watched my files get shorter and easier to understand. I always liked programming, but writing in Python felt different. Ideas that seemed outlandish at the time became concepts that made perfect sense in retrospect.
My files looked more consistent and well-structured, and they were much easier to read, review, and debug. Also, they were just plain fun to write. When I completed the project, the files were actually less than half the size of the corresponding Java files.
This content was originally published in the newsletter Mostly Python by programmer and writer Eric Matthes. The text was translated, adapted and republished by Technoblog with the author’s permission.
I grew up in the 70s and 80s, and my dad was a software engineer at the time. We had a computer in our basement before most people even thought about having one of these machines in their home. I learned the basics of programming when I was nine or ten; the first programs I wrote were in BASIC.
My programming-related endeavors shifted from hobbyists to professionals over the next ten years, and as my projects became more significant, Python continued to serve me well.
The code itself was much less of a drag compared to the other languages I used. I was still programming for work, but I spent more time thinking about real-world problems I wanted to solve, and less time thinking about language-specific syntax and constructs.
Is Python still the best language?
I’ve been using Python since 2006 and every year I ask myself if this is still the right programming language for me. I don’t want to be stuck with it just because I’m comfortable: languages are constantly evolving, and if there’s an option that best suits my needs, I’ll be happy to invest the necessary time to migrate.
However, Python is still right for me, for the same reasons it was right in 2006: It lets me do the work I want to do, nice and efficient. There’s also the added bonus of being part of one of the best communities I’ve ever been a part of.
I went to my first Python conference in 2012. I was intimidated to go because I was a school teacher, not a programmer, and I assumed everyone there would be a professional programmer. When I got there, I found a community that was totally welcoming.
Half the people there were clearly better programmers than I would ever be, because that’s what they focused on. But the other half were like me: they had real-world problems they wanted to solve, and they were discovering that Python could help them do things more effectively and efficiently. Everything improved for me the moment I joined the Python community, and it has been one of the best parts of my life ever since.
I’m getting old, and there are some parts of it that I don’t like, but I deeply appreciate the decades-long perspective I have on programming languages and technology’s role in society at large. It has been fascinating to see the development of low-level languages – with instructions that are executed by the processor – and high-level languages, which use abstractions and are easier for a human to understand.
I’m still interested in other languages; my innate curiosity about programming will always be there. But work life and life as a parent don’t leave me as much time for exploratory learning as I used to. I want to learn Go, Rust, a functional language like Haskell and others too, but right now I don’t have a compelling reason to invest a lot of time in these languages. I’m sure I’ll do that at some point, but for now I have every reason to stick with Python for most of my work.
I used to hear that Python wasn’t the best at anything, 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 at many things, and is still quite effective in many areas where it might not objectively be the “best” fit.
Most of the complaints I see directed at Python are still completely unfounded. Criticism can often be addressed using language in a different way. Furthermore, Python does not perfectly solve all kinds of problems: there are some areas where more experienced Python programmers would recognize that Python is not the best option. If I don’t work in one of these areas, Python will probably still be the best fit for me.