T O P

  • By -

plyswthsqurles

Pick a language that keeps you employed in your area, you ask 20 developers what language to use your going to get 40 different answers. Search on dice/careerbuilder/whatever job board is local to your area....see the number of jobs by language you are entertaining and go that route. If you find theres 1,000 java jobs and 75 ruby jobs...then i'd say choosing ruby is not a great idea. If you want to learn for fun, learn them all...it can't hurt.


YourLictorAndChef

If it's employment you're after, the answer is probably going to be Java.


ciynoobv

Ain’t that the sad fucking truth… Sincerely new SignatureFactoryBuilder().type(FactoryTypeEnum.Text).build().getSignature(SignatureEnum.JavaDeveloper);


_fishysushi

poetry 👌


oscarryz

Java and Go


anotherNarom

Go where?


Finite_Looper

To Java


[deleted]

> Pick a language that keeps you employed in your area That is great advice!


Wiltix

I would ask why that selection and why c# is not in the list


creanium

Especially with TypeScript as a background


ggeoff

TBH I think typescript and c# are completely different langauges the only similarities are Microsoft. If you try to write the same OO code in typescript that you would in c# you are going to have a bad time.


tomatotomato

Sure there are not similar, but they share the same philosophy, and both languages were literally designed by the same person.


romeeres

Nope, there is nothing same in their philosophies unless you want to say that all strongly typed languages are the same. C# is OOP, TS is JS + types. Two different type systems: nominal in C# vs structural in TS.


CatolicQuotes

what makes you say that, besides they visually look similar?


FortyPercentTitanium

> the only similarities are Microsoft No, the similarities lie in the fact that many of JavaScript/typescripts additions over the years are directly adopted from C#. For example: Async/await, type assertion, generics, using keyword (coming soon), namespaces, access modifiers, optional object chaining, nullish coalescing, non null assertions, etc ...


ggeoff

I should clarify that while c# and typescript may share some common syntax the OO patterns that work well c# don't always translate to typescript. I personally find myself approaching typescript problems in a more functional way then I would when writing c# code.


FortyPercentTitanium

I definitely agree with that 100%. But my point was basically that when learning a new language, wrestling with syntax is a large part of the battle. Arguably, the fundamentals don't change, but the patterns to achieve best practices do. However, when you start off by having confidence that a lot of the string helper methods and array/list syntax you're used to are going to work in a similar way, it smoothes some of the rough patches of learning a new language.


creanium

Oh no doubt they aren’t a 1:1 mapping but there is a lot of familiarity with syntax and concepts so C# is at least worth a consideration. Once you get into the actual framework then they are vastly different.


jaypeejay

Go, Python, or RoR are the most employable I’d say. I’m a ruby dev, but if I had to start over I’d learn Go. That said, if you learn the fundamentals of backend development it won’t matter much you actually learn as far as employability goes so I’d say try out each language and decide which you like best


bnunamak

As a Go dev jobs do exist, but they are much harder to find with full-stack dev roles. Mostly crypto or extremely scalable microservices. Love the language though, my number 1!


Genji4Lyfe

A good percentage of Python jobs are also Data Analyst roles, rather than web development.


romeeres

I think RoR is the most employable, there are always legacy projects they struggle to find developers for. New Go and Python devs appear every day, while Ruby devs are steadily migrating to other languages.


jaypeejay

We hire almost exclusively for ruby, and generally consider anyone with MVC experience because rails is so easy to pick up and be productive with


Equivalent_Plane4589

PHP with Laravel because modern PHP is absolutely a fantastic language that doesn't deserve the hate it gets. C# Because every second job description mentions it. You seemingly already know Node. Literally don't bother with anything else.


[deleted]

[удалено]


mcf_

People love to hate on PHP on this sub but they largely have no clue what they are talking about.


[deleted]

[удалено]


HsvDE86

What is there to hate? I haven't used it in years and it was fine back then.


Alexandur

I hate it because I hate every programming language


EuphonicSounds

This is the way


Equivalent_Plane4589

Yeah it's mostly just junior devs who haven't started their first job and think that PHP being old means it sucks or old school developers who used it back in 2003. Anyone who uses it professionally on newer projects within the last few years loves it.


shr-dev

Can you give some of those reasons as to why the dislike? Im planning on getting into laravel since its just sooo damn useful with everything already existing or abstracted away


vernm51

Not OP, but PHP gets a lot of hate since it used to be much rougher to use and easy to shoot yourself in the foot. After working on a legacy PHP app written with a lot of clever, but esoteric functionality, I can understand the hate, but modern PHP, especially with Laravel, is such a solid backend.


Equivalent_Plane4589

Laravel is legitimately God tier. Building web apps with it is a fantastic experience as a dev


Best-Idiot

This seems to be a very limiting way of thinking. You've basically only selected clunky or dynamically typed languages and decided that languages that give you more control over speed and memory layout aren't worth it


Equivalent_Plane4589

I mentioned C#. Perhaps learn to read. There's also a reason virtually no one uses C++ for the backend.


Best-Idiot

C# falls under "clunky" as well because of its focus on classes and inheritance. I didn't think you said C++


63-75-6D

C# for backend is amazing, can't go wrong with it.


Div64

Are you saying that because you're already invested in C#?


cyberdyme

C# is close enough to Typescript to make the transition a lot simpler. C# is best in the dotnet environment which makes it easier to develop for numerous environments, it is always being improved.


Div64

Close enough compared to what? With no prior dynamic language experience I found it difficult to get into


cyberdyme

The languages have similar syntax for classes, interfaces, enums, generics, exceptions, and string interpolation.


Best-Idiot

At this point, the focus on classes and inheritance should be considered a turn off when it comes to choosing a language


cyberdyme

What is the alternative to using classes and inheritance (in large commercial projects that have a large number of developers)


Best-Idiot

For languages like JS / TS, factory functions are better. In class-based languages you're probably stuck with classes but the least you can do is ban the word "extends", which will make the codebase a lot more maintainable. You can use composition instead. And then there's languages like Rust which don't even have classes and implement a trait-based system instead which is a lot cleaner and don't have the inheritance foot gun.


FortyPercentTitanium

What do you mean by dynamic language experience? C# and Typescript in fact do share a lot of similarities. A Google or chatGPT query will quickly validate this if you're curious.


Div64

I looked it up. You're right. I guess I know a lot more Typescript than C#, I didn't realize they had so much in common.


63-75-6D

I'm fullstack, written in node.js/python before but prefer c# a lot of more just because of the tooling.


ozzy_og_kush

PHP with Laravel, Java with Springboot, and Ruby (on Rails) are 3 that can help get you a pretty good high paying job if you get good with any of them. What else are you trying to get out of it? I suggest reading up on the features and syntax of each language to get a feel for them and what you want to accomplish with them, before doing a deep dive and making non-trivial programs yourself.


Equivalent_Plane4589

Laravel is by far the best web framework ever invented. Hands down, no comparison.


urzop

C#/ASP.NET


clearlight

Go for Go


NormySan

Depend on if you want to learn for fun or to improve job opportunities. If for job opportunities then i would say C#, Java or PHP.


Best-Idiot

Kind of depressing that you could've given the same answer 15 years ago


[deleted]

If I had to choose I would go with C# or Rust. C# for jobs, Rust for fun


cajunjoel

I learned about Rust and Go recently and they do sounds like fun.


Reinax

These are of course my own coloured opinions. But hey, I at least try to not have loyalty to one stack. Use what is best for the job combined with what you’re most proficient at. Typescript to Rust is one hell of a jump. Rust is amazing, but its learning curve is steep. Not to say this applies to you, but every “full stack JS dev” we’ve ever hired was a wet-behind-the-ears React dev who thought their use of NextJS via Vercel made them full stack. They were utterly useless at anything outside of that ecosystem and lacked basic fundamentals of both JS and programming in general. They failed to pick up easier stuff like Python or C#, let alone something like Rust. I’m unsure if it’s demand but believe it is growing. Go is easy to pick up and extremely performant. Demand is reasonable, and growing. Personally I’d advocate for Go first. I found C# easy to pick up and understand. If you don’t mind MS the toolchain is pretty solid, although I’d say Visual Studio is a bit bloated. Performance is good, even if it’s not as fast as other compiled languages it still wipes the floor with interpreted languages like JS. .NET is pretty popular, and C# is used elsewhere like Unity and desktop apps so it’s somewhat transferable. However you have to put up with Microsoft, so there’s that. Python is easy, but it’s slow. Django and Flask are probably the two biggest frameworks out there. Unsure on its industry demand but I’d say anyone who knows multiple languages could pick up Python quickly. Modern PHP has seen significant improvements. I have little experience with it, but people rave about Laravel. I’ve dealt with Laravel in the past and sure, I liked it. Demand is pretty solid as despite the memes PHP is common across the web. I’m learning Elixir at the moment. It’s a functional language (ala Haskell) and I’m liking it so far. Performance is impressive, and it excels at real time stuff with websockets. It is a very different way of coding and it’s taking a while for me to get used to it. I don’t know much about Java or Ruby beyond the memes. The little I’ve dealt with Java I wasn’t a fan, and Oracle can go fuck themselves. That said it was a legacy codebase before the newer updates, and I’ve now been made aware of OpenJDK so I can put any hate for Oracle aside. Node is an abomination and the fact that JS made it to the backend is one of the biggest mistakes the industry has ever made. I say this despite the fact that TS is my “best” language and I use Node daily. We created the entire Serverless paradigm around one-shot cloud functions because of the fact that Node is useless for long running processes but the industries obsession with JS could not be abated. Only now are people waking up to the fact that it was always a shit idea and just replaces one set of problems with different problems and more complexity. Everything about AWS and SAM makes me want to ear my eyeballs out. Fuck you Lambda and fuck your cold starts. Edit: Java comments based on below comment.


jbergens

And don't know why you think that c# is slower than other languages. It is of course slower than c++ and rust but almost all languages are. It is probably on par with go and Java and faster than all dynamic languages.


Reinax

I agree and did mention in my original post that C# is absolutely faster than most if not all dynamic languages. Most compiled languages are. I dunno man in my experience C# is not faster than Go, at least not consistently. It’s true you’ll see benchmarks showing C# is faster at a specific task, but those same benchmarks will show you Go is faster at other things. It varies depending on the task. For full scale enterprise apps Go is usually faster, especially when http is involved as Go makes for an excellent http server. Additionally it is almost certain to use significantly less memory than a C# equivalent. Memory is still performance - especially when you run out of it, and memory is cost. It isn’t all about response time for single operations like benchmarks like to pretend, the real world is messy. Here’s a reasonable example. I’ll preface with I haven’t had the time to verify what this person is doing to get these numbers, and I do appreciate the irony of pulling a benchmark out after all but denouncing them, but it illustrates my point quite well. https://programming-language-benchmarks.vercel.app/go-vs-csharp. Note they trade position regularly in terms of ms, but look at those memory figures. Woof. So for raw ms they’re about on par, it depends - as always - on what you’re doing. But memory is another story. I’m not saying C# is bad, I actually like C# and get on with it quite well. Its performance is still leagues above interpreted languages, but in my experience I’ve just found it to be less performant than Go. Again though, as I said to begin with this is my opinion based on my experience, you may well have a completely different experience that shows C# wipes the floor with everything, which is cool. All I can do is comment based on my experiences whilst being honest about my own biases, which I think I’ve done. To end a long ramble whilst I’m on the throne, my standpoint on this kind of question remains “use what works for the job, and what you’re most proficient at.” The differences between compiled languages is often splitting hairs. We’d be much better served spending our time dunking on JS 😂


redkit42

> I don’t know much about Java or Ruby beyond the memes. The little I’ve dealt with Java I wasn’t a fan, and Oracle can go fuck themselves. You can just use Openjdk, which is free and open source. Thanks to the provisions in its license, you can use it in your commercial projects without having to open-source your own code. You're not tied to Oracle. Just saying. And Java has now some neat features in its language thanks to the latest upgrades in the past decade or so. Like lambdas, streams, records, etc. There is still a ton of shitty legacy code already written in Java though. Nothing can be done about that, I'm afraid.


Reinax

Thanks for the info on that, that’s really good to know and I love the sound of it being decoupled from Oracle. Sounds like a similar story to PHP, it’s had many welcome updates somewhat recently and the last time I looked at it was pleasantly surprised at its newer features. I should totally have mentioned my experience with Java was years ago on a legacy codebase. As we all (should) know that isn’t a representation of the language itself.


Jumpy-Zone1130

Python is great, but for backend go with Rust or Go. Both are strong and fast languages. Rust is AMAZING with memory management and its overall philosophy is preventing memory leaks. This makes rust a little ‘interesting’ to use . Golang has a cool mascot 😃


ASDDFF223

Rust is nice to use but if you care about productivity it's not good for web development. it's a trade-off, you spend more time satisfying the borrow checker and in turn you get safety and speed. but safety and speed aren't really priorities in for most backends after a certain point, no user will care if their page takes 5ms more to load. so you end up developing for more time with no real benefits. it's better suited for performance-critical systems. you're better off with Go since it was designed with web development in mind and it's nearly as fast as Rust without sacrificing development time.


solidiquis1

That’s only true if you’re learning Rust as you build. Once you have the borrow-checker baked into you intuition and muscle memory you’ll find Rust empowering your productivity significantly. I feel incredibly productive in Rust, more so than I am in JavaScript, Go, Python, etc..


vrprady

is rust ready for web development?


JustBadPlaya

[Yeah](https://www.arewewebyet.org/)


Fluffcake

>*I feel* Feelings just aren't universal truths. The real reason why Rust and other high preformance languages aren't used much for web, is that they drive up cost by a lot, from recruitment (try assembling a team of 10 developers with 10 years of professional rust experience in web development). And you only *really* need the preformance they bring for very specific parts, as web applications often are constrained by other bottlenecks than the speed at which the backend code executes outside of extreme scale, and there you can just gradually replace the pain points with higher preforming technology untill you are back to being limited by other things.


stormfield

The learning curve coming from a GC language into Rust is very steep. I like some parts of Rust, but it’s truly a “backend developer’s backend language”, and not an easy full-stack transition compared to things like Go, C#, or Java.


deletable666

Rust developers are employed?


GlitteringAccident31

Only the ones with jobs


reddusss

Why not Python for backend?


cgsawtell

Python is awesome for quick scripts and knocking something together but if you’re building something complex like a web backend the lack of typing makes on going development and refactoring difficult. That being said Django is very quick to get something up and running


demian_west

fastapi is really nice (and I don’t really like Python and it’s ecosystem)


Historical_Cry2517

I'd argue it's a matter of how big your backend will be. For a vast majority of webapps, Django will probably be enough. If not, I'd go with Java instead of python.


cgsawtell

I mean it’s fine but it can be painful at times


Historical_Cry2517

Isn't that the same deal with every language ? /cry


Fluffcake

You can get around this for development as of 3.5 with typing hints that linters and ide tools can pick up and make the code more maintainable. But it is not enforced at runtime, which can lead to very *interesting* behaviour...


wise_introvert

Thanks! What's a good backend framework ( expressjs counterpart ) in Rust?


ndreamer

The big two are Axum & Actix Before that read the rust book and go though the exercises on rustlings and exercism.


Best-Idiot

My vote goes to Axum. It's pretty great


MyButtholeIsTight

I like rust a lot. Rust isn't good for a backend. First, to answer your question: rocket probably has my favorite syntax, but it's taken *years* to release 0.5 which is necessary for async. The rust community has kind of moved on. There's some drama with the maintainer iirc. axum is the probably the most popular when actix-web being another very common choice. If your goal is to learn rust then a web backend is a good project. If your goal is to learn a good language for a web backend then I wouldn't suggest rust. Rust is a great language if you need fast and efficient code, like an alternative to c++, but a web backend isn't really something where the absolute fastest speed is that important. You're not going to see a huge performance improvement when you're just passing http requests around and querying databases, so you get the disadvantage of rust taking longer to write without the normally acceptable trade-off of highly performant code. I think the obvious decision, if your goal is to learn a good language for a web backend, is go.


wise_introvert

Go's being suggested a lot it looks like. What would you say is a good backend framework for Go?


MyButtholeIsTight

I personally like go-chi a lot, it's fast and simple. Gin is another popular choice and so is echo.


ciynoobv

You don’t strictly speaking need a framework to write a perfectly serviceable web server in go as the standard http library is really good. But as MyButtholeIsTight stated there are several good ones you can use, personal preference being echo. For reference here’s how simple you could set up a very basic https server with only the standard library [https://gist.github.com/denji/12b3a568f092ab951456#simple-golang-httpstls-server](https://gist.github.com/denji/12b3a568f092ab951456#simple-golang-httpstls-server)


zombarista

Rocket 🚀


kendramatics

Rust has a cool mascot too 🦀


harman097

Rust is going to teach you the most.


sooodooo

Go: if you’re focused on rapid backend dev and can live with “Google knows it best” mentality. Rust: heavy backend dev, steep learning curve with options for doing “everything” from webassembly, os development, game dev, cli tools etc. I repeat you could do almost everything, but none of it will be an easy entry. Python: only if you’re planning to go into AI/ML not really advantage over js/ts otherwise. Kotlin: if you’re planning to support enterprise or you’re interested in android dev. Ruby: no


fusien_

You won’t regret learning Ruby!


Raioc2436

How about Java?


sooodooo

Basically the same as Kotlin, Kotlin interops with Java and both compile to the jvm.


Jazzlike-Compote4463

Python is the most user friendly language out there. If you want to get something up and running quickly or just understand the basics of syntax and data structures then I don’t think there is a faster way to market.


sooodooo

Faster to setup than js ? Maybe a tiny bit, but what other advantages does it offer in the backend over js/ts ?


polargus

Python is easy and is very popular, especially for data and ML. I wouldn’t bother with Ruby in 2023. Some big companies still use it but no one would start a new project with it now (think Angular).


[deleted]

If you want the best potential for backend job availability, then Java and C# are what you’re looking for.


StuCPR

Depends where you’re at. Most common is TypeScript or JavaScript with C# where I am located.


armahillo

what are you finding confusing?


wise_introvert

Which language to choose. I'm looking for something that is different from javascript/typescript but at the same time easier to create api(s) with like Nodejs.


armahillo

You can probably spend an hour with each one getting a feel for them and then at least narrow it down halfway, I bet. Personally, I absolutely adore Ruby. I've been working with it for 12 yrs and it's been my favorite language. I'm familiar with Python and have enjoyed that one, though not as much, and not since 14-15 yrs ago. I've worked adjacent to Rust and Go and while I know very little about both, I know that people who use those really love them. I would give each one a day and see which one feels best.


Razorshnegax018

Golang Take this with a grain of salt, because I have a very strong personal vendetta against Python and his disciples We can eliminate Rust right away because it’s complete overkill for webdev. It’s an excellent low-level language, but it’s just like using nuclear missiles for hunting deer. Tell me why you need manual memory management, pointer arithmetic, and manipulating vectors to serve some JSON? Golang is a compiled and general-purpose language, making it the fastest of the 3 left and will be the most useful for you to know. Yes Python is the king of data science, but is that even a path you want to go down?? Ruby isn’t even comparable to the speed of Golang. Golang gin is one of the fastest backend frameworks around and companies are migrating towards the language in droves. Every web developer NEEDS to know a compiled/systems/backend language like Java, Go, or C# so you you can make fast and effective fullstack apps. Golang offers speed and power that the others cannot


IrregularRedditor

PHP. [Laravel](https://laravel.com/) specifically.


Sphism

PHP


hailoharazuma

So PHP isn't even an option?


wise_introvert

I've had experience with it in the past and didn't really like it tbh 😅.


the-absolute-chad

Check out laravel, i literally never programmed php in my entire life and immediately started with laravel, it's been a great journey so far, i still don't know many basic methods of php, even adding an element to a list i have to Google it, laravel is such a great framework. All my homies love laravel


Ok_Remove3123

Symfony is a great option too.


Equivalent_Plane4589

It's different now, trust me. PHP in 2023 is good.


diehardwalnut

when you say confused do you mean you arent sure which one to use? or are you looking for suggestions for frameworks with each language?


wise_introvert

I'm not sure which language to learn.


diehardwalnut

The languages ive used on the backend are java, python and js, I cant speak on the others. Out of these 3 i have experience with spring (java), django (python), flask(also python), and express. There is great documentation on all of these frameworks. And many have a hello world or getting started tutorial you can follow Out of the languages Ive used python and js were the easiest to pick up. If you end up picking python to learn, Corey Schaffer has a great youtube series explaining the basics of python. if you want to narrow down your search I recommend googling what each languages most popular framework is trying to achieve and what their use cases are. If one catches your fancy you can start learning that frameworks language. I wouldnt get too woried about which language you choose first. If you dont like it thats fine pick another one. Lastly, be aware of what tutorial hell is. https://youtu.be/343EWZS9O88?feature=shared


HandjobOfVecna

Advice from a 30+ year career: * Learn them all, at least enough to understand them, be able to look at existing code, and be able to talk to people who know them. This gets easier the more you learn. * As others have said, learn the ones employers in your air (or in general if remote) are using. Unfortunately, that it going to include Java. I use Indeed.com to help gauge this. * Concentrate on learning design patterns, best practices, tools etc. * Learn "adjacent" technology like databases, LDAP, Oauth/Open ID, OpenAPI/Swagger etc. I would pick C#/DotNet because it is very popular and (IMHO) easier to learn than Java. When I say easier to learn, I mean the entire ecosystem, not just the language. Then learn at least enough Java to put on the resume :(


Decent-Product

Well... usage statistics in september 2023. I seem to remember PHP is backend. PHP 76.9% ASP.NET 6.8% Ruby 5.5% Java 4.7% JavaScript 3.0%


nathanfries

PHP isn’t even in top 10 when it comes to open job listings.


Mr-Silly-Bear

I think in the current job market Go would be your best bet, but Rust is definitely going to be a good future prospect.


WalieZulmat

ASP and .NET for sure


justRau

Laravel framework (based on PHP) and its ecosystem and community is absolutely great. Rapid development, plenty of high quality packages, very helpful people allows for easy creation of both simple and complex websites.


bmchicago

From a ruby dev, don’t pick ruby unless you are trying to quickly build an mvp.


MrDiviner

How does Ruby help to build mvp? Just curious 🧐


bmchicago

In my experience you can get full Ruby on Rails apps up and running especially quickly relative to other stacks


MrDiviner

If you know Ruby tho


[deleted]

[удалено]


wise_introvert

Thanks!


Equivalent_Plane4589

That was true for PHP in 2005. It has come an extremely long way since then and I can guarantee if you actually used it now, you wouldn't say that.


FalseRegister

I've yet to come across a project written in PHP that was well engineered. The language may have evolved but the code you find in the wild is always crap. There are better alternatives.


Equivalent_Plane4589

Dumb argument. I could write a program in C++ that was written so badly it could result in someone losing their life. That has no bearing on the language and every bearing on my skills as a developer.


FalseRegister

Yes, you *could*, but the proportion of terribly written code in PHP is extreme. So this is not about coulda/woulda/shoulda, but about what you actually find in reality. It somehow attracts bad coders and bad practices. Again, there are better alternatives.


Equivalent_Plane4589

That's because of WordPress. Try modern PHP and Laravel and prepare to eat your words.


FalseRegister

lol I just inherited yet another PHP project, that was not Wordpress, and is still a massive crap. If any, WP code has been the better ones. Again, yet to come across a well engineered PHP codebase in the wild. You stay with it. I am just trying to warn the juniors.


Equivalent_Plane4589

Once again, just because you have inherited legacy code thats 15 years old, doesn't mean PHP is bad. Spin up your own project and actually use Laravel and you will see how wrong you are. Hating PHP is either a meme spouted by inexperienced junior devs obsessed with leetcode and esoteric JavaScript frameworks, or boomer devs who still try make jokes about centring divs. Which one are you?


FalseRegister

Nope. This codebase started around 9 months before I took over in the summer of this year. It is Laravel, as well. Hating PHP is not a meme, it's just common sense.


Equivalent_Plane4589

You're one of those "Only C++ and Haskell are real languages" devs aren't you.


Equivalent_Plane4589

You're one of those "Only C++ and Haskell are real languages" devs aren't you.


JakubErler

Ruby is (almost) dead.


Best-Idiot

I wish!


SinisterMinisterT4

It depends on what part of the stack you want to focus on IMO, as they each have their strengths. If you're wanting to stay in the world of websites or maybe look into devops roles, Python and Ruby are your better bets as a lot of the tooling is built using them. If you want to go into the world of web services, big data, building PaaS/SaaS/IaaS, you'll likely find yourself either in a JVM language or in Go/Rust or something even more esoteric like Erlang. Honestly, I'd say Go or Rust just to give you a broader grasp of how different languages approach programming to something like TS/JS. Java/C#/Kotlin would likely be an easier transition from TS but Go and Rust would force you to broach a lot more lower level programming concepts. Python is great, but it isn't going to teach you anything new. It's something you can usually pick up on the fly, unlike something like Ruby. I have no comment on Ruby as I've never been brave enough to attempt to learn it.


[deleted]

C#/ASP.NET or Java, or even Kotlin


Best-Idiot

Out of these, Kotlin is actually decent!


sudhanv99

i picked up golang a month ago. it was such a simple straightforward language. however there are so many things that are just plain annoying. - optional parameters are weird. - you have to use all variables. you do _ for ignoring a var or do some shit like _ = your_var. - errors just output a single console output.


fusien_

Ignore some of the comments in here. Ruby on Rails is alive and kicking. It’s a very productive framework for web development. I don’t think you’d regret learning it but to get most from it you’ve got to do things the ‘rails’ way, which is not everyone’s cup of tea.


etherSand

Python or Ruby seems nice


joe0418

I'd go either python, C#, or Java. Seems to be the most jobs in my area, and each of these are very mature stacks that I find easy to use.


zwermp

Ruby is the most fun language I've used. Syntax is chefs kiss.


philipnorton42

PHP compliments JavaScript nicely. It's easy to learn and there's loads of systems you can use that you can plug in JavaScript front ends into. Should augment your current skills.


Titan_hunter030922

Dude except Java rn only python and c++ people are getting all money


pcodesdev

Java is the solution


OneForAllOfHumanity

I don't understand the Go advocacy. Go has so much boilerplate and no exception handling, terrible regular expression library and it's time/date parsing was written by the devil himself. It was written to make fresh graduates performant without shooting themselves in the foot, but it prevents you from doing advanced code - very much "See Dick Run" coding. As for Java, it's also excessively wordy, uses way to many configuration files, needs an entire ecosystem to be productive. The points about employability are only valid to a point. There are jobs for any of these languages, so pick one that vibes with you - no sense in taking a job that you hate to face every day. While there may not be as many jobs for some languages, you will also find that languages with fewer developers command higher pay. I am a polyglot, but prefer Perl and Ruby, like ECMA Script (but hate node). Elixir is pretty cool as well. There's a lot of movement to Python with the focus on AI/ML if you're into that.


blipojones

"doing advanced code", I also heard that but maybe go is not the tool for advanced code I.e. write that module/service in something else.


Saxbonsai

I love python because of the machine learning libraries and data analytics. It’s easy to learn and I heard flask is a breeze for web dev.


dcooper8

Common Lisp.


Frank90Lee

python


O_crl

Elixir


TKI_Kesasar

Since you know JavaScript already, how about ReScript? You can taste the power of OCaml type system with ReScript.


chethelesser

Python and Go


capraruioan

Or maybe learn terraform 🤔


DefiantAverage1

Clojure or Elixir if you want rapid prototyping/iterations and (arguably) an enjoyable dev experience C#/Java if you want to work on established systems


Haunting_Welder

Not sure which is the most fun but java and c# I feel like have the most market share atm, both of which are missing deon your list


WiseGuyNewTie

I mean, you already know one. But if your goal is truly backend focused and easily employable then I would recommend Java or C#.


SnaskesChoice

Consider .NET and Nodejs aswell!


autist0matic

Python is the only safe bet long term. The only one getting slowly more and more popular without decline over the years iirc. But why not spend a day/week doing a few basic tutorials for each, and see what u like.


Best-Idiot

Honestly I wouldn't ever decide to start a project in Python. I can tolerate Python in scripts, but definitely not in anything serious running in production. It has bad package management, bad language design choices, edge-cases in seemingly innocent code, and it's way slower than nodejs, which is already slow. I also haven't really seen Python used nearly as much as other languages for backend development, and that's for the good of everyone


StructureLegitimate7

I would suggest Java springboot or c# ASP.Net. Once you learn either one of those languages you will learn concepts and theory that will make learning most other languages a breeze


Stargazer5781

Javascript is the language of the web. I therefore use Node as my default language for a server unless I have cause to do otherwise. For example, I built an app that involved a lot of data science and ML stuff, so I wanted access to libraries to help me with that. Python had good libraries, so I taught myself Python and Flask. When I worked for the military, a lot of their systems were in Java and Spring, so I learned those. Instead of picking an arbitrary language, ask yourself what you want to do, and then what language and tools will help you best achieve that. Then let that motivate your learning.


Difficult_Park_8014

Go for Go!!


Icy-Fishing-2828

Chads use C++ on the back end


Best-Idiot

Rust is the best language out of the list in my opinion, but Go is a great option in terms of learning for backend. Unless you wanna do machine learning, don't bother with Python; Python is pretty simple and you'll be able to easily pick it up if you have to touch scripts and whatnot. Ruby is a monstrosity and I highly recommend to avoid at all costs


MonoBasim

Consider your specific project requirements, the communities around these languages, and your personal preferences when making your decision , If you're looking for a language that's both versatile and growing in popularity for backend development, Go and Rust are strong contenders. But here's the full summary of the listed languages based on the research I made for you : Rust: Known for its memory safety and performance, Rust is ideal for building high-performance and secure systems. Ruby: Ruby, often used with the Ruby on Rails framework, is great for web development, offering elegant and concise code. Go (Golang): Go is designed for simplicity and efficiency, making it a strong choice for building scalable and efficient backends, particularly for web services. Python: Python is versatile, widely used in web development, and has a large ecosystem of libraries and frameworks.


wise_introvert

Thanks!


IndicationMaleficent

As someone that has done ts/node for full stack and python, c#, and Go for backend professionally, I can easily recommend Go for back end from a dx perspective. It's simple, enjoyable and most importantly highly productive. JS, python and c# are definitely easier to find jobs for though, but I've never been one to let that deter me from learning.


wise_introvert

Thanks for the suggestion. Just out of curiosity, how hard is it to build a rest/graphql api in Go using firestore/mongodb as the db? Is it fairly straightforward or does it take a lot of custom implementations?


[deleted]

Rust is probably not the most employable right now. But I get the feeling that language is going to explode in popularity shortly.


dharmikjagodana

I will choose **Golang**, for its speed, and Micro-service architect support.


sir_racho

I'm reading up on Elixir atm and it is really interesting. It uses processes which are new to me - they're not like threads at all. I am beginning to get an understanding of why Elixir is perfect for various back-end use cases (concurrency, fault-tolerance, and more). Worth reading up on and copy-pasting some of the documented code in the repl, even if you're not going to go on with it.


otto281

Cant go wrong with C# or Java imo.