|
Not so obvious. I have a couple problems with this statement. The first is that it confuses programmer (as in "coder") and developer (as in "designer"). But maybe that distinction didn't exist yet. To me, a programmer/coder is actually a translator - they translate the solution expressed in the specification of a program into a computer language (which is typically itself translated to machine code by a compiler). In reality, gaps in the specification or impedance mismatches between the specification language and the computer language can "force" a programmer to become a designer. In a way, one can still see this as a translator having to translate an idiomatic expression. The second problem with this statement is the same as with "readability": it is very subjective. That's why another claim in this text, that incomprehensible code written by bad programmers dies early, has been proven false in practice. Readability and viability are in practice separate concerns. For instance, highly optimized code is often less comprehensible than naive code yet it is more viable because the extra efficiency is required. Furthermore, human to human communication using a computer language is more or less efficient depending on the distance between then computer language and natural language; as an extreme example, it would be terrible to communicate using assembly language. So the H2H communication problem is better solved with documentation. That is, comments if we speak strictly about computer code. Now the question is: if comments solves the human to human communication problem, why would one has to write more comprehensible/readable code? To me the answer is: you don't write comprehensible code in order to better communicate with your fellow programmers, you write comprehensible code because you write the simplest possible code. It is comprehensible because it is simple, not because of the additional requirement that it has to be understood by someone else. |