5 ms·
It all depends on how you define "boring": • If you mean "familiar" then you're right: something you know is better than something you don't. (But it's not the
by tikhonj 10y ago
It all depends on how you define "boring":
• If you mean "familiar" then you're right: something you know is better than something you don't. (But it's not the way to learn or expand your horizons.)
• If you mean "stable" then the whole thesis is a bit of a tautology—crucially, there's no fundamental contradiction between "new and shiny" and "stable", and "boring" stuff is often also unstable/insecure/bug-prone (think PHP or C).
• If you mean "popular" or "mainstream" then you're putting way too much stock in the judgement of crowds. Crowds and fashion are fickle and the popularity of a product is a poor indicator of any intrinsic qualities.
I've seen people using all three of these definitions—and linear combinations thereof—when talking about these things. More too, probably.
I think it's important to separate them out exactly what you mean by words like "boring" or "practical" when talking about software tools and abstractions to understand exactly what's going on and to communicate clearly.
- owdadithurts 10y agoMaybe "stable" was the wrong word. Perhaps "proven stable" would be better. It's not that "new and shiny" can't be stable, it's just that it hasn't proven itself stable yet. It hasn't been around long enough to prove it. So it's more using technology that has over a decade of proven dependability, over something that may or may not be.
- cutler 10y agoElixir, Clojure and Scala cut across this distinction. They're very new and shiny but built on proven technology. In that sense maybe they're a better bet as they definitely bring something new to the table and help solve hard problems. I think Clojure suffers most from this familiarity bias as I'd argue it's at the top of the excellence tree despite being largely ignored by an industry forever wedded to C# and Java.
- kod 10y agoIt's been over 12 years since Scala 1.0. I've been doing Scala full time for 7 years. It's not new and shiny.
- a-saleh 10y agoI think there is one more meaning missing on your list is "understood", a more general cousin of "familiar". Usually "boring" can mean that not only you are familiar with it, but that many people are, therefore there will always be people to help you.
- wsinks 10y agoI am saving this comment! Very well written on the choices between old, new, and stable - the third orthogonal option.
- noam87 10y agoI prefer to go with Rich Hickey's definition of "simple" (https://www.infoq.com/presentations/Simple-Made-Easy https://www.infoq.com/presentations/Simple-Made-Easy). That's why I chose Elixir for our product, and am so glad I did; it may be shiny and new, but it's dead simple. The "boring" familiar choice would have been Ruby / Node, etc. I think the problem is when people jump on shiny new bandwagons just because of the shiny factor. When instead they should ask: "Does this shiny new technology radically simplify something that is currently complex and is at the core of my application?" (again, going with the above talk's definition of "simple")