Original question from Quora:

Why hasn’t someone reinvented coding to make it simpler?

My Answer:

You can’t make it simpler, you can only make it different.

Allow me to explain…

Have you ever watched the 4 chord song?

It’s funny and it’s meant to be funny, but it’s completely true about pop music. If you learn those four chords, you can play a staggering amount of songs.

Yet, popular music seems incredibly complicated if you don’t know how it’s made.

It seems impossible to become a popular musician because there are so few of them and they all seem so talented that it feels unattainable.

At least it does until you understand that they are playing a lot of simple, boring chords over and over again. If you knew how to play those chords, you could be up on stage too.

Funny story, I’ve been playing guitar at my church for the last ten years or so. There are approximately two kinds of songs in modern Christian worship music - songs that use G, C, D, A minor, and F…. and songs that use E, A, B, C#…

After a while, you’ve seen a bunch of the same variations of those 4 chords that you can play over a hundred modern worship songs. If you are on guitar, you might use the capo to move that pattern up and down the fretboard.

A musician/songwriter can have an entire career off of two sets of chords that can be learned in a summer. Some actually have.

Yet, music is an incredibly complex thing. If you’ve ever picked up an instrument, you will understand just how difficult it is.

You can sink thousands of hours into practicing music and not come close to truly mastering it.

Music is absolutely simple and infinitely complex.

The patterns are often obvious and repetitive, but there are so many ways to put them together that you can’t imagine all the possibilities of music and sound.

What does this have to do with software? I’m glad you asked.

Writing software is no different than writing music. There are patterns. There are known ideas. It’s absolutely simple.

In python, you can write:

print “hello world”

…and it will print that out to the screen. It’s absolutely simple.

Even the largest and most complicated programs are often a series of simple variable assignments, function calls, if statements, and loops.

In fact, you can write just about anything with those few constructs.

Yet, software is an incredibly complex thing. If you’ve ever written software, you will understand just how difficult it is.

I’ve sunk decades into learning code and I’m nowhere close to truly mastering it.

Software is absolutely simple and infinitely complex.

The patterns are often obvious and repetitive, but there are so many ways to put them together that you can’t imagine all the possibilities of software.

That is what makes software magical.

The ultimate simplicity is already there. The basic patters and ideas we already know. However, there is an infinite complexity in how we put those patterns together.

Any advancement in perceived simplicity is only making it different. It’s only more variations of basic patterns.

It’s already simple. The interesting part is the infinite complexity of variation.

-Brian

P.S. Have you subscribed to Code Career Genius yet?