I get the sense that the difference often stems from the nature of software as &quot;words you can run&quot; vs. hardware as &quot;physical manifestation of words.&quot;<p>For quite a bit of software these days, the correct program and the description of the correct program are pretty similar artifacts.