A few days back I thought about what could happen if we treated software as social beings. Then I though why we couldn’t do that. Part of this contemplation ensued independently. Partly it was motivated by a conversation with a friend about possible research in software reuse and product lines.
Then I thought about Josua M. Epstien’s work on artificial societies. According to Joshua, artificial societies can be simulated using computers to study various phenomena related to them. These could be spread of wealth, resources, fears, emotions and factors affecting human migration from one place to another.
Then the mind recalled a book that I started reading once upon a time, but could not complete reading due to other commitments. The book is titled societies of the mind and is written by a famous computer scientist, Marvin Minsky. I wondered if the mind could be modeled to have a complete society in it, then why couldn’t software be modeled as a society? What would be the society of a mind composed of by the way? How Minsky put it up, it was composed of ideas, values, thoughts and emotions that can be contained in a mind, and that enter, leave or reside in a mind at various time scales. I must complete reading this book to its end.
By the way, another commendable work of Minsky is the emotion machine. In this Minsky postulates a human mind as a machine that generates emotions and reacts accordingly. I started reading this book a long time ago. But I could not finish reading it due to other commitments too. I must finish reading this book as well.
Then I thought about simulating software as social entities. Software is not social by the way, merely because it is dead in the sense of not having a life like other living beings have. It does not have a mind or a brain like other animals either. It is not conscious as we consider human beings to have consciousness. But then, there is a lot of software that helps us accomplish smart things. An argument can be made about proximity or kinship of certain software with other pieces of software. So an argument can be made that software can be simulated as a social entity.
Then the final question arises as to how to emulate the sociability of software? There is a great tool called MASON. MASON is social simulation software written and maintained by social scientists and computer scientists in George Mason university.
MASON is written in Java. It also integrates with ECJ pretty well. What is ECJ by the way? ECJ stands for evolutionary computing in Java. It is also written and maintained by GMU people working in evolutionary computing. Sean Luke is the main person responsible for its development. What has ECJ got to do with all of this? With ECJ we could model the evolution of software in a social simulation tool such as MASON.
If you found an error, highlight it and press Shift + Enter or click here to inform us.