When it comes to frontend development, every developer knows there's one language to rule them all: JavaScript (HTML and CSS are not programming ...
For further actions, you may consider blocking this person and/or reporting abuse
The winner of your listing is Scala. Scala is a general purpose language which is scalable. Scala is easy to write and even easier to read. Because it's unit of code are expressions and not statements, it's predictable and so easy to debug. A program written in Scala is one ninth of the same Java program in LoC. Lower LoC means easier maintenance, rapid development and lower attack surface. JavaScript and Python are not typed languages, and everyone knows they are bad choices for large scale projects. Typescript's type system is trivial compared to the advanced type system of Scala. Go is a language for cloud and is not a general purpose language. Scala is preferred over Rust by anybody who favors intention over mechanism. C-sharp is the Microsoft response to Java, so it's always behind Java.
Scala compiles to Java bytecode and can be run on server, desktop and Android, Scala compiles to JavaScript and web assembly and is suitable for front end and web, Scala compiles to native machine code like C. So all the languages you named are beaten by Scala. Scala got the most ever advanced compiler in the world, so many of tasks done by developers in other languages is automatically done by Scala compiler and this is backed by real world proven case studies like Lichess.
Scala is a language which makes it easy to express patterns. So it already has the features of Haskell via Cats and Zio and Kyo, features of Erlang via Akka, features of Idris via incorporating dependent types in Scala3, better meta programming than Lisp or Clojure because of its principled approach to meta programming, provable soundness better than ML, a better choice than Coq for certified programming, type inference and structural types hence a better scripting language than Perl or Python, Elm's TEA pattern via Tyrian (not forget to say ReactJS is a joke compared to Elm) also is an object functional language more advanced than OCaml. And finally, Scala is the only industry-quality multiparadigm programming language, aka realization of oz designer dreams.
Java 11 successors new features are stolen from Scala, Kotlin merely is a rebranding of old Scala2 plus coroutines and a non principled null safety approach which makes it even a degraded Scala2. Akka is the best ever implementation of Actor model of computation and ported from Scala to Java, .Net and JavaScript. Even newer models of computation like Reactor model are implemented in Scala.
If you are going to be a life long developer, investing your time in any language other than Scala will be your worst professional mistake. Scala thrives while other languages are only kept alive by populist columnists.
Scala, especially Scala 3, is a very powerful language, but when it comes to general backend services, there are a lot of great options. Elixir and Erlang, for example, are strong choices for scalability and fault tolerance (I could probably write a whole paper comparing Akka with Erlang). Go excels at concurrency and is a great pick for rapid prototyping, while Ruby 3 brings solid concurrency primitives and its Rails framework to the table. Java and Kotlin are strong contenders as well, particularly with Spring, Boot, and Akka. Rust, with its frameworks leveraging macros, offers a good experience too.
The key takeaway is that each of these languages has its own strengths and ideal use cases. For smaller backend services that don’t need massive scalability, simple languages like Go, Python, or Ruby could be a better fit since they allow for fast prototyping. After all, if you’re building a simple REST API, you probably won’t need the complexity of dependent types and type level programming. On the other hand, if you’re looking for something more enterprise-grade and battle-tested, any of the languages I’ve mentioned—or others not listed—could be the right choice. Heck, there are even companies successfully using Common Lisp and fortran for cloud services. It really is a matter of use case.
Just fyi, I really like Scala and I've been working with it quite a bit since Scala 3 came out but as with any language it's just another tool in your tool belt as a software engineer. It's a really powerful tool with a lot of options, but sometimes the path of least resistance comes from something a bit more specialized.
Can you elaborate on why Scala has better meta- programming (if not overall better programming) than Lisp or Clojure.
A quick Google AI search result says this for "Is Scala dead?" :
"Scala is not dead, but its adoption has been declining for years. Scala is still used in many projects, but it may become a niche language if its current trajectory continues. ... "
So Java is still the king of enterprise level applications.... This is very nice article by the way.
OMG, You missed Laravel 🤦
Backend frameworks like Laravel Ruby on Rails are primarily used for generic backend systems. It is challenging to specify the exact type of backend systems for which they should be utilized.
Laravel is a framework and Ruby on Rails is a framework. Laravel uses PHP as the programming language and Ruby on Rails uses, well, Ruby as the programming language.
If you are building a backend for a small company, who already have a website and some web hosting provider. Pick PHP.
I'm missing Ruby on Rails in your list, which is a great backend option
Yeah
I feel ruby on rails is mostly used to build generic backend systems.
I didn't see any special use case of ruby on rails.
But ruby on rails is a great backend language to learn
Ok, you are right, I missed that :)
I would say "If you are building system alone/in small team, and speed is of essence, Ruby on Rails is the best option". But it's different kind of "special use-case" then those used in this article.
C lang for Libraries
Go lang for Microservices & APIs
Python for Graphs, Maps, & Data Analysis
PHP for Blogs & Wikis
Zig for portability (write once, run anywhere)
————
VM languages such as Java & Javascript need VMs (JVM & V8) to run, impacting resource efficiency.
M$ funded languages, such as F#, C#, .htm expires when Bill Gates founded telemetry company decides it is no longer useful for gathering telemetry on users.
————
...Haven't tried Scala yet
Well written from my point of view,
Thank you for your efforts.
No mention of Web Assembly for which there are many language transpilers, so even on the front end you can use many languages. See github.com/appcypher/awesome-wasm-... for one list.
I've personally not really looked a lot into wasm
great suggestion!!!
F# is always a good option if you want to use the functional programming paradigm in your backend.
Schrodinger's cat, lol :D
C# and Java are just as good for any of the same uses you would need.
I selected those recommendations based on the practices of existing organizations
C# for security? Lol what?
C# is mostly used in financial applications, it is more type and memory safe than Java and C++.
C# and security!!!? But security has nothing to do with programming language
Yes it does.. infact, language we pick is one of the most importent factor for security of the app...
It is the main reason why most companies porting c and c++ based apps to rust, and AOSP have reported cuttimg down 52% memory related vulnarabilities...
in the case of backend, go is great, but there is no more battle tested libs as Java Spring.. yes it's a pain to write that much boilerplate code, but still industry chooses it...