23
python3
19d

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.
- SLOW so SLOW
- 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

Comments
  • 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?

    https://geeksforgeeks.org/first-cla...

    You can even assign attributes to them.

    Do you program python idiomatically? Python can be fairly quick when pushing the work to builtins.
  • 1
    Python is nice as well as javascript, but javascript is just a meme language
  • 7
    As programmer Michael Reeves once said: "Python does everything, just badly."
  • 1
    @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
  • 2
    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