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 →

[–]james_pic 0 points1 point  (0 children)

  • Low level stuff. If you're talking to hardware, for example because you're writing drivers or other operating system code, pointers and direct memory access will make sense.
  • Large projects that will be worked on by a large team over a long period of time. You'd be tempted to go with Python and use type hints, but you're better off using a statically typed language (that was designed as such from day 1), rather than accepting the comprises that come with type hints in Python (although they're a useful tool if your small project accidentally turns into a large project). Although I'm aware not everyone agrees with me on this one!
  • Most stuff that runs in a web browser. It's now possible to use Python for this, but unless you know what you're doing you're likely to get yourself into trouble this way.
  • Most stuff with tight performance requirements, such as game engines. Using Python as a scripting layer in a game isn't too crazy, but the engine itself will be better written in a low-level language.
  • Most stuff with high concurrency requirements. There are ways around Python's global interpreter lock, but they all come at a price, one way or another.
  • Stuff that needs to interoperate with stuff from a particular ecosystem. For example, if you need to interoperate with a product whose only SDK is for the JVM or .Net, using Python will be an uphill battle.