<p>The primary class in the <code>subprocess</code> module is name <code>Popen</code>, and represents a subprocess. <code>Popen</code> sounds like someone was trying to force the name to follow some function naming format, rather than chosing a name that actually represents what the object is.  Does anyone know why it was chosen over something simple like, say, <code>Subprocess</code>?</p>

I suppose the name was chosen because the functionality
```
subprocess
```
is replacing was formerly in the
```
os
```
module as the
```
os.popen
```
function. There could be even ways to automate migration between the two.