title: Implementing a replacement for Ruby's IO.popen() and system()
body: <p>IO.popen() and system() in Ruby is sorely lacking several useful features, such as:</p>
  
  <ul>
  <li>obtaining the return value of the function</li>
  <li>capturing both stdout and stderr (seperately and merged)</li>
  <li>running without spawning an extra cmd.exe or /bin/sh process</li>
  </ul>
  
  <p>Python has a module "subprocess" which I was thinking about using as inspiration for a similar module in Ruby. Now to the questions:</p>
  
  <ul>
  <li>How are Ruby-programmers working around the issues above, for example obtaining the return value when doing a popen() call?</li>
  <li>Is this something which has already been implemented?</li>
  </ul>