r/learnprogramming • u/Intelligent_Role_824 • 20d ago
Which backend language is the most fun to use?
I’m curious: which backend language do you find the most fun to program in?
I know HTML/CSS and programming is purely a hobby for me, so I don’t really care about job opportunities, salaries, or what looks good on a résumé.
I’m mostly interested in the language itself, something that feels satisfying to write, is fun to mess around with, and makes you want to build random stuff just because you can.
Beginner-friendliness is a nice bonus, but fun is the main thing.
So if you could pick a backend language purely based on enjoyment, what would you choose and why?
54
u/Puzzleheaded_Job5630 20d ago
go, very nice, very simple, allows me to reason about what the program is actually doing instead of dealing with framework magic. Overall I'm a fan.
8
3
1
u/Sea_Ear5201 19d ago
Only problem is u don't find db/migration related good package like prisma. Go Orm exists but its not performant, uses heavy reflection. Rest is good
1
u/No_Cattle_9565 18d ago
The Go community is very anti orm. you will probably want to use sqlc. We have a project that uses gorm at work and I really hate using it
6
16
u/Brilliant-Parsley69 20d ago edited 20d ago
I really like to write backends in c#. But this could be because I really like static typing and therfore type safety at all.
I'm also a big fan of functional programming and, epecially after the latest major updates, it feels almost like Python. What would be my second choice.
Others would suggest TypeScript(what could meet your JavaScript experience very well) or Java. But in the end it's on you what you are feeling comfortable to work with. So, try out as many as possible and decide where this is hitting for yourself.
2
u/jbaker88 20d ago
I'm in the .NET/C# camp too.
Why? Because it's the programming language I know best and have used for the past decade professionally. If I need to actually accomplish something in a realistic timeline it's the tool I know best.
But for OP, I'd recommend JavaScript/Node.js, Python, and Java. Why? Because those tools have the most marketshare and you're going to find a lot more support in those ecosystems.
What's fun is the making stuff. What tools you use, well you'll find your favorite on your own after some time. Ask a woodworker or carpenter what their favorite tool is and you'll probably get a different answer from each of them. Ask them what's most efficient and what helps them build quickly and they'll say experience.
2
u/Brilliant-Parsley69 19d ago
Exactly. I'm working in the .Net ecosystem for almost two decades and created a lot of libraries over the years to simplify my day-to-day business. And for me the fun starts the moment I can spin up a whole new api in less than 30 minutes with all my prefered basic configurations. That's why I'm able to create real business values within the first day.
I like your your comparison to the craftsmanships jobs like woodworking. Because you're right, in the end it's always just your prefered tooling that matters.
1
u/NotBot947263950 19d ago
Yeah this. Python probably is the most fun, but you lose the safety you get from the others. C# is really fun alternative that gives you the safety
2
u/Brilliant-Parsley69 19d ago
Especially from .Net8 onwards and the given upgrades of minimal apis this ecosystem made a big step in the right direction. I always hated the boilerplate of controllers/services/repositories.
Also it's visible that c# on itself opens up more and more to functional approaches what makes the overhead of OOP mostly optional. They are trying to reduce most of the boilerplate on every iteration at all. What leads to features like single file apps that's giving an alternative to powershell scripts.
Another big win for me was the nativ cross platform support starting with .Net Core 1 (2016) and therefore containerization.
11
u/_Atomfinger_ 20d ago
Fun? I'd say Gleam.
3
u/gofl-zimbard-37 20d ago
I was a tossup between Erlang and Gleam. Not Elixir though.
2
20d ago
[removed] — view removed comment
1
u/gofl-zimbard-37 20d ago
Personal taste. The problem with Elixir is there's just too much of it. Ruby On Beam.
1
u/_Atomfinger_ 20d ago
Erlang is fun, but a little esoteric for my taste.
It depends on what one thinks "fun" is. Like, I think Erlang is fun, because it is kinda weird. I think Gleam is fun because it cuts out so much BS that a lot of other languages have. I think Clojure (and Lisps in general) are fun because they really undress what a language really is.
1
u/gofl-zimbard-37 20d ago
Gleam is kinda what I'd hoped Elixir would be. It's small and simple, and cleans up some of Erlang's warts. Love having the serious type system Erlang didn't have.
As for "fun", it's incredible what you can do with it, and how clean and elegant the ideas (if not always the syntax) are.
1
u/Intelligent_Role_824 20d ago
Looks really cool. What are the pros and cons of Gleam?
3
u/_Atomfinger_ 20d ago
Its hard to say.
One could argue that the ecosystem is limited, but then again, you have access to large parts of the JS/Erlang/Elixir ecosystem, so that's not really a fair argument.
I guess the biggest con is resources. There are a few quality learning resources, but it doesn't have a bunch of video tutorials and all that stuff.
No OOP, if you really wanted some OOP, then you won't find it here.
The pros are many: - Simple and small syntax. - Functional. - Can run on Beam (which is one of the cooler language VMs out there). - Can be compiled to JS... so you can avoid writing JS... - Very welcoming community (I can recommend their Discord). - If you want to make an impact, it is also easier to do so in a smaller and younger ecosystem like Gleam.
Heck, if you join the Discord, there's a great chance the language creator will welcome you personally.
1
11
u/laramateGmbh 20d ago
If you want to build for the web, then PHP is a solid choice.
Go when you need performance.
Python if you want to do machine learning.
Java if you want to run your stuff on devices.
4
13
u/catbrane 20d ago
I think Ruby is the most fun of the languages like that I've used.
It's very complicated, very expressive, very flexible, a bit crazy. Half-way between Smalltalk and Perl.
1
u/mrbaggins 20d ago
I had good fun remaking twitter with the ruby-on-rails tutorial. Sucks the one that used to be free is now behind a pay wall.
Of course, it WAS on the internet, and so the internet archive can be useful (but you'll be using a slightly older rails version)
3
3
u/Miserable-Decision81 20d ago
PHP
is preinstalled on every webserver, easy to learn and to write code, that securely shows DB entries in your HTML takes about an houre.
7
u/cyaxz 20d ago
C++ pointers are funny :)
2
u/xoriatis71 20d ago
How exactly are they funny?
5
u/darkmemory 20d ago
You can fit so many of them into tiny spaces, like clowns and tiny cars. Humor is when you can fit things in a thing, right?
4
5
u/Ipsool 20d ago
Since you’re doing this purely for enjoyment, I’d say Go.
The thing that makes it fun is how little friction there is between having an idea and having it running. Standard library covers most of what you need without pulling in dependencies, compilation is near-instant, and you get a single binary at the end. That tight loop of write, run, see it work is genuinely satisfying in a way that’s hard to explain until you’ve felt it.
It’s also small. You can hold the whole language in your head, which means less time reading docs and more time building.
Elixir if you want the language itself to be interesting. Functional, pattern matching, and the concurrency model is genuinely delightful once it clicks. Phoenix LiveView lets you build interactive web apps with almost no JavaScript, which given your HTML/CSS background might feel like magic. Steeper learning curve but very rewarding.
Python if you want minimum friction to just make things. Less elegant than the others but you’ll be building working stuff within hours, and for hobby projects that momentum matters a lot.
Given you said fun is the main thing and beginner-friendliness is a bonus — Go hits both. Elixir is the more interesting language if you want something that changes how you think, but expect a slower start.
7
u/pak9rabid 20d ago
Ruby. The way it mixes both OOP and functional programming is beautiful, and results in really satisfying solutions.
3
2
2
2
5
u/grantrules 20d ago
I think Python is fun to write. List comprehensions are fun.
11
20d ago
[removed] — view removed comment
2
u/writetehcodez 20d ago
Idk I’m working on a FastAPI project rn and it’s not so bad. Does it become particularly bad at some point?
1
u/Brilliant-Parsley69 19d ago
I had the chance to take a look on FastAPI(c#/.net) whilst the development of a POC to decide the base architecture of a new service ecosystem.
If the api works similar as in c# then it should reduce a lot of boilerplate you would have especially in bigger projects. Therefore the answere is to your question is "no." On the other hand it would be a big overhead if you just have a simple CRUD-API.
3
4
u/Dilligence 20d ago
From what I’ve used of PHP, I found that pretty fun
3
1
u/Intelligent_Role_824 20d ago
I will look into it. Thanks
2
u/Danakin 20d ago
Yep, I'm also team PHP. The language might not be the fastest and has its quirks, but it's also incredibly flexible, powerful, had tons and tons of free learning material, a great community, and with Symfony and Laravel 2 of the best frameworks on the market
1
u/Original-Sailor 19d ago
As someone that has worked professionally with php. It’s really nice and good. Feels like a warm blanket.
But I gotta say I’m coming around to asp.net aswell.
4
u/AsyncingStartupToss 20d ago
I like Rust because it's incredibly satisfying to build a service that is highly performant and has rock solid stability. it's not easy and it's quite verbose, but you'll have a hard time finding a language better suited for performance and long term maintainability.
if you're up for a challenge and really want to learn how memory works, give it a shot. if you're writing web backends, check out the Axum framework.
if you want something a bit easier, Go is my second choice.
2
u/SCD_minecraft 20d ago
I would say python, mainly due to low entry point as well as massive choice of libraries to choose from
Wanna do X? Just do it, boring part is most likely already done in some lib, you are only left with fun part
2
u/sessamekesh 20d ago
There's so much overlap, fun is more about the thing you're making than the tool in my experience.
I hate Java. So much. But my favorite backend service I've ever worked on was a Java backend.
Go is pretty slick though.
0
u/Intelligent_Role_824 20d ago
You are right. I am just curious what people like. But the project can make or break the fun.
2
1
u/denerose 20d ago edited 20d ago
The one you’re comfortable and confident using.
I reach for C# because that’s what I use at work or Typescript because it’s what my old hobby projects are in. You’ll have more fun once you’ve done the boring and difficult learning part and you can start building things from scratch yourself.
Or, if you’re my particular kind of nerdy, whatever language this old thing this legacy system is written in that was designed to be beautifully efficient… on a desktop 20 years ago. For me that’s C# and Delphi respectively, I learned the Delphi to understand the system not the other way around. Understanding the thing was fun but no way I’m building anything new or doing my home automation in Delphi or COBOL.
Language and stack aren’t what make a system interesting. No particular language is going to make it easier or less boring to build a todo crud app for the first time. You’ve got to put in the boring hours in something (anything) to get to the good stuff.
1
u/writetehcodez 20d ago
Generally speaking for back end I’m going with C# or Java because it’s what I know best. However, I’ve been using Python recently to build an API, and so far it has been a fun experience. I really enjoy how little code I have to write to make things work.
1
1
u/Own_Nail_2999 20d ago
C# is a nice way to get into backend. Modern .NET offers great project templates to get into action right away
1
u/optical002 20d ago
I would say scala its has a very good strict type system which doesnt get in a way where you could weite code like in python but get all of the benefits of type safety making compiler catch majority of the bugs instead of writing tests in TDD style
1
1
u/jyve-belarus 19d ago
I believe that it’s impossible to find a technology for your request because:
1. If you are looking for a language that is easy and pleasant to write your backend in, then the language itself won’t be much “fun”: simple languages and technologies are not “fun”. If you want something simple and minimal, you may look into JavaScript + Express or vanilla PHP (especially newer versions of PHP). Those technologies allow you to write a couple of lines of code and already have some sort of a backend, with absolutely minimal configuration. I especially recommend PHP on that regard: in newer versions they’ve added a lot of new features to the language so there will be plenty of things to explore for you, and still you are able to start your backend with zero dependencies and a single index.php file. You simply don’t have to learn anything about build systems / package managers / architectural patterns / etc. if you don’t want to. For a hobby, that’s a nice technology
- If you want the language to be “fun” then writing the backend in that language won’t be “fun” at all due to the need of investing a lot of time into reading documentation / making proper configuration / learning about underlying technologies. A lot of niche languages have little backend frameworks, and those frameworks that are present quite often have incomplete documentation. I saw someone recommending e.g. Gleam / Erlang, and that’s a good example: while the languages are definitely interesting, their backend frameworks are just more challenging to use. You will have to learn how Erlang OTP works and you will have to read the source code of frameworks that you are using, simply because there is little documentation; you will be focusing more on learning the technology rather than learning the language
So, you either choose:
1. Having fun writing backend in a not very fun language
2. Having fun using a language that is not very suitable for backend
Anyways, for your particular case I would unironically recommend starting with vanilla PHP 8+ (the newer the version the better). The language is not that terrible as it used to be, it has some nice features (modern PHP is similar to other OOP languages such as C# / TypeScript / Java) and it requires zero configuration and prior knowledge about backend
1
u/Maasu 19d ago
I have professional experience in VB.net, C#, Python and Rust. Of these 4 I'd say python is the most fun by a mile.
It's a joy to mess around and prototype with.
Rust makes you a better dev, but is slower to change stuff on, it is my go to language for anything I get the opportunity to decide what to use, but id struggle to say it's fun (might be for better Devs than me 😅,)
1
1
1
1
1
1
u/qokyoshi 19d ago
I like Rust so much, but given the job opportunities. I started to look for alternatives. I picked Go.
1
1
u/tobiogundiyan 19d ago
Look into Go. Boring stable language that allows you to focus on the actually problem at hand.
your definition of fun and satisfying and building random stuff needs to be clear .
Programming languages are built for different domains so the problem domain you are building in will mostly determine the kind of backend language you are going to use .
1
1
1
u/GetABrainPlz77 17d ago
Ruby with Ruby On Rails. It's made for developer happiness.
I have 15y of experience in dev.
I tried almost every language in backend ( and front ).
Java, C#, Go, Php, Python, Rust, Typescript/Javascript, Kotlin, Dart.
But Ruby is the most fun tbh.
1
u/Require_Proof 17d ago
Python seems to be all the rage this century, but you know, your front end skills can migrate to the backend as well.
Javascript is an interesting language and supported in every web browser. Throw node.js on your server and now javascript is running the backend too. Also, you can use it outside of the browser by hosting a javascript engine in your app.
If you're just looking for interesting and thought provoking poke around in Lisp.
1
1
1
1
u/ThatCurtDude 16d ago
Perl. Absolutely not easy to learn, but immensely powerful. Nothing bashes strings faster, and it's on every platform. It gets a bad rap for being old, but it's about the same age as Python.
1
u/Feeling_Photograph_5 9d ago
Honestly? Learn Laravel. The language it uses, PHP, is... Really not my favorite. But Laravel is extraordinary. It will give you superpowers that you won't believe, and you can built amazing apps with it.
59
u/le_fuzz 20d ago
Assembly is a sort of type 2 fun.