frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Ask HN: How do you choose languages for building applications?

29•yamapikarya•4mo ago
Say, i want to build tcp client for check connection and can deploy anywhere without install any dependency, so i think golang would be a great choice. Maybe because your team are more comfortable with Python or dealing with AI/ML stuff, Java if you're dealing with Android apps, or because you are working on bank company, Rust for efficiency or some web server, Elixir i heard it's good for building messaging apps, C# for games, and even visual basic if you're dealing with legacy stuff.

Comments

gethly•4mo ago
No matter what people say, the reality is that people use languages they know best. And unless you strive for the best possible performance, there is really no other reason to change that. Do not let perfectionism be in the way of "good enough".

Also, you can ship fast and write more performant version, possibly in different language, later.

OccamsMirror•4mo ago
Although sometimes the choice is so you can learn that language, which is absolutely the best way to learn a new programming language.
gethly•4mo ago
Absolutely! I always tell people who want to learn to program to have a goal in mind. Something they want to actually build and use, not just yet another todo list they do not care about and won't touch ever again. In a way, it is better to have a problem first, then learn a programming language to fix that problem instead of the other way round.
apothegm•4mo ago
1. What’s vaguely appropriate. You’re probably not going to write C++ for browser frontend, and JavaScript is probably not a great choice for embedded. But there are a zillion equally valid options for web backends, for instance.

2. Ecosystem. I might choose a language for a game based on available frameworks. Or Python for ML based on available libraries. Or if you want to work with XMPP, Erlang is handy to know.

3. Familiarity. You’ll move faster and write better code with a language and ecosystem you and your team are already familiar with.

But often there are many valid options and you just have to choose one.

Jugurtha•4mo ago
What are you trying to accomplish? Say it's a start-up or a profitable business, you need to test your hypotheses, validate/invalidate the idea, etc. The risk is not technical, it's a business risk, so you ought to get to the truth as fast as possible, and you get there using what you're most productive in. The goal is to discover if it's "desirable, feasible, viable", not to optimize prematurely.

>Say, i want to build tcp client for check connection and can deploy anywhere without install any dependency

Why? What are you trying to accomplish? Where do these constraints come from? Where does the no dependency constraint come from? Where does deploying anywhere come from? Where does checking the connection come from? What is the real problem you are trying to solve?

These questions are to avoid the XY problem, to avoid the trap of solutionism, and to get to the "Job to Be Done".

Someone once asked me how to solder a thick copper wire to a thin steel plate. When I asked him why, I listened in disbelief as he answered that the fuse blew out and that he was going to get a thicker wire and solder it so it doesn't blow out. His solution comes from an incorrect diagnosis of the problem at hand, and he asked me about the solution framed as problem, not the true, root, problem.

To answer your question: it depends.

gangtao•4mo ago
chose the one I am familiar with
cdaringe•4mo ago
https://cdaringe.github.io/programming-language-selector/
superkuh•4mo ago
Forwards and backwards stability. I want my language to be able to run code I write today in 2035. And for code I write in 2035 to work on my toolchain from today. I don't want code I've written to stop working or only work on eternal wave of newest and break on setups a few years old. I don't want to install a separate version of my language for every application, I want to use the system version. I don't need the latest and greatest computer science features. I just need something that can do almost everything and keep doing it reliably forever* (*in computer tech terms 10yr+). It does exist but it's rare.
lmm•4mo ago
1. Figure out the best programming language (it's Scala) 2. Use that for all the applications I build
counter2015•4mo ago
same
gt0•4mo ago
For legacy stuff, almost by definition, your language is picked for you. If you've got a million lines of VB, then I guess you're using VB, but it could easily be any other language.

For everything else, you either go with what you know, or just try to evaluate the best choice based on the language and toolchain.

BrenBarn•4mo ago
I just stretch as much as possible to use Python for every task.
CJefferson•4mo ago
I have two metrics:

1) languages I know and like.

2) what are other things in the same area written in? This doesn’t mean those languages and libraries are best, but it does mean they will be well supported. Someone will update stuff to iOS 16, or when chrome changes how cookies work, or care when one of your users has 4 monitors all at different resolutions. If you pick something obscure enough, you are fixing all those things yourself.

bionhoward•4mo ago
Rust for everything, I could explain but it would get rude
throwaway81523•4mo ago
https://www.youtube.com/watch?v=Bwc-Hkhlq7w
itake•4mo ago
for personal projects, I am leaning heavily towards golang for all things, because the langauge never changes.

I'd rather spend my limited time developing features, not updating the code to the latest node/python/pip/uv/yarn/framework version.

If I don't maintain the code, upgrading is way harder, b/c trying to figure out which dependency works for what version of what framework/language is a nightmare.

throwaway81523•4mo ago
Simple task and no dependency = probably C or C++. Or maybe Rust if and when I start using that. Everything else you mentioned, too much runtime baggage.
ipnon•4mo ago
Elixir is the best programming language for building distributed systems.
sssilver•4mo ago
Simple — Rust for everything except Typescript for browser/mobile and Python for scripting.
sandreas•4mo ago
Could you recommend a good pure rust library for writing an embedded UI for the SG2002 LicheeRV Nano - similar to LVGL?
nhatcher•4mo ago
Not sure it will work for you, but have you looked into slint?
sandreas•4mo ago
That's the first "to try" on my list - but I just wanted to ask, if it is any good :-)
adastra22•4mo ago
Even, then I use Rust via WASM.
sssilver•4mo ago
I really need to look into what building UI looks like with Rust + WASM nowadays. I've tried Dioxus in the past, but found its UI programming ergonomics to be atrocious.
onion2k•4mo ago
I work backwards from the outcome I want. I eliminate any languages that can't do whatever it is I'm building but that rarely has much impact; most languages can do most tasks. Then I consider cost and performance. Then I look at the effort it'll take to actually implement whatever it is (including learning or hiring for the given language.)

Then my teams ignore all that research and build it in the language they build everything in.

ZaoLahma•4mo ago
Company / professional context:

Step 1: Raise your eyes above the computer monitor in front of you. What is the team / company already using? What will they likely be using in one year from now?

Step 2: Ask yourself honestly without "I wish I could and I wish I would" - can the problem be solved using the tech that the team / company already has invested in?

Step 3: Make decisions. Default to the answer in Step 1, but consider the evaluation in Step 2. Try to get as close to 1 as possible.

At home / "for the shits and giggles": Whatever is interesting. Sometimes even bending backwards to force functionality out of tech that has absolutely no business doing what I want it to do.

yamapikarya•4mo ago
my team are familiar with python, but i am not, so i decided to take an opportunity to learn this language, although, i prefer to use go because it's lightweight and simple.

at home i built my application using go. i also want to learn rust and elixir, but honestly i am not sure why i should learn both of them. i think language programming are just tools but they have their own advantages. also, learning other languages helps me become a better engineer.

adastra22•4mo ago
Rust. I choose Rust. That's my language selection procedure.
stevage•4mo ago
For me, it's easy: It's always TypeScript, no matter what.
olcarl75•4mo ago
if coding a webapp, I use full stack ruby on rails (hotwire/turbo/javascript with importmaps).

System stuff go/pyhon. I haven't had time to learn either Rust or Zig, but I think Golang is good enough for now.

I have a lot of java experience, but to be honest the opensource toolchain outside big tech is too much of a pain to use (say gradle or mvn). I believe SBT is quite good but learning scalla goes into the bucket alongside rust and zig.

shomp•4mo ago
Language choice isn't about religion, it's about leverage. Lisp-family languages like Clojure and Racket are at the zenith of expressive power. Elixir/Erlang is for telecom-grade fault tolerance, concurrency, and distribution. Rust and Go get you bare metal performance. If you're wanting to work professionally as a software engineer, you should pick a language based on future job alignment. And nobody "rewrites it later in a more performant language" that's just not a reality.
submeta•4mo ago
Programming language choice is determined by the task at hand. If you want to create frontend web apps, it’s JavaScript/ Typescript. If you want to write an OS, it‘s C/C++. If you do data analysis, it’s R/Python. Apple ecosystem? Swift. You can continue the list. By looking at domains and dominant languages. What resources are there for your domain, what have others contributed to, what libraries/ packages are there, what’s the mindshare, etc
XenophileJKO•4mo ago
I am seriously starting wiegh highly, "What languages will generative AI work best with?" Either from a baseline model aptitude aspect or that the language itself provides structural guardrails that lower runtime issues.

This comes after creating several large scale personal projects completely using AI in python.

It is interesting to think about what affordances will make AI most productive.

analyzethis•4mo ago
I try to avoid depending on US mega-corporations.
hnlmorg•4mo ago
Step 1: Assign each language a number. Close your eyes and then throw a dart into a dartboard. Then hope it lands on something that the HN hive mind approves and LLMs can write.

Step 2: write a blog post about how your decision has improved application performance, stability, and development time. State as much opinion as fact as you can. Then submit that to HN.

Step 3: enjoy your new found status as a tech leader.

elcapitan•4mo ago
All else being equal, what I've come to value more over time is long term stability of languages and their ecosystems:

- stable APIs of essential libraries and frameworks

- a grown up culture that accepts that something isn't dead just because it doesn't get an update 8 times a day

- tooling that will still work and be supported after 5 years (not a new package manager or build tool every year)

- communities and individuals around it that are focused on getting things done instead of status and drama

h4ch1•4mo ago
sounds like you'll love Elm and/or Nim haha
kbar13•4mo ago
this is why i've loved golang since i've started using it 10ish years ago. stdlib is small, but the foundation is strong, and api changes are few and far between. it's nice to work in a language where i don't need to reach for 5 million libraries to do everything, and if i come back to it in a year or so i dont need to learn a new package manager, testing framework like with python / js
h4ch1•4mo ago
A mix of my own opinions and after reading comments on this post:

1. Your first choice should be the language you or your team knows best.

2. Every language is built to solve certain problems and are, at the end of the day, opinionated. This may not be true for the most popular generalist programming languages; but stuff like Purescript for example, is great if you already have a Haskell codebase, with Haskell developers and you need a frontend. Easy to onboard/get productive in vs learning React/hiring React devs.

Choosing the right tool for the job is imperative. I will not use Rust for my web UIs, I will not use Javascript for writing code on embedded devices. Research and decide accordingly based on how it fits your existing pattern of thought/time constraints/end-goals.

3. Avoid language zealots and maximalists. People who'll try their best to convince you to write and do everything in a single language. A lot of Rust people will attempt to write everything in the entire project in Rust, even stuff like web UIs. This creates unnecessary friction, and you end up fighting the language rather than being productive.

4. Have fun, learning a language expands your thought process, it exposes you to different ideas, ideas that you may bring into other languages. For example, after learning/working with Haskell I wrote my own small utilities for higher-kinded types in Typescript.

5. Languages are a tool, choose a tool that's right for the job depending on how long you have and how adept you are with your existing tools.

=-=-=

edit: anecdote

I was building a deeply nested tree representation of 3D models with thousands of meshes, materials, etc. I wanted to write the parser in Rust and do some fun parallelization, but I am simply not good enough with Rust atm to do so; therefore I've built a correct implementation of it in Typescript, something I know very well, and now I'll begin porting it to Rust while at the same time learning the language.

This does two things for me; my team can test my implementation and build on top of it since the API won't change, and I can take much less time re-writing it in rust while also learning about the language.

Just a little something I do when learning any new language; rewrite something I know very well in it. Be it Raytracing in a Weekend or one of my older projects.

throwaway4302•4mo ago
Depends on the situation

Work:

I prefer tech that is well known within the team that will maintain it. Keep the bus factor low.

Personal side projects:

It depends on my goal. Is the goal to learn a specific tech, or create a product? If my goal is a product, I choose tech that I know well. I want to focus on the product, and not spend time in google/chatgpt figuring out how to do X in Y. The product itself has so many unknowns, that I don't want to add more due to my choice of tech, otherwise I risk losing my motivation and the project ends up in limbo.

If I had to choose a single language for everything, it would be Java (or Kotlin if necessary). The eco system is solid and my productivity is easily 4x compared to other languages.

Most developers can learn to produce code in any language in days. But mastering a language and eco system takes years.

seivan•4mo ago
Static typing is a must unless the compromise is worth it. For instance even without static typing Elixir is worth it for OTP and the preemptive scheduler (VM) is just a bonus.

But then you also have to include what type of application it is. Real time or soft real time, etc.

dismalaf•4mo ago
Honestly, I have a few favourites and just use those.

Low level stuff, my go-to these days is Odin. Just super pleasant to use. Also super easy C-FFI, so it can interact with most code out there with a small amount of effort.

Web stuff, random scripts, utilities, etc... Ruby. For pretty much the same reason: it's pleasant and easy to use. Obviously easier than Odin because no need to manage memory and much higher level. It's FFI also allows you to interact with most languages (including Odin, in just a few lines of code).

Also, I should mention, I use stuff like JS, Java, C/C++ as needed. Sometimes there's a library you need, a platform where one of those is needed to glue it together, JS for web front end, etc...

noufalibrahim•4mo ago
For a professional/work context, I think this is mostly a human (rather than tech. decision). What languages are the team comfortable in? Where is talent available etc.

If you're in services, then the general demands of the market/your niche are important factors.

For completely personal projects, if you're trying to learn language X, use X. If you're trying to build a project for some reason, then use the language you're most familiar with.

stared•4mo ago
* Which languages suits the problem as of 2025? (About all: performance, deployability, ecosystem.)

* Which languages I know (or are willing to learn) - and so do my collaborators?

All in all, it is if a language gets job done within constrains. Everything else id details.

specproc•4mo ago
I usually use some obscure dialect of Brainf*k, this means:

- Everyone thinks I'm smart,

- The client has to return to me for the simplest changes ($$$),

- I get paid to practice my favourite language,

Cosi1125•4mo ago
True.

https://github.com/bf-enterprise-solutions

moomoo11•4mo ago
Languages are tools.

Use the right tool for the job.

France's homegrown open source online office suite

https://github.com/suitenumerique
413•nar001•4h ago•198 comments

British drivers over 70 to face eye tests every three years

https://www.bbc.com/news/articles/c205nxy0p31o
128•bookofjoe•1h ago•103 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
435•theblazehen•2d ago•155 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
85•AlexeyBrin•5h ago•16 comments

Leisure Suit Larry's Al Lowe on model trains, funny deaths and Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
25•thelok•1h ago•2 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
777•klaussilveira•19h ago•240 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
32•vinhnx•2h ago•4 comments

Reinforcement Learning from Human Feedback

https://arxiv.org/abs/2504.12501
54•onurkanbkrc•4h ago•3 comments

First Proof

https://arxiv.org/abs/2602.05192
37•samasblack•2h ago•22 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1026•xnx•1d ago•582 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
167•alainrk•4h ago•221 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
167•jesperordrup•10h ago•61 comments

Software Factories and the Agentic Moment

https://factory.strongdm.ai/
14•mellosouls•2h ago•17 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
23•rbanffy•4d ago•5 comments

StrongDM's AI team build serious software without even looking at the code

https://simonwillison.net/2026/Feb/7/software-factory/
14•simonw•1h ago•12 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
103•videotopia•4d ago•26 comments

Vinklu Turns Forgotten Plot in Bucharest into Tiny Coffee Shop

https://design-milk.com/vinklu-turns-forgotten-plot-in-bucharest-into-tiny-coffee-shop/
5•surprisetalk•5d ago•0 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
12•marklit•5d ago•0 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
264•isitcontent•20h ago•33 comments

Making geo joins faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
152•matheusalmeida•2d ago•42 comments

Ga68, a GNU Algol 68 Compiler

https://fosdem.org/2026/schedule/event/PEXRTN-ga68-intro/
35•matt_d•4d ago•10 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
277•dmpetrov•20h ago•146 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
546•todsacerdoti•1d ago•263 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
418•ostacke•1d ago•109 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
62•helloplanets•4d ago•68 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
364•vecti•22h ago•163 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
16•sandGorgon•2d ago•3 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
338•eljojo•22h ago•206 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
457•lstoll•1d ago•300 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
372•aktau•1d ago•195 comments