Live data from Hacker News

Ask HN: How do you decide for a backend language?

news.ycombinator.com

1–10 of 96 posts

Ask HN: How do you decide for a backend language?

#1
I'm "only" 6 years into my career but already worked with a dozen languages. While there are some obvious distinctions (like elixir being a better fit for concurrent systems or some being statically typed while some are not), most of them are very similar.

For corporate projects I usually comply to whatever language the system is already written in and adapt to that, but if I were to start a new project now, I wouldn't be sure which language is the right choice.

Here are some of the languages I used for projects in the past:

- Go

- Clojure

- Elixir

- Ruby

- Python

- Java

- NodeJS

- PHP / Hack

How are you deciding which language to pick when starting from scratch?

(On a similar note, the same thing could be asked for client side code: JS, TypeScript, ClojureScript, PureScript, ES6 / Babel, Coffee, etc)

Re: Ask HN: How do you decide for a backend language?

#3
I imagine many people will say what you said, including me: For corporate projects I usually comply to whatever language the system is already written in and adapt to that

Assuming you're talking bout about a personal project, or a one-man startup...I'm interested in why you ask? That is, why do you doubt yourself? You've covered an impressive variety of languages; what keeps you from picking

a) What you are excited most about.

b) What you're most comfortable with, all things considered (years of experience, interaction with the community).

c) What the conventional wisdom says is good for the project that you have in mind, e.g. Rails for a full-featured web app, Elixir for something more minimalist with higher scalability, etc.

I don't have an ambition to deploy something into production, so I use Ruby for any quickie static sites, Python for data analysis (sans web-facing product), and am now redoing Past projects in Node because I've discovered that I enjoy ES6

Re: Ask HN: How do you decide for a backend language?

#5
If you just want to dabble with a bunch of languages pick whichever language is at the top of HN that week.

If you want to create good software then pick a language and stick with it for a decade so you really get to master it.

If you want to become a better programmer then work on interesting and difficult problems regardless of the language.

Re: Ask HN: How do you decide for a backend language?

#6
I started by learning what the company used; Java, PHP, Ruby, Bash, C. From there I picked up Javascript, Go, etc.

Personally, I pick the thing I'm most proficient in and enjoy building with. In a certain context certain languages make sense. Dynamic scripting can be useful for rapid development. Javascript is usually a must for frontend or simplifies code sharing longer term. Backend you usually need something more performant so after much searching I finally found Go to be a perfect fit but again thats a personal preference.

If working with a team I think it complicates things slightly. Now you must take everyone's skills and opinions into account. If working within a company you need to think about hiring and longevity of the code base. That's where normally you agree on 2-3 languages, again based on context and what's fit for purpose.

If you're just building something for yourself, go with what you're proficient in. If you want to learn a new language, pick one and build something to learn the language. If you're working with a team, democracy usually wins.

Hope that helps a little. Just my opinions and what I'm used to. Not gospel.

Re: Ask HN: How do you decide for a backend language?

#7
1. Which language you know the best.

2. How well this language is suitable for a given task.

3. If language you know the best is not suitable, pick second language you know best and repeat 1. and 2.

For example, you wouldn't really use Go to write big, but traditional web application. You'd use something like Ruby, Python or PHP (maybe Java too). So pick among these.

Re: Ask HN: How do you decide for a backend language?

#9
Well it depends the nature of the project you're starting from scratch. If it's a new project at your employer, there could be factors like "how easy would be to hire / train people to work on this project in the future?" or "how mature this technology is / how likely is it that unknown problems will bite us in the ass in a few months or years". But if it's for personal use, I guess it's a matter of what your main motivations are for it. Personally, if I'm building an MVP or in other words, my main reason for building it is to get it in front of customers ASAP, I probably go with the stack I'm most familiar with. But other times I start a project just to play around, learn or get more familiar with a new stack, so then I do just that.
Post reply on HN