Why does Python suck so much?

Literally the only thing Python has going for it is it is installed everywhere. People say that about Javascript, but I disagree.

I want to write a GUI in Python. Do I use wxwidgets? Qt? Tkinter? PyJamas? Kivy? Well it all depends on which platform you’re targeting. So I need to write my GUI three times, once for Windows, once for Linux, and once for a mobile device. That is, if you can deploy to a mobile device. Javascript is deployed to browsers. Boom, done. Javascript is deployed to mobile devices through things like PhoneGap or Cocoon. Boom, done.

I want to write a Python game. Do I use the massively out of date Pygame, which AFAIK has never actually produced an actual game, or do I use Pyglet, which seems like development has stopped? Javascript has Phaser.js, which is awesome, well supported, and very active.

I want to put Python on the web. Do I use Django, or Flask, or Bottle, or…? But then I still need to know and use Javascript and HTML and CSS, which is silly. Because if I just used Javascript instead of Python, then that cuts an entire language out of my toolkit.

Now, a warning about the below comment. This is a completely unfounded criticism of Python. It’s 100% my fault. But it’s still a problem for me, and Python doesn’t make it better.

Every time I write Python code, I feel like I’m writing psuedo code. Which sounds awesome, but it’s not. It doesn’t feel like I’m doing anything of value. Think of it like this: when I play with Lego, I love it, right? I’m having a good time. I’ll build a rocket ship and blast off, because it’s so easy to do. But I know that rocket ship will never go to space. That’s silly. Python puts me in a similar mindset. Everything is so trivial. I don’t need to structure my code, like I don’t need to worry about if my Lego space ship can handle the stress of re-entry. The problem comes when I’m writing large blocks of code that need to be maintained. The problem comes when I’m writing chunks of code for other people. The problem comes when I’m writing in Python and then switch to another language. The problem comes when I take my Lego space ship experience and start using it to built equipment for Elon Musk.

I never feel like I can do anything real with Python because it feels too much like a toy.

I’m not a programmer. Python should be perfect for me. I just need to write a few scripts and get on with my life. But I would rather use Bash any day, because at least Bash knows its place. It knows it’s just a stupid little scripting language. It knows better than to try to make the Lego space ship airtight. It knows better than to attempt re-entry with an outer hull of little plastic bricks. No one put Bash on the web. No one makes games with Bash. No one deploys Bash to the App Store.

I use Python because I have to. But I don’t enjoy it. And every time I try to get too clever and see someone else’s more elegant and readable code, I just keep thinking to myself… that can’t seriously work. No one would take a language like that seriously.

But apparently they do.