
Ask HN: What is the best programming language and eco system for backend? - techsin101
I&#x27;ve been programming in nodejs, js is fine but eco system has become toxic. Highly unstable, incohesive, probably insecure, and just painful.<p>You&#x27;re lost orchestrating a dozen of libraries with conflicting dependcies and configuration that&#x27;s in flux.<p>I&#x27;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&#x2F;image, done with Babel and its plugins, done with graph ql, redux... Just random bs stuck together aphazardly<p>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.<p>I used to care about performance, but I&#x27;m open to compromise now. Car&#x27;s speed doesn&#x27;t matter if it breaks down every other mile.<p>I&#x27;m leaning towards python, Ruby, and go
======
ammmir
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.

------
iLemming
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.

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

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

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

~~~
andrei_says_
Thank you

------
BjoernKW
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.

------
elamje
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.

------
Scarblac
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.

------
bigbassroller
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.

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

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

------
ooooak
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.

------
potta_coffee
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.

------
ktkization
Check out Ballerina. Interesting cloud based language
[https://ballerina.io/](https://ballerina.io/)

------
okaleniuk
"Best" is subjective. Some might argue that Assembly is the way to go:
[https://asm32.info/fossil/repo/asmbb/index](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](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.

------
moksly
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.

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

~~~
krapp
>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.

~~~
tlb
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.

~~~
krapp
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.

