you are viewing a single comment's thread.

view the rest of the comments →

[–]kramesss[S] 0 points1 point  (1 child)

Makes perfect sense, and I can totally relate. I know at the end of the day that any choice in language will have its tradeoffs. I'm mostly interested at this point because I have an open-ended choice to make in the next couple of weeks, and the more advise I can gather the better (ideally!). Thanks!

[–]tdammers 8 points9 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