But when we look at life on a biochemical/molecular level, the analogy with engineering strengthens, rather than weakens.
Does it really? Are you an engineer? I am. I have been a practicing software engineer since 1982. At this point, the greater majority of engineers reading this will have burst into laughter. (most engineering degree programs are extremely demanding and require far greater rigor and sheer hard non-trivial work of their students than any computer science program ever would)
What are you seeing at that biochemical/molecular level that strengthens the analogy with engineering? Do you know anything about engineering practices or principles? One principle is modularity. In programming, we had what was called "spaghetti code", code that jumped all over the place creating all kinds of interdependencies. Spaghetti code is what happens when you don't manage your code well. It is virtually impossible to maintain and
code maintenance is absolutely essential to any and all projects! Spaghetti code creates excessive complexity and engineering projects
hate excessive complexity. In the life cycle of a software product, the vast majority of the time and expense is spent in maintenance. Create an overly complex piece of software and you create an engineering nightmare which is virtually impossible to maintain.
Let's look at life. What do we see? Complexity. Extreme complexity. Even "irreducible" complexity. Is that consistent with engineering principles?
Absolutely not! How could you possibly claim that life was engineered? It is the most piss-poor example of engineering possible! One's workmanship is indicative of one's skill. Similarly, the elegance of one's design is indicative of the Engineer's skill. So then you believe that your Divine Engineer is an absolutely Schlockmeister?
Complexity is not an indication of design, but rather of evolution. The products of evolution are known for their complexity, even "irreducible"complexity. We understand what evolutionary processes are and how they work, so we have used them to perform "design" work. In such experiments, we have observed two very interesting things.
One is that a side product is always escalating complexity. Even outside of such experiments that happens. Take any new software product -- believe you me, I have lived through this so many times in the past 30 years! Management wants a new software product. They tell us that it is almost exactly like this existing product, but with these "few" changes. Oh, and we have to make those changes backwards-compatible with the primary product.
Do you have any idea how evolution works? Take an existing feature. Modify it to do something different. If we still need the old functionality, then you first copy it before you modify it. That is how evolution works and that is how many software products work.
Two things come out of that. One is that the complexity of the code increases irrespective of the mere mortal humans' ability or inability to manage it -- wasn't that the premise of the original
Westworld? The other is that you get unexpected results. In mechanical systems, say in an airliner, if you change something in one place then the effects of that change should manifest somewhere near there. You change one little thing in software and the effects can manifest themselves in an entirely different part of the system -- software engineer's famous last words: "I wasn't anywhere near that part of the code!"
Clearly, too much complexity is not a very good indication of an Engineer at work.
Here's another interesting item. The particular experiment I have in mind used evolutionary processes to design a differential amplifier using a Field-Programmable Gate Array (FPGA). Now, I've been interfacing professionally with FPGAs for nearly two decades. They are an array of digital circuit elements, the interconnection of which can be defined in a definition file which is then downloaded into the FPGA to create the sequential or combinatorial
digital network you wanted to define.
Now, Uncle Sugar (AKA Uncle Sam) through the US Air Force trained me in digital circuitry. When I enlisted at the same time I was getting married, I figured that electronics was a good field to get into. In the enlistment process, even though I scored lowest in clerical I still scored so well that I could pick my AFSC (Air Force Speciality Code, since degraded into an MOS). I wanted to learn electronics and I figured that since computers were so complex then computer electronics must be the most complex. Ironically, computer electronics is the simplest form of electronics possible, but it led to me getting my Computer Science degree at my Permanent Duty Station.
Here's where that is pertinent. In most transistor circuits, you have three modes of operation: Full cut-off, switched off -- full saturation, switched on -- FORBIDDEN ZONE, the range inbetween where analog operation occurs. FPGA circuits are digital circuits. Digital circuits NEVER operate in the FORBIDDEN ZONE. A digital circuit never EVER operates within the forbidden zone of voltages. At least, NEVER EVER
BY DESIGN.
In addition, every digital circuit has an analog characteristic. No circuit is every purely what it is supposed to be, but there are always all kinds of parasitic capacities, inductances, and all other kinds of mean nasty electrical kinds of nonesense. The physical complexities to be found within the simplest of electronic circuits can be next to mind-boggling.
Back to that diffential amplifier using an FPGA. Every single element in that FPGA, being a digital component, had a particular
digital functionality. That
digital functionality is very important, because that defines the limits of what a mere human engineer could ever possibly work with.
So what happens when the design in the FPGA goes beyond what any human could have possibly done?