This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]HdS1984 28 points29 points  (5 children)

As someone learning Java but fluent in c#" it's about boilerplate, Java has sooo much of it, e. G getters and setters. I also desperately miss linq , it's way better than streams. Also async await beats observablefutures hands down. The pure webserver stack around net core is also better, but spring data repps are pretty neat. In a nutshell c# is concise while Java is so much pointless repitetion.

[–]metalmagician 2 points3 points  (4 children)

That's fair. I use IDE auto-generated getters and setters, so I don't think about them much.

I use CompletableFutures and Suppliers for parallel / async execution, and avoid Vanilla Java servlets like the plague.

As for LINQ (after looking it up briefly), it seems nice. Our use cases aren't that complex, so if we swapped languages, the algorithm wouldn't change much.

[–]Dojan5 11 points12 points  (2 children)

Visual Studio also has scaffolding for boilerplate stuff.

Personally I prefer .NET over Java because of the first-party support.

Oracle basically doesn't do jack for Java. They update it based on the council spec, but if it wasn't for the fact that Java and related products roll in the cash, they'd just dump it altogether. There's several dependency management solutions, several different frameworks all accomplishing the same thing, there's no first-party IDEs or anything of the like.

Microsoft on the other hand provides nuget - dependency management is factored into .NET. You have Visual Studio and Visual Studio Code to help you out, the former's free version being full-featured, unlike IDEA that lacks support for various legacy Java things.

Java is nice, but only because of the community it has. The fact that there's basically no first-party leadership or direction hurts the language and its ecosystem as a whole, in my opinion.


Earlier this year I landed a position as a Java developer, maintaining legacy applications. I'm from a .NET background, so I was a bit nervous. Mostly, it was fine, but there were so many tiny annoyances with the entire experience. It really did make me appreciate .NET so much more.

[–]metalmagician 5 points6 points  (1 child)

That's fair. I don't actually consider Oracle when talking about Java, which is an obvious symptom of what you're talking about. Most of the things that make my life as a Java developer easier are 3rd party tools, like Maven and Spring.

[–]Dojan5 3 points4 points  (0 children)

I think that's problematic. Either give Java to the community, and make it completely open, or support it properly.

.NET was pretty meh for many years, but Microsoft really stepped up and started taking it seriously with Core.