A few years back while learning Go, I came across a compliment that someone had extended to Go’s creators. I don’t remember where I saw the quote and five minutes on Google didn’t find it so here’s my own reconstruction:

Thank you for creating a language so simple that the most interesting thing that I can do with it is to get shit done.

I learned just enough Go to make my way through all of the “learn Go” exercises and complete a half dozen Project Euler challenges. The language didn’t really stick, but the compliment, that really stuck with me.

The idea of a language so simple that there was no new or interesting thing to chase after was compelling. Just imagine! I could build all the things in my head instead of constantly wasting time learning the newest tool or technique.

So why didn’t I adopt Go more fully? Well, I realized two things:

I’m more interested in building interesting things than in building using interesting tools. I realized that I already know The Boring Stack.

You probably already know The Boring Stack.

So, what is The Boring Stack?

It’s whatever stack you already know so long as that stack is capable of completing the interesting thing that you want to build.

If you’re starting a new project where the reason for beginning work on said project is to have a new thing at the end — you should probably use The Boring Stack.

If you’re interested in learning whether or not you’re capable of building that thing — you should probably use The Boring Stack.

Your Boring Stack may be interesting!

The Boring Stack doesn’t have to be boring. You just have to know it well enough to mostly ignore distractions and get on with doing the interesting work of getting shit done.

It’s possible that your version of The Boring Stack is very interesting. If you’ve known Rails for 10 years, Rails is probably your Boring Stack. It’s tempting to look at all the new stuff going on in JS, Rust or Erlang and decide that Rails is boring. Not true! Really rad stuff lands in Rails all the time. Yarn landed in Rails faster than it landed in most front end teams and front end teams are obsessed with New Shiny™.

Maybe your boring stack is PHP (someone just groaned about PHP). It’s tempting to read all of the articles making bold claims about PHP being a second class language and decide to learn a new, more respected, language. If your goal is to work in a respected language then you’re bad a setting goals — Huge companies ship great products with PHP. Some even find the language interesting.

What is your goal?

Want to be multi-lingual? Learn a new language.

Want to be recognized a great communicator and join the professional conference circuit? Unless you’re under 5, learning a new language is an awful place to start.

If you want to ship great products learning new languages and frameworks is not the way to go. You need to find your Boring Stack.

Stay focused! Don’t sweat interesting tools. Ship something.