Everyone talks about their hate of js but like python is honestly just as bad.

- shitty package manager,
* need to recreate python environments to keep workflows seperate as oppose to just mapping dependencies like in maven, npm, cargo, go-get
* Can't fix python version number to project I.e specify it in requirements
- dynamic typing that gets fixed with shitty duck typing too many times
- no first class functions
- limited lambda expressions
- def def def
- overly archaic error messages, rarely have I gotten a good error message and didn't have to dive into package code to figure it out
- people still use 2.7 ... Honestly I blame the difficulty of changing versions for this. It's just not trivial to even specify another python version
- inconsistent import system. When in module use . When outside don't.
- BLOCKING making things concurrent has only recently got easier, but it still needs lots of work. Like it would be nice to do

runasync some_async_fcn()
Or just running asynchronous functions on the global scope will make it know to go to some default runtime. Or heck. Just let me run it like that...

- private methods aren't really private. They just hide them in intelisense but you can still override them....

I know my username is ironic :P

  • 2
    I was about to say "Username doesnt check out", but you beat me to it. 😋
  • 3
    Python functions are objects. How are they not first class?


    You can even assign attributes to them.

    Do you program python idiomatically? Python can be fairly quick when pushing the work to builtins.
  • 2
    Python is nice as well as javascript, but javascript is just a meme language
  • 8
    As programmer Michael Reeves once said: "Python does everything, just badly."
  • 2
    @EzeKoren badly but fast in terms of development
  • 1
    Most of the points are based on old versions or design decisions you may or may not like (eg limited lambda / simple package manager). "no first class functions" is just incorrect (everything is an object in Python, including classes and functions).
    Valid points IMHO: it's slow if not used as glue, asyncio could be more intuitive.
  • 3
    @zvyn lambdas dont matter as much when you can make a function/class generator. I always hated the official lambda though.

    The one thing I miss in other languages are decorators.
  • 1
    @zvyn I mixed up two topics. I meant that lambdas in python are just not that useful. Especially when you look at annomous functions in other languages
  • 1
    I'm sorry, people who argue dynamic typing is bad can shove that idea up their arse. It just creates a different way of writing it. Neither is worse or better, it just depends which you're more familiar with.
  • 1
    @retnikt Automatic conversions can be difficult to debug and harmful. There is a reason that people mark single parameter functions in C++ as explicit. I honestly don't care either way, but dynamic type matching can be a source of bugs.
  • 0
    @Demolishun coersions, **cough cough JavaScript**, I agree are bad. But python doesn't have them, nor do many other dynamic languages
  • 1
    A common misconception about "dynamically typed" is, that it means you can mix variables of different types in one operation . But Python is actually quite strict about value types, most operations will throw a TypeError if you mix them up. The few exceptions are well defined (since Python 3).
  • 2
    I dont like python either.
    Mostly because of its community.

    Then again JS as a language is great. It's the community that turns it into a mountain of infectious feces via NPM, etc.
Add Comment