From: Charles Oliver Nutter Date: 2008-07-02T01:13:52+09:00 Subject: Re: Threads and Ruby ara.t.howard wrote: > in fairness we're talking about ruby here where that is definitely not > true. it's extremely painless to have reliable ipc with ruby using drb > or com with sqlite as a message store. Since DRb operates over a network it's not reliable by definition; you have to deal with the other end going away, etc. With COM, you're either going over a network or using same-machine IPC mechanisms that are only a bit more reliable (or loading things in-process, which is then back to threads). And with sqlite, you need to synchronize writes and possibly reads or you need to hope sqlite will do that for you (I don't know if it does). And then you're into locking, atomicity, etc. So for IPC or cross-"process" data comm or sharing, I think processes: - give you fewer ways to shoot yourself in the foot - the remaining ways are somewhat less likely to be dangerous - but they mostly leave the options that are by and large the most complicated and the most prone to complete failure (e.g. external process goes away completely). Meanwhile, threads - give you many, many ways to shoot yourself in the foot - sometimes with catastrophic consequences - but you can turn the complexity knob down much lower Choose wisely. - Charlie