When I was still young in my career, I was obsessed with niche-languages mentioned in big stories on Hackernews. Think Rust, Haskell, or Scala. These hipster languages attracted a small community of experts, people who seemed to be masters at their craft. And I wanted to be part of this community. Badly.
I wanted to belong.
Twitter was a Scala-shop. So when I joined Twitter, I had to learn it. I was finally in a role where I could learn one of these languages and show the world I was cool.
Soon enough, I was writing Scala code, enjoying $6 coffee cups at Blue Bottle Coffee and working for a CEO who stood up hard for free speech.
I was pumped.
I wrote a ton of Scala code. I was still learning the language and not following programming guidelines from the Twitter Scala gods, so each review took three or four iterations. After 6 to 9 months, I was finally operational, productive and focused on shipping features.
A few months later, I started Codiga. And wrote the backend with Scala because I wanted to also build a cool startup. My dream became reality: I was writing Scala code night and day and could taunt Java developers about Monads and functional programming.
Then I had to hire.
And maintain the code I wrote.
I quickly faced the reality of Scala drawbacks. It took weeks or months for new hires to be comfortable writing Scala.
And over the years, the Scala community became a war zone, more toxic than a Twitter thread about politic. Developers were leaving the ecosystem and many libraries were left unmaintained.
It was chaos to operate. Instead of focusing on improving my product and deliver values to my customers, I was struggling to hire any Scala developer. And I had to implement many features myself due to the lack of good libraries.
It was hell.
When I joined Datadog, I discovered Go. In a matter of hours, I was operational, ready to write production code. Compilation is fast. Libraries are maintained. What’s not to love?
Go code is simple to write, simple to understand and fast to deploy.
Go is not cool, it is useful.
You can find developers proficient in Go today. And if they do not know the language, they will master it in a matter of days.
By using a language like Go, you focus on improving your product, delivering more value to your customer and growing your business.
And this is what matters.
Technologies like Scala or Haskell are like Soylent: these are cute ideas that a few tech bros love, but for the vast majority, they are impossible to use at scale.
Technologies like JavaScript or Go are like a good burger: it’s an option that the majority understand and choose regularly. It may not be the most elegant option, but it does the job and allows us to focus on problems that matter.
Ahaha and you were telling me that you felt sorry for me to use go :p what a change ;) but I have to agree with you it’s useful :) and easy to learn :)