Settings

Theme

Ask HN: Best language for micro services for a startup

2 points by skar 10 years ago · 8 comments · 1 min read


I'm in a startup and we're looking for the right language to build our micro services. Our Android/iOs mobile apps and our website are accessing our database using their own respective PHP backends. We're working on building a set of services which'll serve as a common backend for all these. Our team has 15 odd developers ranging from newbies to people with 7 years of experience. Look at the linked google spreadsheet where I've jotted down certain options that I could. What's your suggestion?

https://docs.google.com/spreadsheets/d/1vfP9lF5Xeeov6_aRriDW2IyNZMcUKqQGxgqu5sn0Rks/edit#gid=0

anonyfox 10 years ago

Elixir (or plain Erlang) by far. http://blog.plataformatec.com.br/2015/06/elixir-in-times-of-...

Edit

A few more reasons:

- Elixir/Phoenix outperforms quite everything for some usecases https://twitter.com/julianobs/status/614416512825323520

- Elixir Code is well suited for longer maintenance modes http://blog.plague-dev.de/posts/Maintainable-Code-in-Elixir

- Elixir unions the advantages of monolithic apps and microservices and is very easy to scale http://blog.erlware.org/monolith-vs-microservices-where-to-s...

eicnix 10 years ago

IMHO: Scala by far

- You can use pretty much any JVM library

- You can execute Scala applications in a JVM which is a pretty common platform for other tools. Think CI, deployment on servers, etc.

- Akka Cluster out of the box. On other systems you have to build your custom communication pipelines for messaging between your multiple instances of the services

kasey_junk 10 years ago

Every single thing in your spreadsheet is impossible to objectively measure (I'd argue your Java row is laughably incorrect for instance).

From a business perspective picking a language just isn't that important, it will NOT be the thing that makes you (un)successful.

So I'd go the other way, what language do the most people want to work on and has the least "I'll quit if we pick that" factor? Just use that.

tedyoung 10 years ago

One of the big advantages of "micro-services" is that for each individual service, you can pick the best language suited for that service. If you're going to pick a single language (and I agree with kasey_junk on which to pick), then just make a single service, in one language, and split it when you need the isolation or differences in scaling each piece.

olalonde 10 years ago

Why not keep using PHP and experiment with new languages on smaller and less critical services?

  • skarOP 10 years ago

    Yes, we tried it already and we have certain sinatra/rails based services, but it's causing difficulties for the developers new to ruby and those who've recently come in and been working only on ruby, since they know only part of the stack. So we stuck to the PHP version and are averse to diversifying our code base into multiple languages.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection