I consider the terms Soft, Firm, Hard; to refer to how easy it is for the user to manipulate the logic. It does not apply to the creator of the logic, since everything is soft for them (consider VHDL). I.E. the user needs to have access to the source code for the logic for it to have the soft attribute. In that regard I think proprietary software is misnamed and does not deserve to be called software. Firmware is more accurate actually considering the following logic attributes:
Attribute | Copyable | Modifiable |
hard | no | no |
firm | yes | no |
soft | yes | yes |
A little while ago I noticed a developer of a fairly large proprietary program had used software I released under the GPL licence. His seemingly genuine response was that he knew nothing about freeware. Here was my response to him, which expands a little on the attributes of (open source) software.
Software Licences
Open source has nothing to do with freeware. Freeware just releases the binaries (firmware) for free. Open source software is generally released under 2 main licence types: BSD and GPL.BSD means you're free to use the source as you want as long as you put a copyright message somewhere in your binary. Personally I think the BSD type licence is a bit naïve, as it allows proprietary software vendors to use the code for just their profit. As well as being unfair, any changes/improvements made by them do not filter back, and thus this tends to be a preclusion to a lot of people releasing source code under such a licence.
The GPL license on the other hand requires any changes made to source code used, including any software directly using that code, be made available to users if requested. In that sense it to a greater extent ensures free software as it can't be captured by firmware proprietors.
Software Advantages
Personally I would like to see all source code open. It really helps with the sharing of information as you have seen first hand. As for making a living, I've made more money since working exclusively in open source programming. The reason; There will always be code to write! You just write better/newer/more significant things (which people are very willing to pay for) when everyone shares the code. This sharing is greatly facilitated by the relatively recent advent of the Internet, and so proprietary logic will eventually disappear as it's subsumed by the more flexible open equivalent.