Live data from Hacker News

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

news.ycombinator.com

61–70 of 96 posts

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

#61
I choose base on what type of project I'm working on.

If there is a legacy project/library that I need to work with, I just go with whatever exists.

just a normal web application? - ruby or php.

building for enterprise? - whatever i feel like for jvm or .Net, but java or c# for the SDK

heavy on rules? - prolog

performance, small memory footprint - go/c++/c

prototype, machine learning - python

concurrency required - erlang/elixir, java/clojure

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

#62
For server and client side I'd go with a strongly typed language. This to help me maintaining the code base, mainly by making refactoring cheap.

Server side they are: Haskell, OCaml (or Facebook's Reason), F#, Rust.

Client side: PureScript and Elm; and to a lesser extend: TypeScript and Flow.

Now what counts is maturity of the "web" ecosystem. For server side I think Haskell and OCaml are more mature then F# and Rust in this regard. Client side non of the contenders are _very_ mature, where TypeScript and Flow are more of an extension on vanilla JS, so they will have good interop with existing libs.

For me Rust is a little too low-level for web dev, but it depends on the performance characteristics you are looking for.

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

#64
post #55

Now we're talking optimizing for a hugely multidimensional system here. Expressiveness: If you've aiming for a large team, try to work with a language that enables large scale services and large teams - also in the long run, strongly typed languages will work out better for this case, Java / Scala being the obvious candidates. But if you go down a microservices route, other choices might work too. Niche stars: Some l…

Curious why you think Ruby is on the way down? (Just picked up 4 months of RoR experience after years of php and Java with some dabbling in Python.)

Some say it is slow, others like a more strongly typed language.

It might still have the most active web dev ecosystem of all languages; but it has clearly shown its limits.

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

#65
My business is working with non-technical startup founders and helping them get the technical side of the business off the ground. Your question is one I (and my clients) ask myself all the time (I'll leave out my preferred stack since it's not relevant to the question). Here are some questions you need to ask yourself:

* Are you planning to grow the business if the app succeeds? If so, how hard will it be to find developers familiar with the stack you've chosen? Or how difficult will it be to train someone to learn it?

* What is the ecosystem like? Is it already large and active? Or is it large and languishing? Is it easy to find help on StackOverflow / Google if you run into an issue? How easy is it to configure it to run on a bare VPS / EC2 instance?

* How familiar are you with the stack personally, and what's your planned completion date? If you want to get something up and running fast, unfamiliarity will lengthen your timeline. If you don't care so much about spending extra time learning a new skill, then use whatever stack you are most excited about learning.

Ultimately--and I know this probably sounds unhelpful--this is really a "feel" thing. Use whatever you feel the most comfortable with, whether that comfort is existing knowledge of the language, or the comfort is knowing that you'll be able to find help when you need it. Different things matter to different people, so I can't quite tell you what to decide, but this has always worked out for my technical decisions. Passion for your project can always overcome a sloppy or bad technical decision.

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

#70
post #21

I have a personal rule, which I've shared on here before and people seem to think has some merit: If a project is innovative in a business sense, then choose a boring technology. If it is boring in a business sense, then choose an interesting technology.

This is similar to Intel's Tick-Tock model, where they alternate between innovating on technology or innovating on architecture.

https://www-ssl.intel.com/content/www/us/en/silicon-innovati...

Post reply on HN