I saw an interesting comment on r/technology today, r/technology is a subreddit devoted to all things technology, where the author complained about too much web/software related articles were being posted on the site. As the site is user driven the choice of the content can be influenced by questions and comments like this. In fact it can change the shape of the entire community and how they interact with each other. For instance r/fitness tested text based submissions only with no external links allowed. This fundamentally changed the discourse in that community. Anyway, this made me sit back and think about if software or websites should be considered technology in the way that a computer or keyboard is.
According to the Google dictionary the following is the definition of technology:
- The application of scientific knowledge for practical purposes, esp. in industry: “computer technology”; “recycling technologies”.
- Machinery and equipment developed from such scientific knowledge.
I believe that software could fall into the first category of technology. Wikipedia says: Technology is the making, usage, and knowledge of tools, machines, techniques, crafts, systems or methods of organization in order to solve a problem or perform a specific function.
Again this could easily be applied to software. Specifically because of the word techniques. However, I think we need to tread carefully here because both of these definitions would also include all of mathematics as a form of technology. Why does this definition matter? Well, you are able to patent technologies, but you are not able to patent mathematical algorithms or techniques. If some one was able to prove that P=NP
in a mathematical proof then it couldn’t be patented. However, if you put that same proof into a piece of software it suddenly becomes patentable, and then make some one very rich.
I think there’s another fundamentally cognitive difference as well. Despite the fact that people say Android phone technology or Apache web server technology, it feels different than when you say internal combustion technology. I think the main difference is the physicality of the combustion technologies over the technology that has been developed to create phone OSes or webservers. It requires manual labor and a set of tools and skills that are all physical entities whereas with the software, anyone with a computer can learn how to program. That doesn’t mean that there won’t be a set of people that are better at it or more likely to pick it up than other people. I’m basically self taught in both SQL server and VB.Net.The fact that software can be copied perfectly an infinite number of times also changes how it should be treated.
I think that these differences means we should actually treat software differently. I think that it is a technology, but a technology more related to mathematics and logic than other sciences.