HACKER Q&A
📣 blunte

Should we narrow our language/tech stack focus?


The number of programming languages continues to proliferate, as do the frameworks and libraries for each.

In many ways this leads to nice advancements, but it also has negative impacts: distraction, reinvention, technical debt, and other issues.

Proprietary zones have few or no options (C# Windows, Swift macOS); but those are the narrow cases. Internet and web services run Python, Ruby, Elixir, C#, Java, Kotlin, PHP, JavaScript, Perl, and probably half a dozen other languages.

If you look at any one language, you'll usually find one or more heavy frameworks (Rails, Django, Phoenix, Laravel, etc.), and even more lightweight frameworks and libraries tailored to more specific needs (APIs, services, etc.).

Should we not stop for a bit and evaluate what exists, then make an effort to consolidate? Are we not exhausted with job specs that list 5-10 very specific requirements which fit an increasingly narrow target group of devs?

Or the counter question: are we really benefitting from further diversification? Is there an overall return on investment in our proliferation of frameworks and libraries (and languages?).


  👤 webmaven Accepted Answer ✓
In my experience, depending on multiple external ecosystems isn't all that much of a problem (as long as they don't get orphaned) in terms of development and maintenance, but it can hinder internal code sharing and skill transfer. In particular, junior devs will take extra time getting up to speed on each internal app because it is in yet another unfamiliar language. But maybe you don't onboard junior devs all that often.

Anyway, while different languages each have their own tradeoffs and benefits, doing a sanity check on whether the putative benefits actually apply to your use might be advisable. IOW, do you really care that language X has a faster startup time when the app written in it is a long-lived server process, so startup time isn't the bottleneck?


👤 weatherlite
It's kinda the same with human languages - wouldn't it be better if all Europeans had one language, or in fact if the whole world just spoke English/Chinese? The thing is there are cultures invested in the languages they learned from their parents. Well, there are Rust and Elixir and Ruby devs who are invested in their language. Not only are they invested, in many cases they actually love their language and deep down think its mostly superior to other languages. They don't wanna speak Java. How will you change their minds?

Also - not all companies adopt more than 1-2 languages. It's pretty crazy to have 5-10 languages in one company I think.


👤 Bostonian
Maybe, but how do you get the C# programmers to give up their intellectual capital and switch to Java, or the reverse? If two languages are similar, it makes sense to learn only one of them thoroughly, but that makes it difficult for you to compare them objectively.