2 ms·
I've done many of these things, documenting the arguments, evangelizing and building up enthusiasm in my team (I didn't write the Elixir system alone), etc. but
by ramchip 8y ago
I've done many of these things, documenting the arguments, evangelizing and building up enthusiasm in my team (I didn't write the Elixir system alone), etc. but was still told by our lead engineer and technical managers not to use the language for new systems. Some arguments I heard:
* Even if we can find some people excited about a minor language right now, what about in 10 years? The language could be abandoned and nobody would want to learn it. If we use a popular language instead, we know we'll be able to maintain the systems and hire people for a decade or more.
* It's already hard enough to hire average engineers fresh out of school, let alone experienced, polyglot ones.
* We couldn't reuse internal libraries in popular languages so our systems would take more work, and other teams wouldn't be able to help us.
* Kubernetes / Kafka / Redis are language-agnostic and more powerful than OTP supervision / messaging / ETS.
IMHO some of these arguments are flawed, but it's been difficult getting the more resistant folks to actually consider the pros and cons and not just toss the idea aside. Your comment about hosted languages is a great point though, and your post makes plenty of sense. Thanks for the motivation :)
- didibus 8y agoWell, it looks like you did try hard then. You definitly get my respect for that. Your company and leadership sounds simply too stubborn. In that case, I think there's only three options. 1) Resolute yourself that you won't be working in your preferred language. And try instead to find satisfaction in other aspects, such as your designs, maybe bring in some functional influences, adopt more data driven patterns, etc. 2) Look for a more open minded place to work. Honestly, that might be a good career move. If all they can hire are new grads or mediocre coders who can't pickup a new language, what's in it for you? Who will you learn from? Remember, 10 years from now, do you want to have 10 times the same experience, or 10 years of experience? If the latter, it means every year you have to be given an opportunity to take on something you don't know, that's at the next level of your capacity. Which allow you to grow, learn new skills and master existing ones. 3) Work to gain trust and leadership yourself, until you are in a position with the right authority to make the decision your own. I think all three are fine choice by the way. With different trade offs of risk/reward/effort. It's a personal choice. I'm just listing them, because sometime we don't realize there are options.