enterprises
At least for the time being, Java has exhaustive pattern matching and proper enums, whereas C# doesn't.
Also, many younger developers I chatted with don't understand long living applications and what "use boring tech" means.
Of course we do. It means you use Node 16 instead of 18 because it’s LTS. 2 whole years of support!
If your software will be used, you are "building the legacy systems of tomorrow".
At least Java is open, alternative implementations are present, and can be run on anywhere and everywhere.
Miguel was conned into believing that it'll be completely independent like OpenJDK, but it didn't turn out like that.
IOW, C# is as open as VSCode.
The Microsoft ecosystem can become more confining if you continue to operate as if its 2008 and follow all their old patterns (e.g. IIS, Azure, et. al.)
For the more clever developer in 2023, you take .NET 7 and skip over all of the Azure-integrated bullshit. You can throw away 100% of their complex AspNetCore libraries in favor of minimal API integrations. You can do everything your way and run it wherever you want.
The entrapment in the Microsoft ecosystem is of a substantially different nature than entrapment in the Java ecosystem. Becoming mired in Microsoft licensing concerns is a matter of technical competence. Becoming mired in Oracle licensing concerns is a matter of business competence.
The other thing I do is being able to use multiple languages and using the right one for the job, and ensure that all are supported by GCC suite.
Well, I'm on a very different niche than many software developers here, but at least it gives me more freedom to do what I want to do, and how I accomplish these.
I really wouldn't say so. All the new features are convenient and easy to understand, especially if you have Visual Studio to teach them to you (type if (x == null) x = new .. and you get a popup to transform it into the new operator). It's not a zoo like C++.
Whether you like Java (the language) or not, Java (the ecosystem) will not go away. In fact, it is alive and well, and I would guess it is at least an order of magnitude bigger and more mature than the .net ecosystem.
If you don't like Java (the language), you can choose Kotlin (Java++), Scala (Haskell--), or other languages (eg. Groovy?)...
A lot of this is the inertia I alluded to. There's no reason this couldn't all be written in C#. Kind of like the C++/Rust debate.
There's no reason it couldn't be written Brainfuck.
doesn't mean it's a good idea
the worlds largest mobile phone platform is java. this is all the billions of people who live in Asia.
its not gonna go away in our lifetimes.