DEV Community

Cover image for Choosing the Right Programming Language for your backend

Choosing the Right Programming Language for your backend

Ezekiel on January 21, 2025

When it comes to frontend development, every developer knows there's one language to rule them all: JavaScript (HTML and CSS are not programming ...
Collapse
 
shvahabi profile image
Shahed • Edited

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.

Collapse
 
tensorprogramming profile image
Tensor-Programming • Edited

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.

Collapse
 
pingnikhil profile image
pingnikhil

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

Collapse
 
keyru_nasirusman profile image
keyru Nasir Usman

So Java is still the king of enterprise level applications.... This is very nice article by the way.

Collapse
 
collincity111 profile image
Chiagozie Okafor

OMG, You missed Laravel 🤦

Collapse
 
ezekiel_77 profile image
Ezekiel

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.

Collapse
 
stolzyboy profile image
Jeremy Stolz

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.

Collapse
 
agbagbarao profile image
Omo Agbagbara

If you are building a backend for a small company, who already have a website and some web hosting provider. Pick PHP.

Collapse
 
janmpeterka profile image
Jan Peterka

I'm missing Ruby on Rails in your list, which is a great backend option

Collapse
 
ezekiel_77 profile image
Ezekiel

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

Collapse
 
janmpeterka profile image
Jan Peterka

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.

Collapse
 
_ne0 profile image
Neel

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

Collapse
 
bbauer82 profile image
bbauer82

Well written from my point of view,
Thank you for your efforts.

Collapse
 
craig_a_cook profile image
Craig Cook

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.

Collapse
 
ezekiel_77 profile image
Ezekiel • Edited

I've personally not really looked a lot into wasm
great suggestion!!!

Collapse
 
comedyrotten profile image
Reuben J. Sonnenberg

F# is always a good option if you want to use the functional programming paradigm in your backend.

Collapse
 
douglas_stone_c9291c6355a profile image
Douglas Stone

Schrodinger's cat, lol :D

Collapse
 
stevenbc profile image
Steven

C# and Java are just as good for any of the same uses you would need.

Collapse
 
ezekiel_77 profile image
Ezekiel

I selected those recommendations based on the practices of existing organizations

Collapse
 
michael_brown_ffa6c612b65 profile image
Michael Brown

C# for security? Lol what?

Collapse
 
ezekiel_77 profile image
Ezekiel

C# is mostly used in financial applications, it is more type and memory safe than Java and C++.

Collapse
 
mohammad_solimany_f4ff76e profile image
mohammad solimany

C# and security!!!? But security has nothing to do with programming language

Collapse
 
vaisakh_km_c44a19f96444a profile image
Vaisakh K M • Edited

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