>> If you don't use locks, i.e. only use lock-free data structures and immutable state, then you won't care about the GIL.
Unless you're trying to do something that requires parallel processing. Crypto cracking was one example recently.
>> And you can use multiple processes and interproccess communications in place of threading.
This adds complexity
>> There is no reason why you can't leverage C++ (ZeroMQ) or Erlang (RabbitMQ) to do the hard bits and write the rest of your app in nice simple Ruby (or Python) scripts that are designed according to the Actor Model.
This also adds complexity.
Basically it would be nice if threads in python acted like they do in other languages, rather than just pretending to.
Unless you're trying to do something that requires parallel processing. Crypto cracking was one example recently.
>> And you can use multiple processes and interproccess communications in place of threading.
This adds complexity
>> There is no reason why you can't leverage C++ (ZeroMQ) or Erlang (RabbitMQ) to do the hard bits and write the rest of your app in nice simple Ruby (or Python) scripts that are designed according to the Actor Model.
This also adds complexity.
Basically it would be nice if threads in python acted like they do in other languages, rather than just pretending to.