TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Should orgs limit the number of languages/frameworks?

31 pointsby noop_joe12 months ago
My teammates have been working on a collection of documents [0] about developer platforms and we&#x27;ve been talking about limits organizations can impose on acceptable languages and frameworks. Curious what HN thinks, how do you handle cases when there&#x27;s an unused language that might be better suited to a business use-case?<p>0. https:&#x2F;&#x2F;developer.app&#x2F;expectations&#x2F;code-neutral&#x2F;

16 comments

simonw12 months ago
At a small scale, pick the smallest set of boring technologies possible and be strict about using them. Introducing a new technology should only be done if it gives a sizable advantage that can&#x27;t be had with your existing set. <a href="https:&#x2F;&#x2F;boringtechnology.club&#x2F;" rel="nofollow">https:&#x2F;&#x2F;boringtechnology.club&#x2F;</a><p>As you get larger (&gt; 50 engineers in my opinion) you may need to switch things up a bit. I really like the &quot;golden path&quot; methodology described by Charity Majors: <a href="https:&#x2F;&#x2F;charity.wtf&#x2F;2018&#x2F;12&#x2F;02&#x2F;software-sprawl-the-golden-path-and-scaling-teams-with-agency&#x2F;" rel="nofollow">https:&#x2F;&#x2F;charity.wtf&#x2F;2018&#x2F;12&#x2F;02&#x2F;software-sprawl-the-golden-pa...</a><p>Short version: pick a set of tools that are fully supported by the organization: projects that use them get backups and deployment and testing and ops and development environments all provided by default.<p>Teams can stray from that golden path, but they&#x27;ll need to solve that operational stuff themselves.<p>UPDATE: I just read <a href="https:&#x2F;&#x2F;developer.app&#x2F;expectations&#x2F;code-neutral&#x2F;" rel="nofollow">https:&#x2F;&#x2F;developer.app&#x2F;expectations&#x2F;code-neutral&#x2F;</a> and I mostly disagree with it: allowing developers to mix and match any langauges and frameworks they feel like is a huge competitive disadvantage and will greatly damage your ability to maintain software and build features productively over time.<p>The exception is editors and personal development tools - developers should be able to use whatever works best for them there because it has no impact on other developers - my work in unaffected by your decision to use Emacs instead of VS Code.<p>But don&#x27;t make your Python programmers on a tiny team have to fix bugs in a Ruby app because some other developer liked Ruby better!
bastawhiz12 months ago
Letting languages be a free for all is a terrible decision for an org of any size.<p>1. The more languages and frameworks, the more things need to be updated. The number of security upgrades you find yourself doing scales linearly with the number of runtimes you support.<p>2. If you can&#x27;t share business logic, you&#x27;re wasting time. Gluing two microservices together because the logic you need is in another codebase is infinitely more complex than just importing&#x2F;copying&#x2F;submoduling what you need.<p>3. You&#x27;re not gonna support all those languages forever. Maybe two will survive. The champions of whatever one off project you have will leave, and that code will languish. You <i>will</i> pay the cost of rewriting that code.<p>4. There&#x27;s really no issue with &quot;the right tool for the job.&quot; All the languages can do all the things if you wield them correctly. The first version of Uber was written in PHP. There&#x27;s no strategic advantage to picking a language for one specific project: pick your languages to support the needs of all your future projects.<p>5. Your greatest bottleneck is going to be people. Hiring and keeping good people is and will always be the hardest task you encounter. If you rush it, you get bad people. You simply cannot hire enough people who are either polyglots or of such quantity that you can dedicate them to each one off project in its own special language.<p>6. You will eventually need to start scanning for security issues. Multiply the complexity of that by the number of languages and frameworks you use. Explain to your general counsel and CFO why is so slow and costly to do an audit.
liampulles12 months ago
Unless the main set of languages you have are totally unable to solve the new usecase, its almost certainly going to land on the tech debt side of things. This is a new build chain, set of dependencies, development tools, developer skillset, etc. we are talking about here - not small stuff.<p>Also to get common libs (e.g. middleware, API definitions) going will be much harder.<p>The real reason new languages come up in discussion is because of bored developers - that has been my experience at least. And I don&#x27;t exclude myself from that, it is a major factor in me looking for new work. Now assuming that cynical theory is true, there is an argument to introduce cool stuff to retain good developers - with the understanding that you are shooting yourself in the foot a little bit.<p>I&#x27;ve wondered about the possibility of allowing a prototype in a &quot;cool&quot; language or framework, with an understanding that it must be replaced soon after by a stable refactor in the existing language set. I think that would appeal to people who want to try something new as well as people who enjoy refactoring, and there would be a kind of extreme programming motivation to the business. I&#x27;ve never tried to get this kind of thing going though.
评论 #40567923 未加载
zoenolan12 months ago
I wrote about how multiple languages cost us a lot of time at a previous place<p><a href="https:&#x2F;&#x2F;zoenolan.org&#x2F;2022&#x2F;09&#x2F;language-choices&#x2F;" rel="nofollow">https:&#x2F;&#x2F;zoenolan.org&#x2F;2022&#x2F;09&#x2F;language-choices&#x2F;</a><p>This means now, I have a high bar for choosing something non-standard . It is not just writing the code but all the support, bug fixing, deployment and maintenance. Not to mention being able to hire with those skills
99990000099912 months ago
Unless you have a really good reason to, stick to a few programming languages.<p>Hypothetically let&#x27;s say F# Guru gets hired. They&#x27;re the only ones who really knows it. They program a key system in it, then quit.<p>Who maintains all this F# code.
评论 #40569475 未加载
armchairhacker12 months ago
Handle proposing a new language or framework the same as any other proposal: figure out the benefits and drawbacks, and decide if the former outweigh the latter.<p>Adding a new language or framework to an existing organization has big drawbacks: it requires developers to learn it, adds complexity overhead, and if the project using it integrates with any other projects, well, integration between most languages and frameworks isn&#x27;t very good. If the organization is already using several languages and frameworks, presumably they cover a wide-range of use-cases, so they&#x27;re less likely to encounter a new use-case that only a new language or framework solves.<p>But I&#x27;d strongly suggest not to implement a fixed &quot;company will use N languages and M frameworks max&quot;, because it depends on the situation. It&#x27;s similar to enforcing strict coding conventions (e.g. &quot;variable names should be between N and M characters&quot;, &quot;functions should be under N LOC&quot;, etc.). Sometimes there is a good reason to write unconventional code, and similarly, sometimes there is a good reason to add a new language, no matter how high the number of already-used languages is.
thebeardisred12 months ago
Start by quantifying what the cost of acquisition is for more developers with said specialization and if that business use case is making you money.<p>As an engineering leader I have witnessed that oftentimes folks confuse &quot;neat&quot;, &quot;cool&quot;, and actual business use cases&#x2F;needs.
评论 #40567272 未加载
joshstrange11 months ago
Unless your company is large I think it makes perfect sense to limit the languages and frameworks you are allowed to use. For example, we use PHP and Vue at my company, if someone came in and said “we should use React&#x2F;Angular” I’d seriously reconsider that hire and shut down that insanity. Mostly because there isn’t really anything we care about that can be significantly better in either of those frameworks. The same goes for PHP, we do have a few low-level C programs in our stack but by and large PHP is the main workhorse.<p>We have best practices, we have code examples, we have libraries all written in these languages&#x2F;frameworks and it would take a _lot_ to consider leaving that behind for something new and shiny. Most importantly we have experience and expertise in these languages&#x2F;frameworks, the improvement would have to be massive to consider retraining people.<p>Often there are hyper-specific examples where X language can do Y thing better than PHP but at the end of the day I’ll take a slower process in PHP over a different language because anyone on my teams can work in PHP whereas it’s going to be a small majority (or 1 person) who can work in the different language.<p>Put another way I’ll take a homogenous less than perfect (perfect = fastest&#x2F;best language for each job) codebase over an unmaintainable Frankenstein codebase that falls apart when the person who wrote a certain component (and is the only one that understands it) leaves the company.<p>It’s the same reason I hate “clever” code. I’ll take 10 lines of easy to read&#x2F;grok&#x2F;change code over a one-liner every day of the week.
purple-leafy12 months ago
I’d probably live on an 80&#x2F;20 rule just to harbour innovation. I really believe you can only innovate and create something novel by doing different to everyone else.<p>So all core tech uses a consistent language or framework eg<p>- Frontend: Typescript&#x2F;React&#x2F;Next<p>- Backend: C#&#x2F;.NET or Python, Go<p>But people can go wild with things like developer tooling or non-core products and experiment. And I mean experiment:<p>- Try new frameworks, new languages, new paradigms, new targets, new platforms.<p>Let your devs build and experiment with chrome extensions, flutter apps, Swift games, Kotlin VPNs, Lisp DSLs, python TUIs, ascii games, anything just something different from normal work<p>If you just do bread and butter dev work 100% of the time and stay consistent with that, you will become a bread and butter shop, and you will stay a bread and butter dev. Period.<p>Sometimes life needs a bit of spice<p>At work we use Typescript, React, Next, backends are Node, Python, C# as the defaults.<p>But I want to build browser extensions for them in React to extend their online SQL editors. And I want to build TUIs with Go to monitor containers and orchestrate project starts. Maybe I’ll write a data processing command line tool in Lisp. I reckon go wild with developer tooling.
devdude133712 months ago
I had a client that enforced writing every customer facing software in C++14. In 2024 they suddenly need to support various web technologies and modern web infrastructure. They still rely on their language limitations and don’t get stuff done any longer.<p>I advised to use Go and most developers were interested and even enthusiastic about it. We proved Go introduction by using it for simulators and testing. But finally the tech lead said &quot;we will never ship anything different than C++ written applications&quot;.<p>My current client also works in embedded tech, but I proposed a polyglot approach and architecture. We ship apps in Go, Rust, C, C++ and even Fortran. Any developer can pick up any language as long as it compiles to Armhf. No one has a problem reading and at least maintaining any code.<p>There should only be technical limitations and constraints to force down your fellow developers.<p>Frameworks are a different topic. Web frameworks come and go, and most Angular shops I know became desperate legacy plumbing shops. Only use frameworks that you can replace easily or are willing and capable to maintain yourself.
评论 #40568459 未加载
rramadass12 months ago
Absolutely; the issue has to do with the &quot;Cognitive Load&quot; imposed on the programmer. Standardizing on a small set of languages&#x2F;frameworks(ideally one) also has the advantage that developers can better communicate&#x2F;interact with each other using a common language thus enabling better overall productivity.<p>The Cognitive Load Theory in Software Development - <a href="https:&#x2F;&#x2F;thevaluable.dev&#x2F;cognitive-load-theory-software-developer&#x2F;" rel="nofollow">https:&#x2F;&#x2F;thevaluable.dev&#x2F;cognitive-load-theory-software-devel...</a><p>Cognitive Loads in Programming - <a href="https:&#x2F;&#x2F;rpeszek.github.io&#x2F;posts&#x2F;2022-08-30-code-cognitiveload.html" rel="nofollow">https:&#x2F;&#x2F;rpeszek.github.io&#x2F;posts&#x2F;2022-08-30-code-cognitiveloa...</a><p>Cognitive load - <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Cognitive_load" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Cognitive_load</a>
oftenwrong12 months ago
I agree with the other comments that are basically saying to be conservative about adding to your toolbox. Additionally, I recommend using technologies with existing heavy investment from the industry. For example, anything on the top of this list is a safe choice of language in general: <a href="https:&#x2F;&#x2F;survey.stackoverflow.co&#x2F;2023&#x2F;#most-popular-technologies-language-prof" rel="nofollow">https:&#x2F;&#x2F;survey.stackoverflow.co&#x2F;2023&#x2F;#most-popular-technolog...</a> . This reduces risks from having to assume maintenance burden, hiring difficulties, finding support, integration with other technology, and more. Adopting some tool that is later abandoned is a frequent source of pain for small companies. Of course, there may be good reasons to stray from this guideline in some cases.
toast012 months ago
IMHO, it&#x27;s pretty useful to have some consistency across a large organization. That way lessons learned can be applied broadly, and you can pull in people from elsewhere to work on hard problems, etc.<p>It doesn&#x27;t necessarily need to be one way to do things worldwide, but you probably don&#x27;t need to support 5 server operating systems, 7 http servers, and 35 languages in production.
chuckadams12 months ago
Yes for production pieces that Must Work Always, but your devs need freedom to experiment when designing new tools, so your list of approved technologies had better be flexible, or you’ll have a different kind of maintenance problem down the line. As well as problems retaining the talent you already have.
owenpalmer12 months ago
Yes. You should use the lowest number of &quot;technologies&quot; possible. Also, I&#x27;d say that frameworks are harder to learn than languages, so they should be adopted with the same level of caution.
MeetingsBrowser12 months ago
Probably not unless there is a really good reason.<p>If you have a problem that can be fixed by restricting languages, you don’t need to ask hacker news.<p>If you don’t have a problem that it solves, probably don’t do it.