I recently stumbled upon this blog post: So Heroku is on the way to replace its Erlang-based router with a Go-based one.
This would not be all that noteworthy, happens every day, and I could just say “Have fun with your new GF then and good luck”.
What is interesting is the reason they give for taking this step, which is for once not the shortage or costs of Erlang developers (they are backed by Salesforce, what do they care about money?), but that tl;dr (internal and) open source projects they depended upon declined, decayed, or were altogether abandoned, at some point forcing them to pin down on an Erlang version, in turn preventing updating other components and impeding development and progress in general.
Now, one might say that they could have contributed back to the projects they were depending and making a profit on. Then again, from a companys perspective, this is not what you bought into back when you decided on a technology. It is not even in your best interest to pay people to further projects from which your competitors can later benefit for free. And last but not least, some projects are really stone-dead, contributions ignored, nothing happening or likely to ever happen. There may be alternatives, but switching to them requires effort, which again may have to be repeated when that project dies.
I am worried about the example this sets. Erlang itself may be top-notch and at the bleeding edge of things. But to build something meaningful at production scale, you will always need additional libraries and projects to pull in. Erlang projects often seem to be one- or few-man shows, more than what is the usual case with open source projects, and thus disproportionally at the risk of dying with the interests of their maintainers, or their maintainers, period. And then, along comes something like Go…
In a nutshell, I can understand what induced Heroku to take this step. But it makes me worried. I think this is something that the EEF should be discussing seriously.