14
49 Comments

What programming language you use to write your backend?

I'm just discussing with a friend (who is Java/Spring + Golang developer) which language/framework is worth to use for backend building nowadays. I always assumed that Java/Spring is more enterprise solution, but probably for a startup would do the trick.

I had the impression that Node.js and Python frameworks are currently ruling as a choice for startups backends, but now I feel that my knowledge might be outdated.

Therefore this question, what do you use?

Edit: I am not a backend dev so I am not looking for any pick -- I'm just curious

posted to Icon for group Developers
Developers
on January 27, 2020
  1. 13

    I use Node.js because it's simple and I'm very productive with it.

    Honestly use whatever you're familiar with and don't spend too much time thinking about technology tradeoffs. Just use whatever you're going to be productive with.

    1. 1

      Just use whatever you're going to be productive with.

      Yes if you have no time and no money and need something quickly.

      No, if there are 10x better options out and the stack you know is stagnating/dying. Don't underestimate innovation. Learning eg k8s, react, redux, graphql,... are major pains but once you know that stuff you can do magical stuff in no time

      and node is great

  2. 6

    Use the language you can build your idea quickest, in the least amount of time. This will depend partly on your skill/familiarity with that language, and partly what the language has to offer relative to what you're building.

    I'm strongest with ruby on the backend, but if I were building a chat system, I'd probably use node. If I were building a trading system that needed really high concurrency, I'd probably use go.

    But my starting point for prototyping anything is always ruby/rails, because the library ecosystem, in my experience, blows everything else away. I start from there and try to evaluate what factors might require me to use something I'm less efficient with, and whether those trade-offs are worth it at the idea stage, before the idea is validated with customers. You can always re-write it down the line, or extract pieces to another language.

    1. 2

      100% agreed on this thought process.

      The one part I'd edit is that the NPM ecosystem of libraries is much larger and more vibrant than any other these days, including Ruby / Python, Go, etc.

      1. 3

        the problem with NPM packages is that they break everything up on updates. This rarely happens with ruby gems. Not sure why, probably because there are so many alternatives or simply those programmers don't put much attention to this, but I always hate it when I have to update my packages. In Ruby, simply works...

  3. 5

    PHP with Laravel primarily. For frond-end Node.js or Angular

    1. 3

      Same here. PHP + Laravel makes it super easy to get started and I can bang out a basic backend in a couple of days. I've also started preferring VueJS over Angular for my most recent projects.

    2. 1

      Node.js is not about the frontend...

  4. 3

    Ruby / Rails to start

  5. 3

    Go, Python, node in that order of preference

  6. 3

    Java/Spring Boot here. A combination of personal preference, being the right technology for the project, and it makes future hiring a little easier here in Seattle where most senior level engineers write Java.

    1. 1

      Have you tried Kotlin with Spring Boot?

      1. 1

        Apart from Java I've only tried it with Scala. If you've tried it with Kotlin, would you recommend it?

        1. 2

          I haven't actually, was kinda hoping to ask you the same thing haha :)

          1. 1

            Ah totally fair ha. If I get the chance to try it out in the near future I'll definitely pass along my thoughts on it.

        2. 1

          I've tried it on a couple of small services, no complaints.
          In general, I use Kotlin with Vert.x + Coroutines and so far it holds up well on larger systems.

        3. 1

          I've tried it out with kotlin, it's works out pretty nicely especially with upcoming support for coroutines on the reactive apis. Personally I'm not using spring for my current project because it has too much magic for my taste, though I am using Kotlin.

  7. 2

    One more vote for Golang :)
    I've started using it 3 years ago and it's still my favorite language.
    All my backend services are built in Go and no complaints so far. True, sometimes you need to do things on your own (it's not as mature as Java), but its simplicity is something I like.

    But if you want to build something quickly from scratch to test your MVP for example, I'd say Ruby on Rails is still No1 (even though many people are stop using it looking for new languages). Python might be an option as well.

  8. 2

    I will use node.js with with express.js for building RESTful api my own SaaS app, and use firebase noSql database. The reason for this is that I came from frontend background and have gradually picked up backend and it has not been very difficult.

    In my enterprise job, we use different languages and frameworks on a microservice architecture including: Java Springboot and Go.

    If you are a solo founder, only coder, building your first MVP, I would get it done on the technology you would be most familiar with, think about scaling later.

    Good luck!

  9. 2

    Ruby On Rails all the way.

  10. 2

    Expresses/node very easy to spin up and very fast

  11. 2

    Javascript/Node.js. I've written back ends for employers with Java/Spring before, but anymore I would recommend Node.js if you don't have one that you're already familiar with.

  12. 2

    If I'm working on an MVP I'm all about Hasura and Node. If it needs a bit more oomph I typically go with Elixir, Phoenix, and Absinthe.

  13. 2

    I use plain PHP for its simplicity and how easy it is to set it up and deploy on basic shared servers with cPanel. I also use Node.js for my own apps that require more real-time communication or more complex server side processing.

  14. 2

    PHP with Laravel and Node.js

  15. 2

    I use PHP - no framework (intent to learn laravel at some point).

    1. 1

      The docs for Laravel is very good. Should be easy to pick up the basics in a few hours.

  16. 2

    Node.js deployed as serverless functions to Zeit.co

  17. 2

    I use node.js deployed as Firebase cloud functions. I don't have any metrics about performance or anything. It's good enough for now and the best part is how easy it is to get going and get stuff deployed.

    Any technology is fine, honestly. It's usually best to go with what you're most familiar with.

  18. 1

    NestJS (Node w/ TS, similar in feel to Angular). I want to get into Go but it's hard to justify spending the time to really learn it when I know my existing ecosystem so well.

  19. 1

    usually nodejs+Typescript. but it depends what I do.

  20. 1

    It depends. Mostly PHP, C# for complex situations.

  21. 1

    When we are talking about web I prefer JavaScript/NodeJS over Python because of its syntax, easier language versions management (if you are not using docker), easier to run app, possibility to use it for frontend development.

  22. 1

    I'm currently using Clojure, and absolutely love it. Coming from languages like PHP and JS you can really see all the thought that was put into developing the language, and really start to notice a lot of the pitfalls in the aforementioned languages.

    A quick note on the enterprise stuff, I've seen a lot of companies moving away from Java and start using Scala. Big data stuff really benefits from being easily able to distribute workloads, and functional languages really excel at that. Scala is a nice mix of OOP and functional, and a nice middle ground for people who are Java devs. I think we'll see it taking a larger and larger share of enterprise work in the coming years.

  23. 1

    .Net core running in Linux droplets@DigitalOcean

  24. 1

    I've been using Python Flask, primarily because I invested enough time to learn the framework and haven't needed to learn another since. Not to say that other frameworks aren't worth learning, I just haven't needed them.

  25. 1

    choose the backend with the biggest ecosystem in particular in fields like GraphQL, SPA auto-code-splitted and SSR, speed, dev productivity

    current front-runners by far there are node and Go

    use Github Octoverse, Google Trends and Reddit subs user counts to make your own opinion and stay away from dying langs/frameworks

  26. 1

    Python with Django as framework. Wow just read all the comments ad django was only mentioned once. Didn't expect that :-)

    I love Django!

  27. 1

    Ruby mainly, though NOT Rails. We use a different framework.

    I've also dabbled in Laravel/PHP, and Crystal recently.

  28. 1

    Honestly, it's 95% a matter of personal taste. However, there is a general spectrum in terms of performance. Note that this is not a hard and fast rule as there is some grey area between the tiers. In ascending "speed":

    • Purely interpreted languages (Ruby on Rails, Python, PHP, etc).
    • "Just-in-time" engines (Javascript + Node which uses V8) partially compile code as it is ready to run.
    • Compilation to custom byte-code that is then interpreted by a virtual machine. (Java/Scala/Kotlin on JVM, C# on .Net)
    • Compiled directly (Golang, Rust, C++).

    Personally, I use Go 75% of the time and Python for the remaining 25%. My general rule is: Python if I want to build quickly, Go if I want "production grade".

  29. 0

    Ruby on Rails and Elixir/Phoenix for me. For the indie things I only use Rails so far, but maybe I do something with Elixir in the future.

  30. 0

    I use Python with the Flask-RESTplus web application framework .

    I chose this combination primarily because I'm quite comfortable with both of them, have some base modules setup and it allows me to prototype rapidly. That being said, I am looking into Django as well for future projects.

    1. 1

      +1 for Django! :-)

  31. 0

    Elixir and Phoenix here. I've been using them for two side projects and they've been great. Also, I have to mention Phoenix LiveView - it's been a great addition to my workflow, speeding up the time it takes me to build up responsive UIs.

  32. 0

    I used Java/Spring at first. As that's what I have the most years doing professionally.

    But it was a slower development process and I wanted to learn something new + quick. I looked at Ruby on Rails and Elixir/Phoenix and decided to go with Elixir/Phoenix.

    10/10 Elixir and Phoenix are incredible.
    I am way faster, more confident, and just super productive. Which, given it's a side-project, is super important to me.

    1. 1

      Really interested in this transition. Can you pinpoint in which areas you got faster?

  33. 1

    This comment was deleted 6 years ago.

  34. 1

    This comment was deleted 4 years ago.

  35. 1

    This comment was deleted 6 years ago.

Trending on Indie Hackers
6 weeks solo, 2 rejections, finally live but nobody told me marketing would be this hard User Avatar 80 comments Building ExpenseSpy solo, no funding — launching June 17 on iOS & Android User Avatar 38 comments Hi IH — quick update. The MVP is live. User Avatar 34 comments Day 7: 51 people answered my question. I wasn't ready for what they said. User Avatar 18 comments I built a $5/1k-listing CRE data API because CoStar is overkill for first-pass scans User Avatar 16 comments I Was Bypassing Every App Blocker, So I Built One That Fights Back User Avatar 11 comments