I’ve been reading a provocative book by Michael Behe called Darwin’s Black Box. In short, he’s arguing that Darwinism goes a long way to explaining why the various forms of life are the way they are, but is completely unable to address some of our questions and issues, specifically how life arose in the first place and how a number of low-level biochemical structures and systems came to be.
His argument hinges around the idea of irreducible complexity. Take the example of a mousetrap – a mousetrap is irreducibly complex because you need a base, a hammer, a spring, a catch to hold the hammer back and some cheese to tempt the mouse with. If you get rid of any one of those components, you have a wholly non-functional mousetrap. In fact, if the base isn’t sturdy enough, the hammer heavy enough but not too heavy, the spring springy enough etc., then the thing probably won’t work either. It is irreducibly complex because it requires a number of special components to be together, configured correctly and each meeting certain criteria, otherwise you have a paperweight that would not pass on its genes. There is no way to start with just one or even two of those components lying around and progress through a monotonically beneficial series of minor mutations to get to a mousetrap.
He tries to show in a series of unnecessarily detailed but very readable chapters that e.g. the clotting of blood, the immune system, cellular cilia and flagella (propulsion mechanisms) and vesicular transport are all examples of very complicated and irreducibly complex mechanisms at too small a level for science in Darwin’s time to know about. It would be like an internal combustion engine evolving. And he points out that even if you got a working combustion engine going, unless it goes at a certain minimum speed (say tens or hundreds of revolutions per minute), you might as well not bother.
Sometimes he overstates his case. The immune system example is interesting, but you might imagine that the original immune system started with just a handful of hardwired responses and *somehow*, god knows how, it became more and more general. But his point still stands that no one has a really good, convincing answer or even reassuringly specific set of speculations about how the antibodies, t cells, b cells, the cells that puncture unwelcome invaders etc. all came to be at once. Without a minimum functioning set of interacting components, you have roadkill – and it’s impossible to imagine how to get from rocks past roadkill in a series of small, always-beneficial mutations.
I haven’t finished the book yet, but very nearly. What I’m curious about is where he’s going to leave the reader. It really seems as though he’s pushing for god, or at least some kind of godly ‘intelligent designer’ to step in, since he’s quite certain that no form of evolution of natural search could do the job. I’m reluctant to accept this conclusion. I can’t help but feel that this tells us that the DNA programming language is cleverer still than we thought. On the one hand, nature’s machines are gradually transformable, robust to damage, distributed and parallel like the brain, and yet on the other hand, they can involve long strings of essential components that interract in irreducibly complex and fragile ways.
My only response at the moment is to try and think about how these flagella and immune systems and biochemical cascades get represented in DNA. On the one hand, they have to be represented in a precise, error-free, symbolic way, and on the other hand, they have to be mutable and robust so that tiny copying errors lead to beneficial mutations much more often than chance would have us believe. Because, at root, though Behe fails to really put it in these terms, he’s arguing that an evolutionary search through a space large enough to encompass the kinds of biochemical mechanisms he discusses would simply be too too large unless there was some very powerful representation or clever pruning or mid-life self-organisation going on. He briefly discusses Kaufmann’s ideas about complexity and catalysed self-organisation, but he doesn’t really understand them, and neither do I, and he says that they’re mathematical models rather than actual, nitty-gritty biochemical stories.
I keep coming back to the idea of DNA as a very clever, very high level programming language (at least some of the time) – in such a hypothetical language, if we had rules to say that any legal source code constructs a relatively viable creature, and the mutations are such that only legal source code can come from legal source code, then you could mess with it all you like and you’d still have lots of organisms that more or less worked. It wouldn’t be like adding random characters in the middle of your C++ source code, and hoping they fix your bug and double the performance. However, it looks as though the mutations are more often than not random – the cosmic rays aren’t very discriminating. And it makes no sense to imagine that there could be a programming language whose legal source code only ever built viable organisms. That would be like a language that only ever produced true and interesting statements. But one might imagine that if DNA is a high-level programming language, then it could have found ways to program its own copying mechanisms to ensure that a mutation gives rise to legal code more often than not (e.g.by ensuring that the crossover points happen in roughly the right places), and that that source code operates at the level of objects (like classes in C++ or Java) so that you can build increasing levels of abstraction. So you might imagine a line of DNA++ that says ‘if A and B then not C’ or ‘if B>5, then do X’. That way, messing with the contents of the slots, i.e. which objects go where, you could relatively rapidly build up a few lines of code that do something cool, e.g. only start to clot when there’s tissue damage and not that much clotting already. When that works, you treat that paragraph as an object/function by marking the start and end with a tag that says “useful code – don’t mutate unless you’re feeling really capricious”, and then build a more sophisticated clotting mechanism around or on top of that that facilitates healing once the immediate danger of bleeding to death is over.
In the case of bacteria, you have absolutely shitloads of them wandering around, and if you’re mutating at the level of swapping functions and objects in and out, rather than individual characters, then you could search through a pretty large source code space pretty efficiently, building increasing levels of abstraction in small steps. Moreover, if one bacterium solves the problem of vesicular transport, and the other one figures out how to propel itself, you just combine the two bits of code together.
What’s the alternative? God? A planet that’s much older than we realise? Some proto form of life that solved all the biochemical problems for us, then died out or went to live like a hermit in the middle of a volcano? Aliens? Could our hindbrains be unconsciously directing things from above? Nah.