avatarKris Chain

Summary

The provided text discusses the parallels between genetic programming and computer programming, highlighting their roles in defining life and complexity.

Abstract

The article "On genes and programs: the frontiers of life" explores the concept that both genes and computer programs are fundamental to the development and functioning of life and technology, respectively. It draws a comparison between the hierarchy of complexity in genetic programming, from nucleic acids to species, and the hierarchy in computer programming, from bits to the internet. The text emphasizes that just as genes encode the blueprints for life, computer programs are essential for arranging intelligence onto matter. The author suggests that understanding the interplay between organic and inorganic matter can provide insights into the nature of life, which they describe as a "reactive substance." The article also touches on the criteria for life as defined by NASA's Astrobiology department and how these criteria relate to programming, with the notable exception of reproduction, which the author equates to the ability to run, copy, and create programs.

Opinions

  • The author believes that the essence of life can be understood by examining the genetic programs that have evolved over billions of years.
  • The text conveys the idea that life and programs are analogous in their structured complexity and their need to operate within a suitable habitat.
  • The author expresses a personal fascination with the edges of life, particularly the intersection of inorganic matter with organic matter and programmed order.
  • It is implied that the study of molecular biology and programming can offer a deeper comprehension of the frontiers of life.
  • The author hints at a subjective interpretation of life, emphasizing the aesthetic and philosophical aspects of genetic and computer programming.
  • There is an anticipation that the merging of biology and programming could lead to innovative tools, as the author plans to release some in the near future.

On genes and programs: the frontiers of life

The periphery of life is written in code

Genes and programming define the peripheries of our reactive substance known as life. Photo by Anton Maksimov 5642.su on Unsplash

From single-cell organisms, to oil, to humans, genes are the independently evolved solutions to possibility.

Single-cell organisms exploit their surroundings to bring in more energy than they burn.

Oil is the end waste product of millions of years’ worth of ecosystems originally run by genetic programming.

Everything it means to be human is encoded in your genetic lineage passed down by your ancestors and modified by your choices.

Every aspect of the biosphere is the direct result of genetic activities.

Genes are nothing but long molecules that have self-assembled in a careful orientation over billions of years. Carl Sagan said “We are star stuff” and that is true, but he left off the more interesting “because the star stuff self-assembled, tested itself, grew stronger, eliminated waste, promoted growth, divided, speciated, evolved, and grew self-aware all because life randomly formed a nucleic acid a few billion years ago.”

Genes scrape the edge of what it means to be alive, the edge of a living experience. Even viruses and prions are scraps of RNA, long nucleic acids, that influence our experience through the code embedded in the orientation of molecules. Given the right circumstances, genes can change the biomass of our world.

The reading and writing of genes are responsible for developing humans to grow healthy enough to engage in the complex exchange of ideas and subtleties with another person through a shared language.

Of course, water, food, and a suitable habitat are essential to life but none of it would work without the small genetic programs operating subroutines throughout our cells. Like life, the internet requires electricity, metal, and a suitable habitat to function but none of it would work without programs that constantly operate to ensure a smooth experience.

Life is the genetically programmed system of pulling life from matter whereas the internet is programmed with an artificial language to arrange intelligence onto matter. Genes and programs sit at the periphery of this reactive substance called life.

Wikipedia can produce pretty accurate models of the DNA that encodes every one of your genes.

Structure

Both life and programs can be ranked in order of complexities. Below is a simple breakdown of both starting at the molecular scale.

Genetic programming hierarchy of Complexity

  1. Nucleic acids are physical arrangements of atoms and can only come in 4 (5 with one context-specific replacement) structures, A, G, C, or T. Nucleic acids are held together by sharing electrons or using magnetic charges in atoms.
  2. Genes are the specific arrangement of nucleic acids. Gene sequences hold the blueprints for life to exploit matter and energy. The word life begins to apply at this level of complexity.
  3. Cells are the immediate sphere of influence for one set of genes. The full set of genetic instructions works together in concert to keep the system functioning.
  4. Tissues like muscle or liver are many similar cells working together to coordinate and amplify their genetic instructions. This is where life begins to feel real or identifiable like smooth skin, strong muscles, or sharp intellect.
  5. Organisms are many tissues working together with the immediate goal of securing food, water, and suitable habitat.
  6. Tribes consist of many organisms working together to coordinate and amplify their genetic instructions by using their most useful skill set for the good of the group. The collective output of a tribe can be amplified to a level greater than the sum of its parts.
  7. Species often have many tribes working together to coordinate and amplify their genetic instructions. Everything from culture, language, behavior, and instincts is exhibited in a species.
Photo by Florian Olivo on Unsplash

Computer programming hierarchy of Complexity

  1. Bits are binary code. Bits represent the smallest unit of data in a computer and can exist in only two states, 0 or 1. Bits are stored via electrical or magnetic charges on physical metal.
  2. Machine code is the specific arrangement of bits. Machine code is the periphery between language and machine. The words computation and programming begin to apply at this level of complexity.
  3. Assembly language is a low-level programming language that is a group of machine instructions working together for the goal of controlling hardware in an efficient manner.
  4. High-level languages (like Python, Java, etc.) provide more abstraction and are easier for humans to read and write. Many lines of code work together to create complex programs.
  5. Software libraries/modules are collections of programs written in languages that solve different aspects of an inter-related opportunity.
  6. Applications are complete systems that often use many different libraries and modules to perform complex tasks.
  7. The internet represents many different applications communicating and working with each other on a global scale. Everything from culture, language, and behavior is exhibited on the internet.
Photo by Fabio Rose on Unsplash

Function

The function of all of this is to create complexity and promote its future use. The Astrobiology department of NASA lays out the criteria for life which applies to programming as well.

1) All life is highly ordered and structured.

2) All life reproduces itself, either sexually (as animals do) or asexually.

3) All life takes in and utilizes energy to carry out its functions.

The only piece of criteria that doesn’t intuitively translate to programming is number 2, but what else is being able to run, copy, and create programs? That reads like the definition of reproduction.

So what?

Nothing. There is no grand wisdom to take away from this that will help you in your career or pursuit.

If nothing else, this helped put a cage around this amorphous idea, this attraction I have toward understanding the edges of life. I spent years investigating the interplay between inorganic matter and organic matter. More recently I’ve been spending my time investigating the interplay between organically derived order and inorganic matter.

Both programming and molecular biology are genuine interests that feel as if they can only be described as the edges of this reactive substance we know as life. Maybe that is the draw: the last two frontiers within reach.

I’ve been having a blast bringing these two frontiers closer together and I’ll be releasing some online tools in the coming months. If you’d like to explore biology and programming through my lens on life, follow along!

Science
Programming
Life
Biology
Nature
Recommended from ReadMedium