While wrapping up my last week of paternity leave, I wasn’t feeling all that inspired to write. Then, I received some funny messages from a previous student of mine about how challenging learning Python has been. As a result, they inspired me to write this article.
Table of Contents
- The Journey to Brainwash Everyone Into Liking Python
- Python Is Chaos
- The Haters Are Aplenty
- The Moral of the Story
The Journey to Brainwash Everyone Into Liking Python
It’s probably no surprise that someone who has written over 150 articles on Python at this point (yes, I know that’s an absurd number) would be pushing the language any chance he could get. But would you believe me if I said I also push it in day-to-day life? Just ask my students.
As you might already know, I don’t teach Python during my day job. Instead, I teach Java. However, it’s not uncommon for me to explain an aspect of Java and immediate parallel it to a language feature in Python that solves the problem easier. In other words, my destiny to share the gospel of Python seems to spread into my work life as well.
All jokes aside, my brainwashing works, unfortunately. Every once in a while I’ll hear from a student who picked up Python in their free time, and let me tell you they don’t always have nice things to say. For instance, feedback from one of my previous students prompted me to write the following article: 5 Things You Should Know Before You Pick Up Python.
More recently, another previous student contacted me because I had been supporting them with a web scraping project in Python. When I showed them that a lot of the things they wanted to do could be implemented in just a couple lines of code, they were hooked. However, once they started learning the language, they were less pleased. This article is a tribute some of the funny messages they sent my way.
Python Is Chaos
When folks use languages like C and Java, they get accustomed to the rigid structures and rules the language places upon them. Then, when they pick up a language like Python or JavaScript (or even C++ for that matter), they find the flexibility of the language to be overwhelming. Here are just some of the things that Java folks will come to be surprised by:
- What do you mean there is no main method?
- What do you mean I don’t need classes or functions?
- What do you mean common symbols are replaced with keywords (e.g., AND, OR, NOT)?
- What do you mean I don’t need types?
- What do you mean whitespace matters?
These kinds of questions led my one previous student to state, “how is this your GOAT” and “this language is the wild west.” Interestingly, I would have to imagine that someone shifting to a language like Java or C would be very frustrated if their first language was Python.
The Haters Are Aplenty
With that said, I’ve already written about the various ways that Python can be a frustrating tool to use. There are, of course, no perfect tools, and anyone who claims to have one is, of course, lying. However, I wouldn’t be doing anyone a service if I didn’t at least provide references from the various Python haters across the internet:
- Why Python is terrible… [this one is particularly harsh]
- Python is not a great programming language. [this one kills me with all the mentions of “having to memorize stuff”]
- 8 Reasons Python Sucks [this one mentions python versioning which is definitely a pain]
- 5 reasons why Python sucks [this one mostly complains about Python for web which does suck]
- Why is Python the Worst Programming Language for Gen Z? [this one seems like an LLM wrote it for SEO purposes]
I won’t be trying to debate any of the points in these articles, but I will say that the complaints are largely overblown and often just serve to push for some other new and shiny tool (e.g., I find the Rust folks insufferable).
The Moral of the Story
When it comes to picking a programming language, you really should be prioritizing the tool that gets you where you want to go. If you decide to you want to make a game and Unity is the engine that’ll get you there, then you should start learning C#. If you decide to get into embedded applications, then pick up C++ or Rust. Arguing between the tools makes almost no sense. Of course you wouldn’t drive in a screw with a hammer, so why are we shit talking hammers?
Of course, don’t just take my word for it. Pirate Software has a very similar take:
With all that said, I’m not here to go on a rant about programming languages or programmer culture. I’ve done that a handful of times already:
- There Is No Value in Ranking Programming Languages: The Cost of Gatekeeping in Tech
- What is a Programming Language?
- Who Gets to Decide What Is and Isn’t a Programming Language?
It should come as know surprise how passionate I am about the topic given that I maintain a collection of said programming languages. Why don’t you head over there and help out our wonderful contributors? And as always, thanks for reading!
Recent Posts
It's a special day when I cover a Java topic. In this one, we're talking about Enums, and the problem(s) they are intended to solve.
Chances are, if you're reading this article, you've written some Python code and you're wondering how to automate the testing process. Lucky for you, this article covers the concept of unit testing...