HACKER Q&A
📣 sp33der89

JDK 17 or .NET 6 for a greenfield project?


Both seem in a really nice place lately, but which one would you chose today if you had to chose? I feel like JDK has a lot more libraries and a bigger ecosystem, but .NET 6 has a lot of "just-works" libraries...except for UI stuff.


  👤 w10-1 Accepted Answer ✓
JDK/Java is orders of magnitude easier to learn and work.

e.g., JDK debugging with hot-replace means you just fix errors, recompile, and continue the same debugging session. Run-everywhere means you share knowledge and libraries with 10-100X more people. Multi-language support and rapid iterations mean you get all the latest features.

Don't be confused by demo-ware that "just works". Most any domain is hard, and making initial steps easy usually means later you have to learn the real programming model underlying the simplicity-adapter layers, and work with multiple mental models.

That said, pick a domain and a community, and follow them, because they're unlikely to collectively pick the wrong platform.


👤 capableweb
Well, the JVM has Clojure and C# has Clojure CLR, but JVM Clojure is much more mature, stable and battle-tested, so I think the obvious answer is the JVM.

Of course, I'm writing this from the perspective that I'm gonna be using Clojure, which is probably different than your situation. And without knowing more about your situation, it is short of impossible to know which one is the "right" choice.

So without knowing more, I'd say go with the ecosystem and language you're the most familiar with.

Unless your goal is to learn something new, then go with the ecosystem and language you know the least about already.


👤 simonblack
Java.

.NET is Microsoft environment only (no matter what Miguel may say).

Java is cross-platform.

As the old saying went: 'Why halve your chances at the cocktail party?'