People want a higher-level synchronous API that runs a command, captures the stderr, stdout and exit code, waits for the process to finish, and returns the result. Maybe even throws if exit code is non-zero or stderr is non-empty. Like the $(...) operator in bash, but more flexible... and not quite that convenient!.