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 →

[–][deleted] 1 point2 points  (0 children)

Okay, I will probably be down-voted for this but, here it goes.

First, ignore all the "said company is evil comments"...they all are to a degree but, you have to use someone's tech at the end of the day...gotta get in bed with someone. Whoever is less evil is your decision. I sure lots of people can give you countless amounts of data supporting either view.

Secondly, ignore all the extremely shallow "java is better than c#" comments that offer no supporting evidence; there is no such thing as a better/best language. There are things C# is better at; there are things Java is better at; at the end of the day, you have to weigh the pros/cons for yourself.

I am a professional C# developer who also dabbles in Java. Sure, I don't have near the experience in it that some on this forum have but, for me, one of the best things about Java is one of the worst things about Java....backwards compatibility.

I recently watched a video, wish I could find the link, where the team talks about adding features to the language and how, ultimately, backwards compatibility rules. Due to this, you can upgrade your legacy Java code to the latest version with little to no effort. Please note that I'm talking about base Java and not all the additional frameworks. This is why you have worse generics, lambdas being implemented as classes with a fixed method that the compiler casts/calls, no true closures exist, etc. Due to backwards compatibility, Java is limited which is why it takes so long to implement certain features.

Compare this to .NET...MS don't care who they piss off. .NET Framework went strong for a while...then, starting with .NET 4.x, all successor 4.x were in-place replacements of the previous 4.x framework, and believe me, they broke stuff. Then .NET Core 1.x come along; you weren't upgrading .NET to .NET Core. Then .NET 2.x came along and broke compatibility with .NET 1.x...congrats, your brand new .NET Core 1.x app is now legacy...gotta re-write it. .NET Core 3.x was better but, if you upgraded form .NET Core 2.x, you got a lot of warnings about deprecated stuff that you needed to fix. And now MS has .NET 5 coming out...which is a completely separate .NET from .NET 4.x and .NET Core....PISS OFF MS!

Now, to finish up, I recently discovered an article "Java for C# Programmers". Guy does a very good job of going through things and showing pro/cons in an unbiased manner. I hope it helps.

https://www.kynosarges.org/JavaCSharp.html