The Irreducible Complexity Argument Debunked Using Computer Science

Many creationists and theists invoke the argument of irreducible complexity in an attempt to discount the theory of evolution.

Irreducible complexity (IC) involves the idea that certain biological systems cannot evolve by successive small modifications to pre-existing functional systems through natural selection.

According to the theistic argument dealing with irreducible complexity, because we couldn’t have evolved slowly from single-celled organisms over time, then we must have had a designer! It is a naive argument made by those who don’t have a suitable understanding of the theory of evolution, or even worse, those who choose to work backward from a predetermined conclusion based on faith.

Infinite Recursion

Many have made the point I’m going to make, that is, the problem of the creator of god, but I want to demonstrate it in a way that mathematicians and programmers can easily relate to. Take a gander at the following Javascript class:

class Being {
    constructor(creator, alive) {
        this.creator = creator;
        this.alive = alive;
    // complex beings must be alive and have a creator
        return this.alive && this.getCreator() !== null;
        if (!this.creator.isComplex()){
            throw "universe blows up, creator isn't a complex being"
        return this.creator

Let’s review the code in English. We define a “complex being” as a being that must be alive and have a complex being as its creator. This is a simplistic definition, but sufficient for any debate regarding creationism.

In order to create an instance of a complex being (via the constructor), we must provide a complex being to serve as the creator. In order to create that complex creator, we must provide that creator’s constructor with another creator. This infinitely recursive problem demonstrates the problem:

If we are too complex to have evolved via natural processes, then our creator is too. Our creator's creator must also have had a creator, ad infinitum.

If you have any questions/criticisms feel free to tweet at me!

Thanks for reading, now take a course!

Interested in a high-paying job in tech? Land interviews and pass them with flying colors after taking my hands-on coding courses.


Follow and hit me up on Twitter @q_vault if you have any questions or comments. If I’ve made a mistake in the article be sure to let me know so I can get it corrected!

Subscribe to my newsletter for more coding articles delivered straight to your inbox.