Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What is the best programming language and eco system for backend?
18 points by techsin101 4 days ago | hide | past | web | favorite | 21 comments
I've been programming in nodejs, js is fine but eco system has become toxic. Highly unstable, incohesive, probably insecure, and just painful.

You're lost orchestrating a dozen of libraries with conflicting dependcies and configuration that's in flux.

I'm done with webpack, typescript, loser react eco system where you drag 10 libraries through your code as soon you learn them only for them to become obsolete in 5 months, done with docker/image, done with Babel and its plugins, done with graph ql, redux... Just random bs stuck together aphazardly

I plan to leave js and thus front end development altogether. So my question is what is a good choice for backend language, ecosystem and all. Where things come , if not batteries included, then at minimum designed intelligently to work together.

I used to care about performance, but I'm open to compromise now. Car's speed doesn't matter if it breaks down every other mile.

I'm leaning towards python, Ruby, and go

I've tried all the things you've mentioned and beyond. And I think finally found something I love. I've discovered Clojure. Nothing else gives me so much productivity and joy and the sense of stability. It's not perfect (nothing is) but it's a good balance between pragmatism of engineering and the art of logic based creativity.

Don't just "look" at it, don't try to "check it out". If you never done any Lisp, Clojure will not look extremely sexy at the first glance.

But give it a heartfelt try, I guarantee - you will find something truly incredible. Something that is still missing in many, perhaps most other language ecosystems.

What resources would you recommend for someone starting out? Coming from Ruby.

At work we use the Living Clojure book. We also make use of 4Clojure [0]

[0] http://www.4clojure.com/

Thank you

The grass is always greener... over the years I've built stuff with Perl, PHP, node.js, Ruby/Rails, Elixir/Phoenix, and Go. Each felt good at the time, but it's easy to get overwhelmed over the latest hyped frameworks and libraries. Don't like Typescript or Webpack? Nobody's forcing you to use them, you can still use node.js.

Tried and true principles and architectures will outlive any libraries. Remember, React is only 6 years old, do you think new projects will use React in another 6 years? Remember Meteor framework that was all the rage 7 years ago? I don't know anyone using it for new projects. It's the natural cycle of development. Don't get emotional about frameworks.

If anything, build _your own framework_. I don't mean a competitor to React or whatnot, but your own set of tools that can be reused over time across projects. Back in the days before jQuery, people were doing DOM manipulation themselves and everyone built their own wrappers around the DOM. Nowadays, I notice too many people reach for a framework without thinking about what they even want to accomplish.

At the end of the day, "best" is always subjective, relative to your own experience and expectations. For what it's worth, I used to be a node.js developer in the pre-1.0 days and switched to Rails, Elixir, Go, but I'll probably use node for my next project since it's super easy to get stuff running in messy JavaScript compared to something statically typed like Go. In most cases, performance is moot for projects without users. Hell, a CGI script written in Bash could rival the performance of modern web frameworks.

When it comes to reliability, maintainability and a huge ecosystem it probably doesn't get any better than Java and the JVM. The JVM also fares great in terms of performance.

Seems like you couldn’t go wrong with using the Java Virtual Machine or the Common Language Runtime(.Net).

Both have a wide variety of libraries and a reliable VM.

Plus, if you want more productivity, or to use other programming paradigms, you can use C# or F# for the CLR, and Groovy, Kotlin, Scala, or Clojure for the JVM. I believe all of them have full access to all C# or Java libraries.

Python / Django is a very solid platform that I've always enjoyed working with. Python has a very rich ecosystem.

It has its warts (Python's tragic history with packaging systems) and Django isn't quite in the sweet spot anymore now that we usually only serve Rest Apis instead of Html pages. Python isn't typed (though there is mypy now) and slow, sometimes that matters.

So I don't know about "best", but that's an endless discussion anyway. We still get lots of mileage out of it.

I have felt the same way and choose Elixir and Phoenix. It’s not easy to get a job in but easy to get your current boss to allow if starting a new project at current job.

Check Scala and it's frameworks, unless you don't like JVM based approaches.

I am not sold on scala. i would rather use clojure.

For Python, Flask and Django are awesome. Ruby on Rails is awesome. For Go, just learn Go. I have some experience with each of these and I think they're all great choices.

I feel your pain, I managed a node app in production for 2+ years. That made me realize PHP is not that bad. Now I see this trend where people just throw in Typescript. Why not just use a statically typed language?

if you write lots of rest API you should use Go and thank me later.

Check out Ballerina. Interesting cloud based language https://ballerina.io/

"Best" is subjective. Some might argue that Assembly is the way to go: https://asm32.info/fossil/repo/asmbb/index

Personally, I had the most fun with Erlang and what happened to become N2O: https://github.com/synrc/n2o It is designed for speed not compromising reliability so it kind of looks like what you want.

Python+Django probably has better ecosystem though.

The one you make work. No one is going to care if you run an ASP application on non-containerised IIS instances if your product is good.

How about JavaScript using NodeJS without NPM? Modern JS is a good language, and you can easily opt out of the ecosystem.

>and you can easily opt out of the ecosystem

You really can't. There is no JS ecosystem left to speak of beyond Node and NPM.

You can. You just have to write your own code instead of using NPM. Node itself comes with a few libraries, but they are fairly minimal.

Fair enough, but that's not an ecosystem, and every JS library is currently written assuming it will be pulled in with NPM, as are all Javascript tutorials. You can avoid it all, but at some point I would have to wonder if it's even worth the effort.

Like, write your own database connectors and all other such stuff?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact