I don't know about Ruby, but in Python, the GIL is there to protect the interpreter from complicated locking and memory management overhead that thread-safety would require of it: http://mail.python.org/pipermail/python-3000/2007-May/007414...
@jessenoller has a great summary of concurrency in Python: http://jessenoller.com/2009/02/01/python-threads-and-the-glo...
The two worlds seem very similar.