Hey friends! Nice to meet you :)
I primarily work as a frontend developer, but have already gained some experience in backend development with JavaScript - mostly in side-projects.
Recently, I'm feeling kinda interested in learning another server-side language for web development. Plus, I want to increase my backend skills in general.
Apart from JavaScript, what is your server-side language of choice? Or what language would you recommend me?
Latest comments (46)
esProc SPL, a scripting language for data processing, with well-designed rich library functions and powerful syntax, which can be executed in a Java program through JDBC interface and computing independently.
Depends on the work you relate to. Could be python, Java, c# , rust, go ...
Personally I kept to node for backend apps and coding. Some python but not too much.
That being said, I'd steer away from learning another language (I see lots of go / ruby / c# posts in the comments) and I'd get yourself accustomed to databases, containerisation, queues, workers etc.
Learn more about back end concepts and patterns for scaling, redundancy, performance and focus less on a specific language. You'll find that if you do want to code for the back end you'll be able to use your JavaScript skills already as an example:
Ruby like apps - use sails.js
Microservice - check moleculer.js
Etc.
There will always be a framework or comparative so dive into concepts more. Databases, orchestration and deployment will be far more reaching for you
You've got a point there! Really, that's what I am going to focus on aswell - learn some concepts of backend π
I would go for Ruby then Rust later π
I think that a good choice would be C#(ASP .Net Core ) as back end option. You will see how well structured is in comparison with Node.js for back end solution.
I also use Node js as back end for my side projects but C# is more clear and elegant for someone new.
Node js needs more experience in order to write nice architectured code.
That is an interesting thought. Thank you so much β€οΈ :D
Python or Dart. (Period)
go.dev/
I would definitely recommend Go.
It's a great language that gently introduces aspects of lower level languages and it's used a lot for AWS lambdas. It's also getting a lot of popularity and jobs using it are (in the UK at least) very well compensated.
Beyond that, I'd say C# python, Java.
Edit: if you don't know Typescript, learn that first.
Along these lines, I would go for one of these (assuming larger ecosystem is essential):
I like Haskell and Clojure, but their ecosystems are small and don't have the trajectory of growth of rust. Some people count java libraries when considering clojure ecosystem, but I don't.
Java has a large ecosystem, but I don't know how much of it has been kept current and whether people are still creating new Java libraries. I usually found the libraries in ruby and python more interesting than java libraries for equivalent tasks.
Scala tries to support too many paradigms. It's ecosystem is stagnant in size, and it's java++ community seems to have moved to kotlin or java, and it's Haskell on the jvm community has remained, but I am not sure why someone who had the management freedom would select scala over haskell. Within scala, zio is interesting since it presents an easier entry point into learning pure functional programming.
I think elm is a great stepping stone to Haskell, but you wanted server side languages.
Ruby and python don't seem different enough from js.
Thank you for these awesome recommendations! β€οΈ
My go-to stack is Java, but that's because I'm already proficient with it. I personally don't like PHP or Ruby but they might be a good choice for you if you already have access to existing projects using them.
If you're looking at learning something new, then try a statically typed language: Java, C#, Kotlin, you name it. Learn what static typing brings on the table, and its "limits" (it's sometimes frustrating but it can really save your ass too)
But it's not possible (or easy) with every language. Meta-programming is hardly possible with Java or Go for instance, but is built into Groovy or Python.
I am learning ruby and ruby on rails cause my new company uses it for BE, I see it is more simple and even more dynamic than JS, rails is greate in term it supports almost everything you need to build BE app.
I would recommend Ruby it is simple to read and easier to learn.
Also, Ruby on Rails is a Fulllstack framework built on Ruby.
I would say C#. It has a lot of similar language features to JavaScript (though they often look quite different) and has great tooling and overall feature set. It will also give you a much more genuine statically-typed language experience than TypeScript could.
I recommend Elixir, it has many gems for any software developer.