i despise python.

    this is the inevitable python article. people ask me all the time why i hate python

so much, and i've been putting off this post for years at this point. funny enough, in all those years,

few of the problems i originally had with python were resolved (or at least coming across as a

compromise). before i begin my rant, i should start with an introduction of sorts.


    there are no "perfect" computer languages. they each have their uses, some more

specific than others, and some are restricted by the hardware they were designed for. to me, a few

languages come extremely close to being "perfect":

the above of course have their faults (some will be included in the rant). the aforementioned list -

subjective in nature - will be wrong in the eyes of a lot of people, and that's fine! i cannot stress

enough that my rant is purely of my own opinion, and there will be a lot who disagree with me. anyhow, let's

get this over with.


    i say we start with installation. incredible how such a popular language [allegedly]

used to build so many enterprise and industry-standard systems isn't included with said systems!

i'm all for the philosophy of a decentralized-esque system with zero bloatware, but this is different.

example - the c programming language. both gnu & linux are made mostly with c, and in systems including

both, gcc is included (that was poorly-worded, but you get the point). if python is truly the backbone

of industry-standard and enterprise things, it should come built-in with the system (including IDLE).


    so say it isn't built into your system. that's alright, but did you know that there's

an obscene number of libraries and the like dependent on legacy versions of python that'll break upon

update, so it's wise to install python 2x & 3x? i know it may be a slightly larger install, but that seems

like something that'd be a problem in 2002, not 2022.


    i'd also argue that to python's ever-growing target audience of beginner programmers,

python is not the easiest thing to install. the typical beginner won't be on a system where a package

manager or building something from source is commonplace. they're going to rely on installers and the like.

do you think they know what a PATH is? do you think they know what version to install if they just want to

learn? the typical python beginner likely isn't going to learn by way of setting this stuff up in the first

place - they're going on bootcamp websites where the output is updated live upon completion of a problem.

that last point is a bit more directed to places like bootcamp websites, so i digress on this point.


    python trains users to prefer instant gratification. most python kiddies i've met

can't tell me the output of written python code if they don't have the live output in front of them.

i'd say this is only a beginner problem, but with languages such as c or c++ this doesn't seem to be

an issue among beginners. python encourages poor practices for both programming/scripting, and thinking.


    something i admire about certain languages like c is the amount of freedom you have

while programming. python forces you to have proper capitalization, whitespace, indentations, and the like.

the reasoning behind this is to have universally-readable code, which is a bit controlling. readability

doesn't matter in the grand scheme of things, and it tends to come at the cost of larger program files

and lack of efficiency. i should also add that if you care about the environment (many python-pushers

claim to), you'll make it a priority to write efficient & small programs. While inconvenient to idiots (and

those that have a second-grade reading comprehesion ability), you'll use less resources to run your programs,

meaning the same hardware can be used for more things, which means you won't have to purchase more hardware,

which also means a lesser demand for said hardware. if practiced at a large scale, this can drive down hardware

costs, make proper programmers more valuable hires, and reduce slave labor in countries where materials are

sourced and/or assembled. by being a programmer who can properly read and think, you can actually change the

world for the better in ways corporate propaganda cannot comprehend.


    before you can even think about developing with python, your environment has to be properly

set up. this is commonplace in many languages, but python in particular seems to be a little more painful. not

only do you need more than one version installed, but you also need anaconda, pip, a decent editor, and all the

third-party packages you didn't realize you needed. python makes it clear that your system will be designed to

be a python workstation, and little else.


    a common practice in the industry today has unfortunately been made even worse with python -

using third-party libraries to make your code work out of the sake of convenience. this was popularized with

languages like javascript, but it never got to non-web programs at the scale that python has allowed. engaging

in this practice brings each program closer to a more centralized internet. if a maintainner of a massively

relied-upon library happens to shut down the repository for whatever reason, imagine the number of programs

that will no work! in python tutorials, you'll often see the teacher tell you to rely on a convenient library,

and they won't teach you the logic behind how the entire thing works. it's one thing to build a program that

tells you crime statistics, but it's another to write a script that actually just computes the statistics via

numpy, and the purpose of the script you wrote was to print the outputs in rainbow text. if the python

software foundation is telling me that relying on others is one of the things that makes the language so easy-

to-use, then it's a sham language.


    on a matter of tastes, i prefer my languages to use brackets, semicolons, and the like.

i consider it proper punctuation, and it denotes where things end/start/change. it's a more efficient compromise

to the issue of readability that python shines a light to.


    the many "features" that python gives us unfortunately makes it extremely slow compared to

other industry-standard languages. as of the publishing of this article, even a language like java can compile and

run faster than python. as someone that mains languages such as c and haskell, load times kill me with python. even

when written as efficiently as possible, with proper practices in place, my stock screener made in python requires

an entire five seconds to load. i regret not making it in c++.


    a downside to a lot of general-purpose languages is inefficiency with specific tasks, not

usually within the original design and purpose of the language. while c++ is fantastic to make desktop programs,

one wouldn't usually use it to make websites with. i've made a website in c, and i wouldn't recommend it upon my

worst enemy. one of the most-touted features of python is its ability to be used in full-stack web development.

in order to make a website in python [the easy way], you're going to need to import multiple libraries, make sure

your server is configured to use the specific version of python you're going to use, and you'll still need to rely

on things like html, css, and javascript (unless you import more libraries)! a language that requires you to

frankenstein an already bloated program to make it work properly does not have your best interest at heart.

you'd think that a language marketed as being as cross-platform, easy-to-use, and liberating as python would

at least have some ability to do mobile programming as well, right? wrong! they hate you!


    python is insulting to women, minorities, and disabled persons in tech. well, it's more

the python software foundation doing the insulting, but that's not my point. if the current narrative is that

these people are as intelligent and empowered as they are, why push such an inefficient and dumbed-down language?

it seems to me that those that choose to use python as their main language for everything are everything the

narrative deems them to not be, and i find that despicable.


    with massive funding from facebook, google, and bloomberg, i am in massive doubt that the

python software foundation would actually listen to its non-paying devbase. with many glaring issues with the

language, and with enough of a budget for public relations and marketing, we won't ever see bootcamps that have

problems with usage of python.