Hacker News new | ask | show | jobs
by chriswarbo 3537 days ago
I think the author vastly overestimates the amount of information required to encode complex behaviours.

In general, the minimum number of bits/base-pairs required to encode some behaviour (i.e. the length of the shortest program which exhibits that behaviour) is uncomputable, see https://en.wikipedia.org/wiki/Kolmogorov_complexity

From an empirical point of view, evolution can't plan ahead and doesn't care about modularity (or at least, such things are higher-level effects which aren't directly selected for). It progresses via massively parallel monte carlo search, rather than "improving" a single individual. This is very different to most software development practices, and would tend to result in much more compact (genetic or computer) code.

The results of our software development practices are incredibly bloated compared to products of evolution. 10MB for an artifact like Dwarf Fortress is huge; we would likely make very significant gains if we compressed it using a superoptimiser (as long as we ignore petty issues like the heat-death of the Universe!).

The advantage our practices have over evolution by natural selection is that they're much faster. Our software is intelligently designed by programmers, who can think ahead about what features or changes might be useful and make specific, targetted changes to the code to bring them about. The redundancy, modularity, structure, separation-of-concerns, etc. which we strive for in our software facilitates this process.

Wikipedia says Dwarf Fortress has been around since 2002. Even if evolution were 'guided' towards such a thing, we would never expect it to come up with such a program in mere decades (although it can certainly make measurable optimisations, and small-but-important changes such as drug resistance).