Skip to content

Instantly share code, notes, and snippets.

@zeroday0619
Forked from Alex4386/hate-python.md
Created August 27, 2020 10:19
Show Gist options
  • Select an option

  • Save zeroday0619/a1ab4b84013891a35dd0769ad629fd08 to your computer and use it in GitHub Desktop.

Select an option

Save zeroday0619/a1ab4b84013891a35dd0769ad629fd08 to your computer and use it in GitHub Desktop.
Reasons I hate PYTHON. (Includes Jokes)

Why I FURIOUSLY hate Python

This is my version of hate-typescript.md.

Warning: I have only used python for only an year and This definately includes several humors,
So DON'T TAKE THIS THAT SERIOUSLY. I don't want to make a freak'in programming language war or something

Abstract

Python is powerful doesn't scale and fast slow without extensions and precompiling;
plays well bad during collaborative programming with others;
runs everywhere everywhere except your dependency modules;
is friendly & easy to learn friendly for ground-up learners & removing your previous experiences in programming field;
is Open (Well I can't at least argue that)

Stupid syntaxes

Non-C-Like Syntaxes

When you first use python, You can find out that your regular old C-like syntaxes you use pretty-much-everywhere when you start learning programming language is NO LONGER WORKING!

At least VB.NET uses Block scope that wraps around. But in Python? nonono~ there's no even wrappings! and your beloved syntaxes from C is all-gone! Poof!
You need to relearn all of the syntaxes from ground-up! That's no good!

Whitespaces, Tabs, all of the craziness

This is all because of stupid block scope declaration in Python. that uses INDENTATION to define the block scope.
I guess you need a whole project scale linter setup just to make a toy-script you want to use it for short period of time!

Which makes you to do this:

git add pyproject.toml
git add .gitignore
git commit -m "chore: add pyproject.toml for fixing god damn whitespace errors"
git push
black .

I would rather write a bash script rather than hassling with Python's stupid indentation style

Version Incompatible Syntax

Almost Any programming languages has something called "Legacy Support". But python? NO.
Syntax has been changed! (python2 ("Legacy, EOL", but everyone is still using it) and python3) and you need to rewrite EVERYTHING!

Stupid Linting Standards

All of the communities has whack-ton-of-differnet linting styles,
Black wants you to use double quotes, while PEP8 wants you to use single quotes.

And enforcing them (especially quotes) is actual HELL.

Language Specifics

Stupid OOPs

Totally Different Syntax than other class-based language

Who in the world thinks this is the inheritance of specific class in the first glance

class ChildClass(ParentClass):

while almost all the other programming language behaves like this

public class ChildClass extends ParentClass {

No Interface, Only Class.

What in the world I can't declare interfaces for my dict. At least I should no what is inside of dict! (declaring class just for this? seriously?)
You guys at least need to add some typing support for dict or arrays!

-> interface "modules" are NOT considered here, this should be a language's native feature.

Linting (ex. intelliSense) Support Sucks.

This one is especially for pyTorch or tensorflow. that generates modules' internal during the RUNTIME. which literally make me go into Google, EVERY SINGLE TIME. What I just need is just to call a single function from a module.

At least add something like JavaDoc or Stupid ".d.ts" stuff like TypeScript
(This is the one of the two reasons I hate Typescript sometimes, But I personally think TypeScript is way better than Python)

Typing, Done Wrong.

I don't consider the TypeScript's type implementation as a good way.
but Python's one is far-more-worse. It is just dangling around at doesn't play with the language. at all.

There is no Dict or any concept of "Template" in this language!

Will update later on if I got burned-out cause of my Python projects (especially due to Deep Learning Projects, Duh)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment