Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The payment processing case is nostalgic if a bit ironic, the team I worked at used this exact pattern 6 years ago or so in C#, and the expressiveness has only improved since then.


Yes, C# is better by every measure and has had everything we can only dream of for decades. You can stop coming to every discussion of Java with the same old story.


The problems with C# are many.

It's tied to .NET at the hip - there are no 3rd party implementations (Mono is effectively dead, correct me if I'm wrong), it's development is effectively solely driven by Microsoft, and every few years you have to rewrite all your things or get stuck on EOL versions of frameworks or abandoned tooling. The community is also vastly different in that it does not (yet) value open source and many different implementations of ideas (ie. there's an official Microsoft way to do X and that's what everyone does).

C# might be a fine language, but it's coupling to .NET and Microsoft are kind of a liability.

Java has a ton of warts, and it's not the language I'd choose today. However, it's ecosystem is FOSS-first and is immense in size and scope, has numerous options for any type of library/framework (take a loot at HTTP clients, or logging frameworks, or web frameworks, etc), and while Oracle primarily drives development they don't get the de facto final say anymore. There's also many JVM implementations and many class library implementations - all with different pro's and cons.

Perhaps .NET will get there one day. It is, after all, relatively new at FOSS/XPlat.


At least the company driving .NET releases it under MIT and does not have a trap SDK that should you make a mistake of using makes your company liable to legal action by Oracle.

Surely you're not gonna say that OpenJDK and GraalVM (both owned by Oracle) is somehow an issue, would you? And Mono lives well in dotnet/runtime, serving targets like Browser WASM and iOS (until NativeAOT replaces it in full at that target, at some point).

But you're not using .NET, so no need to worry. No one is gonna pry Java from your hands, but we'll get to laugh at the choice - it is both slower in performance-oriented code and more verbose in LOB one. Pretty much the only driving reason behind choosing it is if the company is an Apache/Java shop or when a vendor offers an SDK in Java/Python/JS only due to their popularity which is a common issue in the industry.


There's dozens of JDK & Class Library implementations. If you use the Oracle one - well, that's on you.

Most people don't use the Oracle JDK anymore.

And OpenJDK is GPL licensed - and has no strings attached. What you are referencing are people using Oracle's First Party JDK (which has a base of OpenJDK + Secret Sauce). Oracle wants money for that.

> No one is gonna pry Java from your hands, but we'll get to laugh at the choice

I don't think anyone in Javaland are concerned. .NET usage is a tiny blip on the radar compared to Java/JVM ecosystem.


So you have to pay for performance features too rather than getting to contribute to them and using them in the open? Unfortunate.


You are exposing your JVM ignorance I'm afraid.

No, you don't need to pay for performance. The only people paying Oracle are those who choose to.

There are many JVM vendors - each with their own secret sauce, pros/cons and add-ons. Some charge to use, some charge for support, some just give it away. Almost all offer a for-free OpenJDK version as well.

Vendors include some of the biggest names in tech, such as Amazon and IBM, and many others you might only be aware of if you're in the ecosystem such as Eclipse Foundation, Azul Systems, Bellsoft, and more.

I would say the Oracle JDK/JVM is likely in the minority of JDK/JVM deployments today.

Oracle deliberately positioned themselves to be just another JDK/JVM vendor a few years back. All of the vendors can offer support etc. Oracle has no special control over OpenJDK these days, even if they pay the most full-time staffers to work directly on it.


> Oracle has no special control over OpenJDK these days, even if they pay the most full-time staffers to work directly on it.

The contribution graph would suggest otherwise: https://image.slidesharecdn.com/jcconf2021openjdkcontributio...

> No, you don't need to pay for performance.

Then what is the selling point of that, if you say crucial features are not closed-sourced and gated behind costly licensing?

I feel like this is among many other reasons that people get PTSD which causes them to throw the baby (C# of du jour bundled in public perception with Java) out with the bathwater (Java ecosystem) and move to, inferior in many ways, Golang.


> The contribution graph would suggest otherwise

The contribution graph says precisely what I claimed.

> Then what is the selling point of that, if you say crucial features are not closed-sourced and gated behind costly licensing

Each vendor can do what they want. As I have already said twice, some vendors give away their inhouse-built JVM/JDK and only charge for support, some charge to use it at all, and some just give it away entirely for free. Motivations for each vary by company.

The point is, you have a ton of choice within the JVM ecosystem. You have 1 choice for .NET... the ecosystem and community are not the same. The JVM ecosystem and community are vastly better by any measurement.

C# developer's only valid criticisms are levied at the Java language - failing to realize the slow development pace is deliberate and prevents people from having to rewrite everything every couple years...

Despite that, there are many languages that run on the JVM - so you don't even need to use Java to experience the greatness of the JVM ecosystem and community.


I'd rather not experience "the greatness of the JVM ecosystem and community" nor I have to rewrite code every two years, the only big break was ~8 years ago with .NET Framework -> FOSS .NET ordeal, all subsequent changes are minor and incremental and pretty much in the libraries only. In general, this view is unfortunate but not unexpected, and is common with Java or, for some reason, Go.

There's a world of different projects, beyond back-end applications, written in C# or even F# like games, scientific instrumentation and analysis, desktop and mobile applications (multi-platform or otherwise), trading systems, malware and anti-malware, and more. It's a really versatile and powerful tool.

Let's talk again when the project Valhalla is done and Panama vectors are actually usable for writing implementations that can compete with C++.


GraalVM is released under a free license. GraalVM CE is open source.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: