This is one of the many goals of Perl6. The Perl5 engine just isn't capable of being reworked into a multi-threading engine without a complete rewrite (hence, Perl6).
For my own, I'm looking at Erlang.
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?