The Haters Guide to Python

The Haters Guide to Python Featured Image

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

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:

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?

“Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.”

Who knows?

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:

It should come as know surprise how passionate I am about the topic given that I maintain a collection of said programming languagesOpens in a new tab.. Why don’t you head over there and help out our wonderful contributors? And as always, thanks for reading!

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife, playing Overwatch and Phantasy Star Online 2, practicing trombone, watching Penguins hockey, and traveling the world.

Recent Posts