Why I believe Computer Science is Bio-Mimicry
Bio-mimicry as defined here simply implies looking to nature to solve problems that we as humans experience. I make a bold claim in the blog title that Computer Science actually does look to nature to solve existing problems. This is a strange assertion I know, but allow me to share with you a few Computer Science concepts I have learnt so far that will prove to you that indeed Computer Science is bio-mimicry or at least employs bio-mimicry principles. I will try to reduce the technical jargon and promise to keep things as light and simple as possible. Let us hop into it.
There are already quite a number of articles, studies, concepts and blogs that have proposed this very idea I present here, of Computer Science being a field of study that has the origin of its concepts and ideas in nature. For example, a short read found here even lets us know that there are already multiple researches being done to best find out how biological processes seen in nature can be best used by Computer Science. In this same read we are even hinted on one of the applications of bio-mimicry in Computer Science: packet switching networks actually mimic the veins that transport water in a leaf. Again in the same article, we see how the technology of digital ants actually came about: a swarm of ants in their natural habitat being threatened by a predator signal each other using scents of different intensity. The higher the intensity of the scent the higher the density of ants responding to the danger.
One of the most obvious and famous implementation of bio-mimicry in Computer Science is the concept of Neural Networks in Artificial Intelligence which is basically the imitation of the working of the human brain (yes, we humans too are part of the natural). A deep exposition of bio-mimicry in Software Engineering can be found in this blog. A really interesting mention in the blog is how nature, at a genetic level, is a huge database storing crucial information. A post on LinkedIn found here also shares the claim that protocols are actually inspired by animal behaviour.
These are just a few examples of how bio-mimicry has been applied in Computer Science as we know it. As promised, I will now share my own personal ideas on why I believe Computer Science to be an implementation of bio-mimicry ideals. My ideas are centered on three Computer Science concepts.
1. Object Oriented Programming
Object oriented programming is a branch of software development that uses the idea of objects to tackle complexity. However, Object Oriented Programming does not tackle complexity by making programs any shorter, but rather does so by simply appealing to human psychology. How?
Humans are highly skillful at recognizing and interacting with daily objects and objects in programming are just like these everyday objects such that we can easily recognize and interact with them. Object Oriented Programming imitates nature by simply creating objects (both natural and unnatural) in computer programs. It is for this reason, I believe, that Object Oriented Programming has been a highly successful approach to software development. This is quite a subtle implementation of bio-mimicry in programming, thus Computer Science. It is important to note that objects may or may not be natural, but it is absolute that humans are natural.
2. Abstraction
We may be tempted to view abstraction as a human idea but it is not. Consider your own body, there are internal organs whose working has only been made known unto you in the Biology classes, a somewhat complex subject. But the amazing thing is that Biology studies a part of the natural world (living organisms) us humans included. The human body, as seen from the Biology classes, is quite complex yet we do not have a hard time simply being human. Well, the reason for this, I assert, is that the human body is abstracted, at every layer of the human body there exists abstraction. A good example would be the skin, which covers the whole human body to an extent that we have very little knowledge about what actually lies beneath the skin (apart from what we are taught in Biology classes). We know sweat comes out of the skin, but how this actually happens is a complex process(the implementation).
Another example is the nose, an inlet and outlet of the gases oxygen and carbon dioxide respectively. The implementation of this gaseous exchange cannot be told by the nose itself yet the exchange takes place. This is proof of what I call “Natural Abstraction”. It is only via Biology that we have come to understand the implementations of these natural processes. And we see such abstractions almost anywhere we look in the natural world, with an interesting one being how a vertebrae’s fetus initially forms an abstract structure after its kind before developing into a fully grown fetus.
3. Worst-case algorithm analysis
Saving the best for last, this is my personal favourite imitation of the natural by Computer Science. In worst case algorithm analysis the intention is to measure the performance of an algorithm by only considering the extreme factors that might affect the running of the algorithm. For example, in analyzing the algorithm with respect to computer memory, the question to be considered is “How does the algorithm perform given the least memory possible?”. One may then wonder how this type of analysis is an imitation of nature. Well, consider drought tolerant and resistant crops such as sorghum, millet, cow peas and one of the most famous drought tolerant plants, aloe vera. Before we lose the principle being discussed here let me point it out again. Worst case algorithm analysis computes the performance of an algorithm at extreme conditions, and these extreme conditions include low memory and too much time(unfavourable for the computer).
In relation to worst case algorithm analysis, drought tolerant and resistant crops are tolerant and resistant to drought because of their lengthy exposure to harsh atmospheric conditions (very little water and too much sunlight exposure). This is because of an “adaptation” process that led to these crops developing what are called xeromorphic traits which are meant to reduce transpiration under drought stress. To cut the technical jargon we now know why these plants are drought resistant. The same thing happens with algorithms, the more an algorithm adapts to dealing with the extreme factors, the more likely it is to be efficient. We do not consider the best case in this case because it does not necessarily tell us how the algorithm will behave under harsh conditions. Similarly, we cannot use the conditional requirements of non-drought tolerant and resistant crops as a standard to measure tolerance of the drought. This may not have been a direct imitation but nonetheless, I believe it conforms to the natural makeup of the mechanisms of nature.