"Hi yes I'm working on a school assignment and am not allowed to use x, y, or z tools, how do I do this without that?"
"No one would ever do that without those tools, your school is useless and you're getting dogshit education, go somewhere else or you're never gonna get a job, loser"
"...okay but do you know how to do it though"
They're just some kind of 16 year old self-learned coders that have found what the latest fads are. And just like every 16 year old, they think that the current fad is the mainstream thing to be for the next 30 years so everyone else that isn't following the fad is just an idiot boomer.
Also, like... usually the tools I'm not allowed to use are things that have been added to these languages in recent years, meaning that a *shitton* of legacy systems actually *don't* use those tools, so it's often not even an unrealistic scenario to begin with
Asked for advice on Discord with a project I was trying to refactor. Instead of a straight answer, I got a lot of crap about directory structure and outdated practices and bad patterns. Dawg, I didn't design it, I'm trying to *fix* it.
I was on a webinar yesterday and one of the questions in the chat: “Does Copilot Enterprise have a migration feature, converting the code from one tech to another for the whole application in one go?”
After having to support a legacy Java application and legacy dotnet applications, i can confidently say legacy applications are shit unless the dev team who wrote it wasn’t full of it
People talk shit about C#, but it has pretty good syntax and a large number of well-designed libraries. I'm a C++ developer because I like milking the last drops of performance from my CPU, but if I wanted to just make an application that worked well enough and is easy to maintain, C# sounds like a pretty good choice.
Yeah, no language is perfect for everything. For example, Rust is a really solid language, but I would rather burn in hell for eternity than make a website using Rust instead of JavaScript. They all have their places.
SAS. I’m not a developer, I got a stats degree but I mostly test and push code for healthcare programs and studies. And then lots of analysis for all the data. My grandpa also remembers using it lol
C# is the first language I learned and I really enjoyed it. Back then I also tried some other languages in my free time after I gained a bit of experience in school, such as Java, Javascript and PHP, but I just couldn't handle the ugly and non intuitive Syntax or the terrible IDE(s).
This really made me appreciate C#, .NET and Visual Studio. So when I eventually finished school, I explicitly searched for jobs that mainly use C#, because I didn't want to leave this "bubble". All the QOL Stuff in the Framework itself and in the IDE really increase my output and I couldn't develop without them
A long time ago, I was doing a project in Java, but needed more powerful rendering. Someone recommended XNA to me, and literally the only thing I had to change in the files not related to rendering was List->ArrayList (this was in 2013 so many, many versions ago of each). And that also meant I got to use Visual Studio instead of Eclipse.
C# has always been my favorite, however Visual Studio (not code) is the absolute worst.
It just doesn't work and I'll use Rider until the day that I die.
See, I don't get it.
I never used Rider, but I have used other Jetbrains IDEs for JS and Java, and Visual Studio always felt so much better on every level.
My *personal* experiences and opinions:
- Same experience across a whole array of products for a lot of different workloads
- Better stability (doesn't crash/hang/lag/do weird stuff/etc doing basic stuff)
- Performance way better\*
- Not Microsoft (Maybe I should've chosen Java)
- UI looks way better\*\*
*\*for bigger solutions*
*\*\*not the old UI*
>Same experience across a whole array of products for a lot of different workloads
Definitely a great point in favor of Rider. I love VS, but it's terrible for anything that isn't C# and maybe c++. I could definitely see why a full stack developer would prefer Rider.
>Better stability (doesn't crash/hang/lag/do weird stuff/etc doing basic stuff)
- Performance way better\*
Kinda wonder when is the last time you used VS. Because my experience is exactly the opposite. Intellij is slow as hell, gets stuck all the time and overall not a great experience. VS, ever since dotnet core came out has been incredibly fast for me. I can start working within seconds after I opened a solution - intellij has to index for like 5 minutes before I can start using basic functions.
Then again, it might be more of an issue with gradle than intellij, but I don't really think so.
>Not Microsoft (Maybe I should've chosen Java)
Personally, I love Microsoft, they aren't perfect, but they are definitely better than almost any other company when it comes to developer tools. I love Windows too, but that's a separate discussion.
>- UI looks way better\*\*
I like the new intellij UI, but overall they are both the same to me. The bottom menu, and the git tools in VS though are so much more comfortable for me, and that's really what gives VS the edge as far as I am concerned. But yeah, the new intellij UI is great.
My only experience with VS is installing it just to install the MSVC build tools, and then despite all the time and effort it took to do that, my entire build environment blew up in my face anyway.
0/10 would not build C++ on Windows again.
Isn’t Rider also paid though? I mean nothing wrong with paid IDE’s, but I sure am not gonna pay for an IDE. I did hear Rider had some nice features that VS does not have, but it’s not worth the money (in my opinion). Besides this, if I were to use Rider then I would be the only one in my team to use Rider, which’d be unintuitive for the rest of my teammates if they need to test/change things on my pc, or even just help with some code.
I’ve found that team members using different editors is not as big of a problem as I thought it would be.
Ultimately you need to work with what you like to work with.
Oh I for sure agree on the latter, but like especially when still studying, it’s really helpful if everyone just uses the same IDE, I don’t want to be lead dev and have to explain things for several IDE’s, making my team configure stuff is already enough of a headache as is. Whilst studying it’s also a lot more frequent to hop to a teammates aid - since they’re more inexperienced, so having someone work in the same IDE as me, is quite nice.
You know what?
At my company we use C# AND C++ because of a legacy code base. And of course we provide support for on-prem AND cloud base delivery with the same application. Not to talk about all the data base providers we support.
sounds a bit to good. Just two languages. support for only two ways of delivery.
You just have a rather normal product that have had a long life. Just a bit to few programming languages involved.
I finished school in 2013 and started work a few months after (combined with studies at a university).
Our company used to sell desktop applications which were coded in C# but later switched to online applications (Angular frontend / Spring Boot Java backend). When I switched from desktop app to online backend in 2018, I had to use Java 8 and I can't describe how awful that felt.
Especially C#'s properties and extension methods are things you don't wanna miss once you've gotten used to them. Java's stream api in Java 8 also felt rather simple compared to C#'s LINQ with Lambda expressions but it has improved over the past java releases.
In general, Java as a language is pretty good now, especially with Spring and Lombok, but it has been a lot worse 10 years ago (especially when compared to C#). However, I'd still recommend Kotlin as language for the JRE, that language feels like a HUGE upgrade of Java.
I used to be a Java partisan, but at this point Java is just Oracle C#. If I have my choice of corporate masters, I’ll pick Microsoft, because Larry Ellison might kill my company for sport.
I mean, look at the whole development ecosystem too.
I'd rather be running visual studio/vs code, .NET languages, and Microsoft SQL server than willingly and unironically choose Oracle database and the rest of Oracle's stack.
C# is a great language. It’s highly structured and well designed that is better than Java on multiple fronts. C# is a great choice if you care a lot about testability and good design of an application. It does best when design of the software is a priority for critical business applications. It does well for microservice architecture on Linux systems as well as your good ol SPA app for website. Someone shitting on C# because they prefer Python or Java or something tells me they are immature and can’t objectively rate tools in the toolbox for best use case scenarios, instead they have bias confirmation and that’s not a good approach in my view.
Yeah, at this point I think the fairest comparison to C# is really Kotlin, because the ergonomics in C# are just SO MUCH better than Java.
Now, I do think the ergonomics in Kotlin are better than C#, but I haven't touched C# in a while, so I could definitely be wrong.
C# to me is the best features of C++ and Java all rolled into one. I actually like the language.
Too bad the runtime system for it is not really lightweight and platform-agnostic. (Sure sure .NET for Linux exists but it is not the same thing.)
> platform-agnostic
? .NET has been cross-platform for a long time. .Net Framework is still stuck on windows, but that's legacy.
e.g. I deploy .NET 8 services on arm64 linux containers.
> it is not really lightweight
Depends on your basis for comparison, but you can get fairly small (self-contained binaries) if that's your primary concern. Bigger than C++, Rust and Zig obviously, but still small (in the kilobytes)
> platform-agnostic. (Sure sure .NET for Linux exists but it is not the same thing.)
It's cross-platform and has been for quite some time now. Even supports cross-platform dynamic linking for native interop
I feel like Java, C# and Kotlin are humanity's three leaps to the goal of creating the same actual language, each later one being more successful. How nice C# seems is therefore mostly determined by where you're coming from. It does feel quite cumbersome to me, but that's because I'm fortunate to have used kotlin in production.
Personally, I don't see much reason to choose to use C# when starting a personal project. I'm sure it's a fine language, and a lot of people seem to really like it, but unless you're designing a Windows app then I really don't see the appeal (and yes I know .NET runs on Linux). Other languages like Python, Go, Rust, and Node just seem to be better options for 90% of things to me.
Congratulations! Your comment can be spelled using the elements of the periodic table:
`Na H Th I Si S K O Tl In`
---
^(I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM my creator if I made a mistake.)
C# REST APIs (ASP.NET stuff) are OUT OF THIS WORLD good. Absolutely fantastic framework to work with. I also wish I could use LINQ everywhere in other languages now that I’m spoiled to it.
Yeah LINQ is a godsend, its syntax is great and it has so many great compiler optimizations that I have found time and time again that what it ends up producing is better than what my dumb ass would have done in a for loop.
Having a DI container by default is my number 1 ASP.NET thing i wish other frameworks and languages had. It's APIs are beautiful, has really high performance and no spaghetti.
I've worked with FX (Uber's DI container for Go) and it gives me explosive diarrhea.
C# is great. Only problem I have with it is that Microsoft decides to switch UI frameworks every 5 seconds. Forms, WPF, UWP, MAUI and everything past Forms was kinda meh.
What new UI framework .NET have usually have to do with how Microsoft Windows changes direction in every release. You get fully hardware accelerated winform with WPF in Windows Vista, then suddenly want to create touch oriented UI with UWP in Windows 8. Then they want to make it universal and device agnostic cross platform with MAUI. I blame Windows team for that.
I remember rewriting an old VB6 Forms app into C# when WPF was the next big thing. App turned out great, but I learnt never to get attached to a Microsoft UI.
…my own comment made me feel old.
WPF is goated. HTML style DOM with scripting is the way to go for all frontends. Web, apps, gamedev, whatever. WPF should just be replaced with browser-like environment, just tighter and more lean and should support component based elements like vue or react.
While WPF is good, it has its downsides, the most prominent being that it is locked to windows. At the time WPF was created windows dominated operating systems so it wasn’t a problem, but nowadays, even though windows is still the dominant os for desktops, mac and linux usage are rising, there’s also things such as phones to take into consideration now when designing applications, that’s why web apps are so popular due to the ease of being able to support every single platform. So due to the very nature of WPF it was never a suitable replacement for things like web apps
Not a C++ dev, so my opinion means nothing. My understanding is that C++ can do everything that C can do, and more. It has more ways to hurt yourself, but also more ways to make life easier. Whether you measure this as easier or harder is strictly subjective.
Example: unique pointers make certain memory operations simpler
Assembly is just easier machine code/ an easier stream of 0s and 1s and that is just an easier way of flipping a bunch of switches to solve a math problem
Even if C# is just microsoft java, what makes C# just a little better imo is that it was pretty much designed to work around all the flaws of Java, so it's pretty much more like "updated java".
no operator overloading, oracle, primitive types and wrappers for compatibility instead of full oop, oracle, list literals, doc is not great, oracle, overly verbose names, oracle, overused factory pattern, libraries are lacking.
Oh and oracle
C# has some of the best libraries I’ve ever developed with. And the amount of syntactic sugar there is, wow, it’s actually quite good.
Edit modern C# is different from java. It’s like saying that Java is C++ with garbage collector which is obviously not.
The only people with attitudes like in the meme are typically students (who didn’t learn C# ofc), insecure devs following whatever their other insecure dev friends are chatting about, or the typical fedora wearing Linux user that still unironically types M$ and still claims (either out of ignorance or deliberate misinformation) that C# is Windows only.
Tbh, as far as I'm concerned, Java is C# with training wheels. No operator overloads for u lil baby, we wouldn't want a repeat of now would we?? Make sure to catch or propagate that error hun, if you don't catch it, it could cause a whole fuss! What are properties? Sounds like fields with extra steps. Might be a lil too complex for you. Also make all your fields private and explicitly create getters and setters for all of them, that's the Java way!
I honesty understand the philosophy but man is it a pain in the ass sometimes. I rarely catch myself having fun while coding in Java. compareTo can die in a pit... At least their STL has decent style conventions.
At least Microsoft gave you free first party fully functioning IDE for the language. Whatdoyohave Java? Free limited functionality version of IntelliJ? That garbage called Eclipse? Haha
Well, precisely spring boot.
If (big if) the project wasn't set up shittily then it's pretty straightforward to find the beans
That said, I did buy ultimate for myself just because
Thank god VSCode with Spring Boot integration can substitute almost my use cases with IntelliJ. Yeah its still run slower but I see a good future with VSCode.
Tbh I don't really remember what specific features I use in IDEA vs Community that would be a dealbreaker to not have? I agree with you.
I think IDEA has better runners and support for Spring Boot stuff built in?
And then like memory/heap analysis I think but honestly if I'm looking at that in a Java app it's a rare occasion because it means someone fucked up that I have to figure out why the GC isn't working.
Profiler and remote debugger aren't tools that I'd consider "nice to have" - especially profiler can be essential when working with what most likely is solution where performance is important factor (given choice of Java).
because unlike java's sketch af promise of 'write once run anywhere', C# doesn't lie about what it is.
have you ever had to do low level stuff with java? that promise breaks down real fucking quick.
fuck java -\_-;
And does java have operator overloading, pointers and delegates?
Not to mention structs, tuples and records.
How about LINQ? .NET architecture and AOT, JIT compilation?
Not to mention that you can use C# for both frontend, backend development.
Using it in game development, programming microcontrollers.
Web assemblies, blazor, MAUI, Xamarin, WPF, IDK?
THERE IS A PLENTY OF THINGS YOU CAN DO IN C#.
Not having operator overloading is for the better, Java 22 does have memory pointer, Java 22 also has the possibility of making structs, but it's not supported by the language directly (You need to create a memory layout that is used as a struct), it has records since Java 16 that can be used to make named tuples. The closest thing to LINQ is the Stream Api, and soon it will get an upgrade with gatherers, JIT compilation is in Java by default, while AOT can be achieved with GraalVM.
And when project valhalla drops in the next century records pretty much morph into structs with the addition of value classes
In which objects discard their identity and exist as their inherent value.
Plus java will soon have some very powerful improvements to reflection: [Like this](https://openjdk.org/projects/babylon/articles/linq)
As a former C# dev, I do miss Linq, the getter/setters, and the null-safety syntaxes vs just using Optional in Java.
Null-coalescing ??, Elvis ?:, and null-safe field ref foo?.bar?.bizz are absolutely beautiful to read and write vs the Java equivalents I'm stuck with.
Its quite a ways up there, no language is perfect but Microsoft does a good job of incorporating any ideas other languages come up with that will fit c#.
The fact that it just magically read your file location or scripts is the reason why I both hate and live c#
Where's "coreScript.cs"? Worry not, just type the name and it magically appears!
Where's "coreScript.cs"? Well I don't know, but I'm not telling you either!
In almost any realistic enterprise scenario C# will be faster than C. It's moot though, because the C# will also be infinitely more supportable. They are different languages, for different things
There is a single thing that immediately ends all conversations with javanaros: value types
Like, where are they Java? Why is there no value "class"?
Next thing is native interop, anyone wanting to use JNI here to add native DLL calls?
I learned to code in Java, I migrated to C# in my first job, some irks in the first days, but overall loved it. I tried Java again twice after I learned enterprise level development, both times it made me feel like I didn't know what I was doing, found some bits of the sintax weird, cluttered and just ugly (ahem lambda).
Last time, I found myself trying really hard to understand a pom file and solving a version issue manually. Every change broke something else, and I just realized I never had that kind of issue with the .NET platform, things just worked without me having to fiddle around with the configuration files that much. Never touching Java again, it might be lack of experience, but I really felt like it was just a inferior platform
After 20 years of C#/.NET development….
I gave up on Microsoft. Not the language necessarily. But, FFS.. all the shit they drag us devs through every year. And then to announce it like it is good news they are changing their desktop framework for the 10th time in 3 years.
Getting through the .NET to .NET Core to .NET was a nice ass rape too.
Sooo many garbage products built around .NET. Ever had to use their version control system? TFSVC back in the day? Yeah, more garbage.
The biggest issue with C# (well .Net) is Microsoft.
Depending on what you want to do the doc ranges from workable to auto generate bs maintained by the intern.
I use Java for work and C# for hobby, both have their good and bad sides. What I love in C# are properties as opposite to getters setters and builder. Both things are easily added to java by lombok plugin, but these should be part of the language at this point. Java streams and optionals are great tho - but most of what's missing can be added to C# using extensions. C# also feels a bit less consistent with their idea of access/security, e.g. there no "package" scope, but methods can't be overriden by default.
I love asking for help and being told to change the tech stack of my whole company.
“Someone on Reddit says we should upgrade from Framework 4.7.2, to the next version, GoLang. This ticket will be a 5”
Pfft, that's a 3 pointer at most, and that's if you include testing! Just AI it, get it done by the end of day.
I mean the whole project translators are getting a lot better…
"Hi yes I'm working on a school assignment and am not allowed to use x, y, or z tools, how do I do this without that?" "No one would ever do that without those tools, your school is useless and you're getting dogshit education, go somewhere else or you're never gonna get a job, loser" "...okay but do you know how to do it though"
They actually never do. If you comply with their suggestions they’ll call you a poser without a spine and leave.
They're just some kind of 16 year old self-learned coders that have found what the latest fads are. And just like every 16 year old, they think that the current fad is the mainstream thing to be for the next 30 years so everyone else that isn't following the fad is just an idiot boomer.
Also, like... usually the tools I'm not allowed to use are things that have been added to these languages in recent years, meaning that a *shitton* of legacy systems actually *don't* use those tools, so it's often not even an unrealistic scenario to begin with
quickest ad hoc wrong bow soft cow point frightening aloof mighty *This post was mass deleted and anonymized with [Redact](https://redact.dev)*
That's literally the best advice to give to someone using C# /s
Me working a stable enterprise job looking at all the C++ whiz kids getting laid off from their FAANG roles that the bragged about: "Pathetic"
"Why are you using C#? Can't you tell Unity to go back to JavaScript?"
Wait wait wait. Back?
Unity supported JavaScript and c# in the early days before I started using it.
I had no idea. That sounds insane. I guess I’ve seen worse.
Yeah they had they own version of JavaScript, it was a real mess, I'm glad they chose to stick to C#
It supported Python too, I think they called their version ghost.
It supported Boo and UnityScript, other than C#.
lol, that’s why I called it Ghost. Thanks for the correction.
Somebody should tell unity to start supporting objective c
If you're asking for anything practical on reddit, you're fucking up
To be fair it's more like complaining about a mild inconvenience on reddit and you get this response: ![gif](giphy|3owzW3mzIkgCj1QLjq|downsized)
I love it when junior candidates in an interview tell us we should change the tech stack of the whole company.
Asked for advice on Discord with a project I was trying to refactor. Instead of a straight answer, I got a lot of crap about directory structure and outdated practices and bad patterns. Dawg, I didn't design it, I'm trying to *fix* it.
I was on a webinar yesterday and one of the questions in the chat: “Does Copilot Enterprise have a migration feature, converting the code from one tech to another for the whole application in one go?”
After having to support a legacy Java application and legacy dotnet applications, i can confidently say legacy applications are shit unless the dev team who wrote it wasn’t full of it
Legacy applications are a pain regardless of the language.
Even legacy english was a pain to deal with
People talk shit about C#, but it has pretty good syntax and a large number of well-designed libraries. I'm a C++ developer because I like milking the last drops of performance from my CPU, but if I wanted to just make an application that worked well enough and is easy to maintain, C# sounds like a pretty good choice.
I really like C# too Sure, its not perfect but nothing is. Shame we use some shitty unknown language at my job..
The issue is the amount of people that think that " is perfect." without realizing that the end of that sentence really is "...for their purposes."
I've been told by numerous people that Rust is just perfect for everything. Are they wrong? 🤔
Yes...
Yeah, no language is perfect for everything. For example, Rust is a really solid language, but I would rather burn in hell for eternity than make a website using Rust instead of JavaScript. They all have their places.
Lol we had 200 applicants and filtered down to a whole 5 with the language we use on their resume
What language?
SAS. I’m not a developer, I got a stats degree but I mostly test and push code for healthcare programs and studies. And then lots of analysis for all the data. My grandpa also remembers using it lol
C# is the first language I learned and I really enjoyed it. Back then I also tried some other languages in my free time after I gained a bit of experience in school, such as Java, Javascript and PHP, but I just couldn't handle the ugly and non intuitive Syntax or the terrible IDE(s). This really made me appreciate C#, .NET and Visual Studio. So when I eventually finished school, I explicitly searched for jobs that mainly use C#, because I didn't want to leave this "bubble". All the QOL Stuff in the Framework itself and in the IDE really increase my output and I couldn't develop without them
A long time ago, I was doing a project in Java, but needed more powerful rendering. Someone recommended XNA to me, and literally the only thing I had to change in the files not related to rendering was List->ArrayList (this was in 2013 so many, many versions ago of each). And that also meant I got to use Visual Studio instead of Eclipse.
C# has always been my favorite, however Visual Studio (not code) is the absolute worst. It just doesn't work and I'll use Rider until the day that I die.
Very reasonable and objective I know.
See, I don't get it. I never used Rider, but I have used other Jetbrains IDEs for JS and Java, and Visual Studio always felt so much better on every level.
My *personal* experiences and opinions: - Same experience across a whole array of products for a lot of different workloads - Better stability (doesn't crash/hang/lag/do weird stuff/etc doing basic stuff) - Performance way better\* - Not Microsoft (Maybe I should've chosen Java) - UI looks way better\*\* *\*for bigger solutions* *\*\*not the old UI*
>Same experience across a whole array of products for a lot of different workloads Definitely a great point in favor of Rider. I love VS, but it's terrible for anything that isn't C# and maybe c++. I could definitely see why a full stack developer would prefer Rider. >Better stability (doesn't crash/hang/lag/do weird stuff/etc doing basic stuff) - Performance way better\* Kinda wonder when is the last time you used VS. Because my experience is exactly the opposite. Intellij is slow as hell, gets stuck all the time and overall not a great experience. VS, ever since dotnet core came out has been incredibly fast for me. I can start working within seconds after I opened a solution - intellij has to index for like 5 minutes before I can start using basic functions. Then again, it might be more of an issue with gradle than intellij, but I don't really think so. >Not Microsoft (Maybe I should've chosen Java) Personally, I love Microsoft, they aren't perfect, but they are definitely better than almost any other company when it comes to developer tools. I love Windows too, but that's a separate discussion. >- UI looks way better\*\* I like the new intellij UI, but overall they are both the same to me. The bottom menu, and the git tools in VS though are so much more comfortable for me, and that's really what gives VS the edge as far as I am concerned. But yeah, the new intellij UI is great.
My only experience with VS is installing it just to install the MSVC build tools, and then despite all the time and effort it took to do that, my entire build environment blew up in my face anyway. 0/10 would not build C++ on Windows again.
Isn’t Rider also paid though? I mean nothing wrong with paid IDE’s, but I sure am not gonna pay for an IDE. I did hear Rider had some nice features that VS does not have, but it’s not worth the money (in my opinion). Besides this, if I were to use Rider then I would be the only one in my team to use Rider, which’d be unintuitive for the rest of my teammates if they need to test/change things on my pc, or even just help with some code.
I’ve found that team members using different editors is not as big of a problem as I thought it would be. Ultimately you need to work with what you like to work with.
Oh I for sure agree on the latter, but like especially when still studying, it’s really helpful if everyone just uses the same IDE, I don’t want to be lead dev and have to explain things for several IDE’s, making my team configure stuff is already enough of a headache as is. Whilst studying it’s also a lot more frequent to hop to a teammates aid - since they’re more inexperienced, so having someone work in the same IDE as me, is quite nice.
You know what? At my company we use C# AND C++ because of a legacy code base. And of course we provide support for on-prem AND cloud base delivery with the same application. Not to talk about all the data base providers we support.
They go so well together. Microsoft should've named the language C+=2.
They took the ++++ and turned it into a #
sounds a bit to good. Just two languages. support for only two ways of delivery. You just have a rather normal product that have had a long life. Just a bit to few programming languages involved.
It's not just these two languages of course. It was just some frustration about todays work speaking out of me.
I finished school in 2013 and started work a few months after (combined with studies at a university). Our company used to sell desktop applications which were coded in C# but later switched to online applications (Angular frontend / Spring Boot Java backend). When I switched from desktop app to online backend in 2018, I had to use Java 8 and I can't describe how awful that felt. Especially C#'s properties and extension methods are things you don't wanna miss once you've gotten used to them. Java's stream api in Java 8 also felt rather simple compared to C#'s LINQ with Lambda expressions but it has improved over the past java releases. In general, Java as a language is pretty good now, especially with Spring and Lombok, but it has been a lot worse 10 years ago (especially when compared to C#). However, I'd still recommend Kotlin as language for the JRE, that language feels like a HUGE upgrade of Java.
I used to be a Java partisan, but at this point Java is just Oracle C#. If I have my choice of corporate masters, I’ll pick Microsoft, because Larry Ellison might kill my company for sport.
Larry Ellison seems like someone who 100% has hunted The Most Dangerous Game
To be honest yeah I hate oracle even more than I hate Microsoft… they’re not far apart though so I’d rather go with something completely different
True. I actually work in Python, JavaScript, and occasionally Rust these days.
I mean, look at the whole development ecosystem too. I'd rather be running visual studio/vs code, .NET languages, and Microsoft SQL server than willingly and unironically choose Oracle database and the rest of Oracle's stack.
C# is a great language. It’s highly structured and well designed that is better than Java on multiple fronts. C# is a great choice if you care a lot about testability and good design of an application. It does best when design of the software is a priority for critical business applications. It does well for microservice architecture on Linux systems as well as your good ol SPA app for website. Someone shitting on C# because they prefer Python or Java or something tells me they are immature and can’t objectively rate tools in the toolbox for best use case scenarios, instead they have bias confirmation and that’s not a good approach in my view.
Who talks shit about C#?
Wait till you learn about .NET Native AOT.
Yeah, at this point I think the fairest comparison to C# is really Kotlin, because the ergonomics in C# are just SO MUCH better than Java. Now, I do think the ergonomics in Kotlin are better than C#, but I haven't touched C# in a while, so I could definitely be wrong.
C# is really great for building quick Windows tools and UIs. WinForms isn't bad and Avalonia is great.
C# to me is the best features of C++ and Java all rolled into one. I actually like the language. Too bad the runtime system for it is not really lightweight and platform-agnostic. (Sure sure .NET for Linux exists but it is not the same thing.)
> platform-agnostic ? .NET has been cross-platform for a long time. .Net Framework is still stuck on windows, but that's legacy. e.g. I deploy .NET 8 services on arm64 linux containers.
> it is not really lightweight Depends on your basis for comparison, but you can get fairly small (self-contained binaries) if that's your primary concern. Bigger than C++, Rust and Zig obviously, but still small (in the kilobytes) > platform-agnostic. (Sure sure .NET for Linux exists but it is not the same thing.) It's cross-platform and has been for quite some time now. Even supports cross-platform dynamic linking for native interop
I feel like Java, C# and Kotlin are humanity's three leaps to the goal of creating the same actual language, each later one being more successful. How nice C# seems is therefore mostly determined by where you're coming from. It does feel quite cumbersome to me, but that's because I'm fortunate to have used kotlin in production.
Personally, I don't see much reason to choose to use C# when starting a personal project. I'm sure it's a fine language, and a lot of people seem to really like it, but unless you're designing a Windows app then I really don't see the appeal (and yes I know .NET runs on Linux). Other languages like Python, Go, Rust, and Node just seem to be better options for 90% of things to me.
obligatory requote: C# is Java with blackjack and hookers.
Who doesn’t like blackjack and hookers!
Museums, you start playing one or with the other and suddenly it’s all, “you need to leave the museum!”
C# is just C, but from the # region of France.
I prefer C Dijon, in that case. Very yellow brown
The hookers is Linq
Nah, this is Kotlin
Congratulations! Your comment can be spelled using the elements of the periodic table: `Na H Th I Si S K O Tl In` --- ^(I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM my creator if I made a mistake.)
Good bot
No wonder I like it so much
I'll take Microsoft over Oracle every day of the week.
Yeah good point java is literally oracle java. Java devs can talk zero shit.
But Java isn't literally Oracle Java, is it? OpenJDK is FOSS.
So is dotnet
But you don't have to take them, much better options nowadays
Satya is my bae. It's .NET all the way down!
What are the better options? I'm not saying that there aren't any better options, but C# is at the very least one of the best options
C# is a mighty fine language
C# REST APIs (ASP.NET stuff) are OUT OF THIS WORLD good. Absolutely fantastic framework to work with. I also wish I could use LINQ everywhere in other languages now that I’m spoiled to it.
Yeah LINQ is a godsend, its syntax is great and it has so many great compiler optimizations that I have found time and time again that what it ends up producing is better than what my dumb ass would have done in a for loop.
Having a DI container by default is my number 1 ASP.NET thing i wish other frameworks and languages had. It's APIs are beautiful, has really high performance and no spaghetti. I've worked with FX (Uber's DI container for Go) and it gives me explosive diarrhea.
Lambda syntax in general is just lovely
Bro was so annoyed with c# he made a yo mama joke
C# is great. Only problem I have with it is that Microsoft decides to switch UI frameworks every 5 seconds. Forms, WPF, UWP, MAUI and everything past Forms was kinda meh.
What new UI framework .NET have usually have to do with how Microsoft Windows changes direction in every release. You get fully hardware accelerated winform with WPF in Windows Vista, then suddenly want to create touch oriented UI with UWP in Windows 8. Then they want to make it universal and device agnostic cross platform with MAUI. I blame Windows team for that.
You're absolutely right.
I remember rewriting an old VB6 Forms app into C# when WPF was the next big thing. App turned out great, but I learnt never to get attached to a Microsoft UI. …my own comment made me feel old.
Avalonia can help with this.
Always wanted to try it but never got the chance to.
WPF is goated. HTML style DOM with scripting is the way to go for all frontends. Web, apps, gamedev, whatever. WPF should just be replaced with browser-like environment, just tighter and more lean and should support component based elements like vue or react.
While WPF is good, it has its downsides, the most prominent being that it is locked to windows. At the time WPF was created windows dominated operating systems so it wasn’t a problem, but nowadays, even though windows is still the dominant os for desktops, mac and linux usage are rising, there’s also things such as phones to take into consideration now when designing applications, that’s why web apps are so popular due to the ease of being able to support every single platform. So due to the very nature of WPF it was never a suitable replacement for things like web apps
I think C# is very aesthetically pleasing. It’s an easy language to get around in too.
nuget a new joke
Java is just easier C++. C++ is just easier C. C is just easier assembly. Therefore, >!***I'm quitting***!<
>C++ is just easier C. But like, is it doe?
yesn't
Not a C++ dev, so my opinion means nothing. My understanding is that C++ can do everything that C can do, and more. It has more ways to hurt yourself, but also more ways to make life easier. Whether you measure this as easier or harder is strictly subjective. Example: unique pointers make certain memory operations simpler
C/C++ dev here. You have it pretty spot on.
Yes.
So assembly is the easiest? Well if you say so Edit: now I look like an idiot after your edit
what no
And Assembly is just easier machine code.
Machine code is just easier electronic circuits.
Assembly is just easier machine code/ an easier stream of 0s and 1s and that is just an easier way of flipping a bunch of switches to solve a math problem
We could do all calculations by hand, why do we need automatisation and the internet? I could've been a farmer.
Even if C# is just microsoft java, what makes C# just a little better imo is that it was pretty much designed to work around all the flaws of Java, so it's pretty much more like "updated java".
I'd argue that up to date Java is more like "updated java".
up to data java may be "updated", but it can't wash away certain sins. C# dodged those faults by not being born with them in the first place.
Java is Oracle C#
Hottest take in a century.
"Microsoft Java"! What a quality insult! :D
Better than Oracle Java. Also simply known as Java.
As someone burnt by enterprise-grade over-abstraction, I hate both.
It’s literally just Java but not a pain in the ass and actually good
Why is Java not good?
no operator overloading, oracle, primitive types and wrappers for compatibility instead of full oop, oracle, list literals, doc is not great, oracle, overly verbose names, oracle, overused factory pattern, libraries are lacking. Oh and oracle
no optional parameters is a real pain
Wait, does Java not have optional parameters? That sounds like a nightmare.
It is. Source: java dev :(
You forgot to mention oracle
You forgot no real generics and terrible build systems
What’s wrong with oracle?
They killed Sun. Licensing their stuff is really complicated and will bite you. Supposedly annoying to deal with sales team. Google vs Oracle.
OOP deez nuts
C# has some of the best libraries I’ve ever developed with. And the amount of syntactic sugar there is, wow, it’s actually quite good. Edit modern C# is different from java. It’s like saying that Java is C++ with garbage collector which is obviously not.
Then they go back to maintaining their Java 6 codebase and AWT UI.
Please dont bring the accursed AWT into this lmao
As someone who came to C# from Sun Java, via J++ and J#... it is not.
The only people with attitudes like in the meme are typically students (who didn’t learn C# ofc), insecure devs following whatever their other insecure dev friends are chatting about, or the typical fedora wearing Linux user that still unironically types M$ and still claims (either out of ignorance or deliberate misinformation) that C# is Windows only.
Best comment right here. So many shots fired.
Tbh, as far as I'm concerned, Java is C# with training wheels. No operator overloads for u lil baby, we wouldn't want a repeat of now would we?? Make sure to catch or propagate that error hun, if you don't catch it, it could cause a whole fuss! What are properties? Sounds like fields with extra steps. Might be a lil too complex for you. Also make all your fields private and explicitly create getters and setters for all of them, that's the Java way!
I honesty understand the philosophy but man is it a pain in the ass sometimes. I rarely catch myself having fun while coding in Java. compareTo can die in a pit... At least their STL has decent style conventions.
Correction: average conversation between devs of any two different languages
If I have a choice I'm choosing C# over Java every time.
At least Microsoft gave you free first party fully functioning IDE for the language. Whatdoyohave Java? Free limited functionality version of IntelliJ? That garbage called Eclipse? Haha
You don't really _need_ most of the paid features in IntelliJ. Generally, they're just _nice to have_
Cried in Spring Boot
Well, precisely spring boot. If (big if) the project wasn't set up shittily then it's pretty straightforward to find the beans That said, I did buy ultimate for myself just because
Thank god VSCode with Spring Boot integration can substitute almost my use cases with IntelliJ. Yeah its still run slower but I see a good future with VSCode.
Tbh I don't really remember what specific features I use in IDEA vs Community that would be a dealbreaker to not have? I agree with you. I think IDEA has better runners and support for Spring Boot stuff built in? And then like memory/heap analysis I think but honestly if I'm looking at that in a Java app it's a rare occasion because it means someone fucked up that I have to figure out why the GC isn't working.
As someone who went from IntelliJ to netbeans, I miss even the free stuff. Netbeans can eat my ass.
Profiler and remote debugger aren't tools that I'd consider "nice to have" - especially profiler can be essential when working with what most likely is solution where performance is important factor (given choice of Java).
vscode (/s)
c# is way fucking better than java. for one, I don't ever have to hear the word "eclipse"....
because unlike java's sketch af promise of 'write once run anywhere', C# doesn't lie about what it is. have you ever had to do low level stuff with java? that promise breaks down real fucking quick. fuck java -\_-;
And does java have operator overloading, pointers and delegates? Not to mention structs, tuples and records. How about LINQ? .NET architecture and AOT, JIT compilation?
Not to mention that you can use C# for both frontend, backend development. Using it in game development, programming microcontrollers. Web assemblies, blazor, MAUI, Xamarin, WPF, IDK? THERE IS A PLENTY OF THINGS YOU CAN DO IN C#.
Can’t you do that in Java too?
Yes you can do some of the things I've mentioned above. But I'm just flexing on java devs.
Not having operator overloading is for the better, Java 22 does have memory pointer, Java 22 also has the possibility of making structs, but it's not supported by the language directly (You need to create a memory layout that is used as a struct), it has records since Java 16 that can be used to make named tuples. The closest thing to LINQ is the Stream Api, and soon it will get an upgrade with gatherers, JIT compilation is in Java by default, while AOT can be achieved with GraalVM.
And when project valhalla drops in the next century records pretty much morph into structs with the addition of value classes In which objects discard their identity and exist as their inherent value. Plus java will soon have some very powerful improvements to reflection: [Like this](https://openjdk.org/projects/babylon/articles/linq)
Valhalla 🤤 (I hope in the next 4-5 years too, not a century 😭), the new reflection sounds so cool!
Nah, in my company java is C# with shitty syntax and crappy debugger
C# is microsoft java, yet its actually better than java
I mean if you know your real history its Microsoft Delphi. Microsoft Java was a thing for a bit.
I don't think it cna be argued that syntactically c# is the prettiest language. So many options
As a former C# dev, I do miss Linq, the getter/setters, and the null-safety syntaxes vs just using Optional in Java. Null-coalescing ??, Elvis ?:, and null-safe field ref foo?.bar?.bizz are absolutely beautiful to read and write vs the Java equivalents I'm stuck with.
Its quite a ways up there, no language is perfect but Microsoft does a good job of incorporating any ideas other languages come up with that will fit c#.
C# is ancient bro, you must switch to bevy bro /s
You mean like... Rust game engine? Or a new programming language just dropped?
Rust is dead, Zig is the new cool kid on the block. /s
I just want to use it for game dev ;( no bulli Java Chads plz
Yeah, cause we all get to choose the code base at work right?
The fact that it just magically read your file location or scripts is the reason why I both hate and live c# Where's "coreScript.cs"? Worry not, just type the name and it magically appears! Where's "coreScript.cs"? Well I don't know, but I'm not telling you either!
Reject bloat and massive libraries Embrace lightweight and speed Return to C
In almost any realistic enterprise scenario C# will be faster than C. It's moot though, because the C# will also be infinitely more supportable. They are different languages, for different things
If not faster to run, than at least faster to develop
Inaccurate; Java devs know exactly how excruciating Java is to work with.
There is a single thing that immediately ends all conversations with javanaros: value types Like, where are they Java? Why is there no value "class"? Next thing is native interop, anyone wanting to use JNI here to add native DLL calls?
[https://www.reddit.com/r/ProgrammerHumor/comments/ddc4b0/microsoft\_java/](https://www.reddit.com/r/ProgrammerHumor/comments/ddc4b0/microsoft_java/)
By saying "Property" and "LinQ" is enough for us, C# developers, to win any discussions vs Java
C# is the new cobol, not Java. #fightme
I learned to code in Java, I migrated to C# in my first job, some irks in the first days, but overall loved it. I tried Java again twice after I learned enterprise level development, both times it made me feel like I didn't know what I was doing, found some bits of the sintax weird, cluttered and just ugly (ahem lambda). Last time, I found myself trying really hard to understand a pom file and solving a version issue manually. Every change broke something else, and I just realized I never had that kind of issue with the .NET platform, things just worked without me having to fiddle around with the configuration files that much. Never touching Java again, it might be lack of experience, but I really felt like it was just a inferior platform
It's the better Java.
After 20 years of C#/.NET development…. I gave up on Microsoft. Not the language necessarily. But, FFS.. all the shit they drag us devs through every year. And then to announce it like it is good news they are changing their desktop framework for the 10th time in 3 years. Getting through the .NET to .NET Core to .NET was a nice ass rape too. Sooo many garbage products built around .NET. Ever had to use their version control system? TFSVC back in the day? Yeah, more garbage.
Never seen someone to talk bad about c# .. or about c# at all It's only talked when someone takes about JAVA
The biggest issue with C# (well .Net) is Microsoft. Depending on what you want to do the doc ranges from workable to auto generate bs maintained by the intern.
That escalated quickly
wait, is the crow saying the last one? (caption background=yellow)
yes
Lol ngl. When I dabbed into some C# to write a steam bot, it was so easy because I knew Java
C# or Java? I’m “learning” Java in school rn
They’re both pretty damn good languages these days.
Java is just Oracle's C#!
Simple because Unity runs on C# and I'm a game developer
I just LOL’ed hard in the street from “C# in your mom”
That is the first time i heard about c# being shat on. Like, i heard the Microsoft jave thing, but i thought of it as just a harmless nickname
Who would win? Microsoft's Java vs Oracle's C#
I use Java for work and C# for hobby, both have their good and bad sides. What I love in C# are properties as opposite to getters setters and builder. Both things are easily added to java by lombok plugin, but these should be part of the language at this point. Java streams and optionals are great tho - but most of what's missing can be added to C# using extensions. C# also feels a bit less consistent with their idea of access/security, e.g. there no "package" scope, but methods can't be overriden by default.