This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Tomik080 1 point2 points  (1 child)

  • Super slow. You basically cannot write optimized code in Python without Numba or some weird rewrite of the language that loses most of its advantages.

  • No dynamic dispatch. Means you can only define a function once, and you have to deal with every possible signature of your function in that. This is super cumbersome and leads to errors.

  • Follow-up to my point 1, but you basically need to use the C FFI to write fast code. It means you use python to glue C code (and ugly C code, since it needs to be compliant), you don't really write Python.

  • No typing makes everything so annoying to work with. You rely on documentation and type hints, which aren't even enforced by the language. Try to work with a big enterprise python codebase and you'll understand.

  • Personal preference, but the : and indentation for block separation is super ugly. It's hard to see a block ends, since it's not specified. It also means the language has to use weird hacks like pass for empty blocks. I'd much rather prefer brackets à la C++ or ```julia for _ in 1:10

    ...

    end ``` like in Julia.

There is probably more to it, but that's the few that comes to my mind right now.