Stephen C. Meyer is an intelligent design advocate and a co-founder of the Discovery Institute.
The core argument of Stephen Meyer’s book, Signature in a Cell, written in advocacy of intelligent design, is this: DNA is a code and a computer instruction is a code. Since computer code requires an intelligent designer, and DNA is a code, it follows that DNA is a product of, or is controlled by, an intelligent designer.
This argument has no foundation if one does not accept its basic premises: that DNA is a code that a computer instruction is a code, and that the term 'code' is applicable in exactly the same way to both uses.
Men take the words they find in use amongst their neighbours; and that they may not seem ignorant what they stand for, use them confidently, without much troubling their heads about a certain fixed meaning; whereby, besides the ease of it, they obtain this advantage, That, as in such discourses they seldom are in the right, so they are as seldom to be convinced that they are in the wrong;John Locke. An Essay Concerning Human Understanding, Book III, Chapter X.
Before leaping to any conclusions based on our use of the word 'code', we must, if we are to be scientific, first define 'code'.
A code is a member of the class 'symbols'. A first level symbol is a label which is used in place of the thing which it identifies. For example, suppose a building with a sign over the window which bears the word 'pharmacy'. We can use the symbol 'pharmacy' in language as a symbolic substitute for any real pharmacy. Suppose now that we invent a slang term 'pill-farm' to mean 'pharmacy'. We now have a secondary label 'pill-farm' which is a second-level symbol for 'pharmacy'. 'Pharmacy' in its turn is a first level symbol for a real building of a specific type.
By convention, a primary symbol is a name, but any secondary symbol is a code: a symbol which stands in place of another symbol. For purposes of clarification, I will give another example. 'And so forth' is a primary label or symbol for an idea. By converting it into Latin, a language spoken by few speakers of English, we encode it as 'et cetera'. We now abbreviate it to 'etc.', a second level coding.
A code is not a symbol. A symbol is not a code. A symbol stands in place of an object or idea. A code stands in place of a symbol: it is a symbol for a symbol.
In computer instructions, we start with the simplest possible representations of what is going on inside a computer chip. We observe that a location in a computer chip can be at one of two voltages. Taking these voltages as our idea we invent symbols for the two voltages: '1' and '0'. These are our primary symbols and they can only be written as binary expressions.
As a convenience, we can use a form of abbreviation which is easier for humans to handle than binary. The most common such abbreviation is hexadecimal code, or hex. As an example, the binary 1010 0101 can be written as A5 in hex. Note that hex, being a secondary symbol level is a code.
When dealing with binary as computer instructions rather than as numbers it is convenient to use mnemonic codes. It may be that the binary string 1111 0000 1100 0100, or F0C4 in hex, is an instruction to the computer core, expressed as F0, to jump to memory location C4, but only IF a previously computed result was non-zero. We can write that as a mnemonic code: JNZ C4.
Such mnemonics are called assembly language. The 'assembly' part of the name comes from the fact that this mnemonic code needs to be assembled into a package of binary numbers in order for the computer to be able to use it as a program.
DNA is a string of molecules. There are four main components: guanine, adenine, thymine and cytosine. Those names, the words 'guanine', 'adenine', 'thymine' and 'cytosine' are primary symbols invented by humans to identify the physical molecules which are found in DNA.
For convenience, we often abbreviate these symbols to CAGT, so that we can more readily handle the huge volume of data which we have accumulated about DNA. Please observe: there exists a long molecule of a type which we label DNA. It has four major components to which we assign symbols as names. We next assign symbols to the name symbols as an abbreviating code. We humans have agreed to assign the four letters CAGT as a code for the symbols which in turn stand for the molecular components of DNA.
A code is a symbol which stands in place of a symbol. The four letters CAGT most definitely form a code, being symbols for the names of the four major components of DNA. The names guanine, adenine, thymine and cytosine are not codes: they are primary symbols. Primary symbols stand for real things and not for symbols. The real physical entities guanine, adenine, thymine and cytosine are not codes. If anyone wants to call them codes, let them point to the symbols which might be replaced by these 'codes'.
A computer code is a set of numerical values sufficient and necessary to the production of an end state from an initial state.
DNA is necessary but not sufficient to the production of an end state from an initial state.
To claim that computer code and DNA are both codes is an abuse of the power of words. It is decidedly not scientific.
Anyone who already believes in intelligent design will derive no new knowledge from Stephen Meyer's book.
Anyone who believes in a rigorous approach to science will derive no new knowledge from Stephen Meyer's book.
I conclude that no value is to be obtained from Stephen Meyer's book by any thinking person.
Edit: further reading
More articles in the debate about whether or not DNA is "really" a code.
http://ds9a.nl/amazing-dna/ - a highly recommended read!