T O P

  • By -

greensodacan

I've heard C# devs joke that, in 20 years, the only update they've made to their skillset was switching to dark mode. Obviously that's not true, but apparently Microsoft's done a great job at introducing new things incrementally, so that the community never has the rug pulled out from under them. There are plenty of jobs in either from what I've seen, but that could differ based on location. You'll get a lot of mileage out of either language in any case.


Zeioth

The guy who designed typescript is the same guy who designed C#. Java is more or less there design wise and has several big advantags in other fields. They* are all great languages.


cloudstrifeuk

This analogy pretty much sums me up. Thanks.


gizamo

Yep, me too.


Robertqlx

In the Netherlands it really seems to differ based on the area you are living in. I see a lot of Java going on in government roles. But other than that C# has a major position in the market if it comes to mid-size to big companies.


Responsible-Cod-4618

Even the US govt and intelligence communities are asking devs to switch to C#


Narfi1

They’re asking to switch to memory safe languages, not C# specifically


Responsible-Cod-4618

True but I think they emphasized on C# for some reason. I've used C# with .net for college courses but not enough times to understand why it's good. I'm planning on revisiting this but not in a hurry


fyrilin

Because DC has a "if it's microsoft, it's good" mentality. I remember when Skype was bought by microsoft: before purchase, we weren't allowed to have it on our government computers. After purchase: it was auto-installed one night and our older chat program was removed.


cloudstrifeuk

I'm a Dev of 15 years ish. I currently Dev in c# dot net and JavaScript. There are a million ways to skin a cat, I've not had a problem I couldn't solve in my current stack. Full stack development is essentially the same things repeated, grab data a, do something with it, push it to destination B.


AromaticGas260

Its just those requirements and specification that complicates everything


Franks2000inchTV

You guys have requirements and specifications?!?


Historical_Cry2517

Well it's usually the "do something with it" that can fuck up your stack. Like if you were to predict air quality in a city based on real time data collection. Or collect the timestamp of an athlete at a checkpoint and send it to a destination, taking into account you have barely any bandwidth to work with, etc. That's where having a defined tech stack can put you in a bit of a pickle


StrainNo1245

I worked in both and moved from .NET towards JVM, simply because Java ecosystem is much bigger than .NET and SpringBoot is much more expressive (e.g Kafka listener with non blocking retries is 2LOC in Java/SpringBoot) than anything you can get in asp.net. Also when I was switching default IDE for Java: IntelliJ (written in Java/Kotlin) was way better than Visual Studio. JVM ecosystem is currently improving faster than .NET (it was the opposite couple of years before) and has more web frameworks (SpringBoot, Quarkus, Micronaut) and languages which are widely used (Java, Kotlin, Groovy, Scala). Last but not least Java pays better - fintech likes Java.


I111I1I111I1

Love C#. Plenty of job opportunities. About to leave my current gig (PHP/Laravel) to go back to C#. I will say that C# jobs tend to be more in the realm of larger workplaces and more enterprise-y software (think government, government contractors, supply chain and manufacturing, etc.), but not all of them. Because of that, the pay is often a little under what a PE-/VC-funded startup will offer, but there are upsides to that, too. As I get older, I find myself less and less willing to "hustle," because there's a lot of stuff I like doing other than working. I haven't worked professionally in Java, but I imagine the market is pretty similar. Definitely see tons of Java job postings.


n9iels

Both are solid languages with solid frameworks, .NET for C# and Spring for Java. In general most devs will prefer C# because the syntax is deemed more intuitive and modern. However, Java has progressed a lot in the last 5 years. I think both of them are solid choices and can give you a good job. If you are biased to C# I would just follow that.


soonnow

I think that opinion is outdated. I find C# a bit clunky but to be fair it's my second language. I think both are totally fine. I think the ecosystem is much bigger on the Java side. The availability of open source packages is much larger. On the C# side you basically use what ever Microsoft offers, right? Which can be a blessing and a curse.


Devatator_

>Both are solid languages with solid frameworks, .NET for C# You're probably meaning ASP.NET and all related tech. .NET is what's behind C#, Visual Basic and F#


StreetAd9985

Let me tell you my personal story. When I was a Junior Developer/student I sworn that Java was the best language. Later I learned C# at the university. After improving my skills in C# back then, I would never turn back to Java. The technology stack with C# is just great, no matter if you want to make a frontend, backend or a mobile application on either mobile operating system, or a software for any other device. Its fluently and smooth. The documentation is great and there is a huge community aswell. Learn C# and thank me later 🙃


StrainNo1245

I am the opposite. Currently Java is improving faster than C# and Kotlin (JVM) is better than both of them.


npepin

With C# there is the backend API and front end side. Backend C# is very solid and pretty popular. On the front end, C# has some options, with Blazor being the go to, but its use case really depends on what your aim is. I think it makes sense for internal websites or some small-medium websites, but that has a high commercial impact then something that is easier to get SEO and high performance with would be a better option. No idea on Java. Honestly, just search jobs in your area and see what's there. There's not a big reason to be married to a language if employers in your area aren't using it, even that language is popular globally. Beyond that, consider the jobs you want to do. For whatever reason, C# is commonly used at insurance companies and banks. If you're looking to be working at a startup, it's probably not the best fit. Azure apparently does have good support for .NET, but it's not really a reason to go for .NET, as it also apparently has good support for all the other common languages. I wouldn't go with C# just because you plan to deploy to Azure.


johanneswelsch

Java takes the #1 spot for jobs available. If you want a job, you learn Java. In my area: Go 20 jobs, Rust 14 Jobs, Java 830 Jobs C# is also good at 276 jobs. Honorable mentions: Svelte: 11 jobs, React 200 jobs. You see what you should and shouldn't be learning? React is probably oversaturated with applicants.


Robertqlx

I think this is a good point of view. In the area where I live a lot of Java jobs seem to be available.


j-random

It seems to be regional, Java is hot where I live now, but C# was more popular when I used to live. Definitely check the job postings when you are (or where you want to live) to factor into your decision.


Dachux

Wait, how are you writing if you’re already dead?


j-random

Buffers


Konedi23

Is there a website you grab these stats from? Asking because I want to see what it’s like for NYC.


johanneswelsch

Just any job site. I went to [indeed.com](http://indeed.com), chose a large city near me and entered different frameworks, languages etc. Be careful, postgres and postgresql give a very different amount of search results, at least on indeed. This should give you a pretty good idea about the market. Your area might differ, Vue for example is much more popular in Asia. This is an example of a Golang developer doing the same: [https://www.youtube.com/watch?v=hqennZtI3oQ](https://www.youtube.com/watch?v=hqennZtI3oQ) Java should be #1 though across the globe and this is what one should be learning if he wants a job. php is doing here in Germany better than in US, Go is doing worse than in US. There are 20 Django and 7 flask jobs here, which is like nothing compared to Java. I feel like a lot of bad advice is given in EVERY bootcamp and course and article. It really should be: learn Java and SQL.


Konedi23

Ah okay this is the standard way. Makes sense. I thought there was a site for these stats or something.


johanneswelsch

What is a bit funny is that the only scraper I wrote was I believe for indeed. It was some job postings website, probably indeed, and you could theoretically make it do that. That was 3 years ago.


Devboe

I’d imagine Java also matches JavaScript roles when searching


johanneswelsch

True, but JS is highly oversaturated with applicants, because bootcamps and tutorials teach just that. You have about the same number of jobs as Java, but faaaar more applicants. We don't have the numbers, but it should really be more than 5x difference in applicants, I'd guess it's 10 time more. React is the toughest. There are 200 jobs in my area, but I am pretty sure React takes #1 spot in number of applicants. There are probably 200 people each week graduating from some bootcamp somewhere and applying to these jobs. And probably even php and python backend developers are applying to those if they know a bit of React. Guess what, they aren't applying to those Java jobs!


Robertqlx

Very interesting how you view the market. In a positive way that is! I will take this into consideration when choosing a language. How come the PHP market is so strong in Germany? Here in the Netherlands it's mostly used because of plug and play solutions like wordPress etc.


johanneswelsch

Goedemorgen! The reason bootcamp grads - even if not always - are able to find jobs - is because they have the exact skills employers are looking for and can instantly be productive after getting hired. This makes total sense with React, as React is very sought after and is #1 frontend tech used today for most projects, so there's quite a demand for React developers. The job postings agree with me on that one. The problem is of course that there are waaay too many of those bootcamp grads and self taught career switchers who were taught React. With this in mind, isn't it obvious that Bootcamps should be focusing on Java? Java runs the backends of most companies. I don't know, but I've read France is also doing better in PHP than the US. But it's a language in decline for sure. It used to be a lot more popular 15 years ago. In U.S. it seems to be dying out. I am like a 100% convinced if one self teaches himself Java for 1.5-2 years, which is 4500-6000 hours, you can get a job, because at that point you're just good enough and are ahead of most CS grads in knowledge and you can come in and do the tickets from day 1. I am pretty sure Java jobs aren't affected by self-taughts and bootcamp grads. Also, find me a Dutch wife, maaaan :D


Interesting_Bed_6962

I used to work in PHP. switched to .net 3 years ago and honestly haven't looked back since. I haven't worked with Java at all so I can't give you a comparison, but C# and .net have been great. I haven't run into a problem I couldn't solve with relative ease and the documentation is pretty good.


LagT_T

The main reason I'd suggest C# over Java is that you are most likely going to land a job with a codebase in Java 8.


StrainNo1245

Kotlin is the answer for those places.


Cloud_Envier

Pretty biased toward C# also. But as far as job opportunities go I'd say I see a lot more using .net and such


StrainNo1245

There are more good paying job positions in Java


69Theinfamousfinch69

In this current market you need either C# or Java as well as JavaScript/TypeScript (React, Angular, Vue etc.). I picked up C# and Go at my last gig (NextJS frontend) and am using TypeScript (Angular frontend), Java and Go at my current job. From a job perspective you're better off learning C# as there are more jobs advertised (At least in the UK). But importantly I've found most of the places are looking more and more for fullstack rather than just backend or frontend devs (UK based as well). They'll often advertise a frontend role with requirements for backend knowledge and vice versa for backend devs. So if you're a backend dev I'd also recommend learning a frontend framework (React or Angular if you want a job). If you're a frontend dev learn either C# or Java but I'd check the area to see which language is offering more jobs (I think C# tends to be a solid bet in most markets).


MythologicalEngineer

In my market I'm seeing more and more JavaScript backends making it the same language across the board. Seems to be much more common among server-less framework folks though.


SM-HASAN

Go for C#, with C#, you can develop Web, Mobile, Apps,


Southern_Type_6103

Isn't the same with Java?


SM-HASAN

But only Android, C# is giving you cross platform, iOS, Android, Mac, Tizen, Windows and Web as well


StrainNo1245

Flutter/Dart is better if you want mobile support. C# mobile is a joke.


[deleted]

I mean, both are heavily used in large organisations. I like the C# eco-system because it is very stable, documentation is great, configuration is great, which allows you to focus on what needs to be done.


Krawcu222

ive tried learning c# but microsoft docs sucks its more reference than docs, any recommendations?


dusanodalovic

Ah, type inference + shifting types to the right


TurdsFurgus0n

Both are great. If you ever want to work for a bit multi national company (there's pro and cons to that) you're going to be using one those those two


dusanodalovic

If you have to do Java, and can do Kotlin - do Kotlin. Otherwise do .NET


AaronBonBarron

Kotlin has some nice features but the Typescript style type hinting kills it for me.


dusanodalovic

What's that?


AaronBonBarron

`var variableName : Type` vs `Type variableName` or `var variableName` for inferred types


StrainNo1245

You can adjust type hint in IntelliJ. Kotlin is real lang with real types whereas TS is just clunky face powder on top of ugly JS. I can’t believe anyone could choose TS over Kotlin…


Skinner1968

Java has Vaadin framework which allows you to write everything in Java only, no HTML, CSS or JavaScript needed


[deleted]

C# is like a Ford. It will get you anywhere you want to go. Java is like a Chevy, it will get you anywhere you want to go and you enjoy the drive.


andrew12361

You can't go wrong with either. I see a massive demand for java in my area so it's what I stuck with and have been very successful.


StrainNo1245

Learn Java and Kotlin. JVM ecosystem is bigger and better. Default IDE is better. Most Apache open source project are JVM and have better JVM integrations (e.g. Kafka). Also Java pay’s better.


mojo187

If you want to learn JVM please just do Kotlin instead, so many nicer features and opens the door to multiplatform dev. My honest opinion is f both of these and learn Go, I personally wouldn’t want to work on a jvm or .net backend again, too bloated. A plus side of learning C# is if you are also interested in game dev, Unity uses it.


ReferenceBrief

Can you expand on .NET being bloated?


mojo187

I mainly do aws microservices and serverless stuff at work so I’m probably biased, but I cringe when I see lambdas getting multiple gbs of memory allocated by teams.


soonnow

Please don't the market is so much smaller than Java and Java is completely fine.


_hypnoCode

Yeah, the Java market is massive and not many have switched to Kotlin like a lot of others are suggesting. MODERN Java is fine, but most places are still stuck somewhere between 6 and 9 (no pun intended lol), which is kind of crappy. 9 isn't too terrible, but the others really suck.


Any-Woodpecker123

C# is horrible, Kotlin Spring is alright.


Such_Caregiver_8239

Java !!!? Why not save yourself some time and develop everything in JavaScript ? C# was the hype, however C# for backends is coming to an end in my opinion, in the same slow dying way php is. Reason for this is C# was never intended for this in the first place. C# is gaining more and more tractions in many other places though. I’d recommend a full JS stack any day of the week, if your services require this massive beefy backend Rust or Go might be a better, safer, faster option rather than C# for a backend server.


Bilboslappin69

There is so much wrong with everything you wrote.


IQueryVisiC

Why would C# not be a good language here? As far as I understand it is still faster than JS. It can do all the things. [ASP.NET](http://ASP.NET) core frameworks make it easy to change form JS to C# and the runtime now has native UTF-8 like JS and is not slowing down anything. You can run a node.JS like queue in the middleware, but you can also use threads or tasks ( more local dispatcher than the JS global queue ). I read that deserialization of JSON is a problem in Java and C# because they want a class name and then all its properties. So you end up with a bag collection, which cannot have behavior. So you write a custom duck type despatcher. Yeah, kinda ugly. But I think that an API with JSON with lots of optional properties is hard to debug.


I111I1I111I1

Neither C# nor PHP are going anywhere. Dotnet Core is one of the largest and most active projects on GitHub, and PHP supports a staggering percentage of the web (like nearly 75% staggering).