Serendip is an independent site partnering with faculty at multiple colleges and universities around the world. Happy exploring!

Reply to comment

asmoser's picture

Form, Function and Object-Oriented Living

I think Rob’s comments about the difference between purpose and reflex are interesting, but I think he misses a vital piece. E. Coli or any other bacterium placed on a suitable medium will replicate and grow without further stimuli. It is the function they are designed to fulfill. However, they do this because they need to, because this function is existence in its entirety for a bacterium. Calling it reflex seems to me to credit the life form with a level of complexity it does not have. The E. coli don’t have a large range of possible responses to stimuli, they either have the materials necessary to reproduce or they do not and either live or die in response to these conditions. Knowing very little about cellular biology, I can’t comment whether in the absence of food the e. coli search for it, but certainly there are bacteria that do. So we have a simple set of instructions that each bacteria follows. Is that purpose? Maybe not, but it doesn’t strike me as reflex. In fact, these concepts seem difficult to apply to something so simple. Bacteria does not have purpose or reflexes. Its form is its function, built to survive and reproduce.


I spent a decent amount of time thinking about the connection between form and function in living organisms and it struck me that life has some interesting parallels with classes in object oriented programming languages. Each successively more complex class inherits the functions of the classes it is based on. In life, the most basic bacteria could be said to have a single, combined function based on asexual reproduction through division. We can write pseudocode to reflect this single combined function:

(Imagine each bacteria is an organism, o, of a class that has a size attribute and a location attribute)

BacteriaLife(size, location){

If (size == 8)

o.divide(); //if the organism (o) is of an arbitrary size, it will divide into 2

elseif (current location == food!)

size = size+1;

eat(o.currentlocation) //this should make the current location no longer //food

BacteriaLife(o.size, o.location+1);



When this simple function begins to require sexual reproduction (first in gamete clouds, then in mating) the functions required of an organism become increasingly more complex, and with the need to prioritize between functions, relatively simple behaviors should give rise to increasingly complicated patterns of behavior. I’d like to write more on this, but class theoretically starts in four minutes, so I’ll try to post again later.



To prevent automated spam submissions leave this field empty.
1 + 3 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.