Clone and fork are broken in a lot of languages and especially with multithreaded processes (even in C).
I was thinking of running the other processes from an executable binary of some sort (amounts to the same even if it immediately loads some bytecode like a JAR or whatever).
What annoys me is not the notion of calling an external binary. It's the use of the generic popen/system()-like interface rather than something that properly encodes the call semantically (even if it then just uses popen in the background) and manages flags using language-idiomatic means.
