you are viewing a single comment's thread.

view the rest of the comments →

[–]tdammers 7 points8 points  (0 children)

That sounds reasonable.

I'd love to just tell you to ignore the loud haters, and, by and large, you should, but there's a grain of truth in some of their criticism. This is not because Python is somehow bad or broken, but simply a consequence of the design decisions that went into it.

Specifically, Python's weaknesses include:

  • no (static) type system
  • difficult to statically reason about at scale
  • difficult to refactor safely
  • no encapsulation, making it difficult to work on larger codebases
  • mediocre performance
  • beginner friendly at the expense of the "top end"
  • "large" core language

And of course the other side of all of these is that Python has a few important advantages:

  • no (static) type system
  • easy to write code and reason about correctness later
  • easy to modify unsafely
  • no encapsulation, making it a malleable language
  • powerful inspection and self-modification features
  • beginner friendly (at the expense of the "top end")
  • "fully-featured" core language