Comment by Xelbair

3 months ago

Vault, Keycloak, Flink are language agnostic or there exist bindings for most popular languages.

Documentation is vastly better compared to Java ones, it's like day and night, LINQ is vastly superior to anything that Java offered - but i haven't used java in a very long time. And every time i had to write java it felt like i went backwards in time by 5-10 years.

If i remember right Java's webserver beats ASP.NET in performance benchmarks but .net's one performance is good enough that it does not matter until you hit really big usercount - and at that point you usually have to rethink your architecture anyways.

But frankly .net is still mostly Microsoft Java but with better developer ergonomics in my opinion. It did shed a lot of overengineered OOP legacy from .net framework days though and we're seeing major performance improvements with every version.

> but i haven't used java in a very long time

What was the last Java version you used? There has been a huge momentum in adding new features lately, granted, it is slower than in C# (Java's top priority is backwards compatibility, so it does not have the luxury of shedding old stuff or changing them once they are in), but in the last couple of years it has improved tremendously. The JVM (especially in the garbage collection front) but also the language - half of an ML-style language is there (for example, ADTs and pattern matching), the other half is coming soon!

>If i remember right Java's webserver beats ASP.NET in performance benchmarks

That's not the case anymore. Kestrel is one of the fastest servers there is, and it beats every Java server out there.

  • the famous benchmark that put ASP.NET in #1 spot was hyperoptimzied to hell while competing with normal implementations of other systems. https://web.archive.org/web/20250330225652/https://dusted.co...

    archived version becasue original one gives 404

    currently according to techempower benchmarks ASP.net is 55th overall in minimal variant, while being 83 in normal one in Fortunes benchmark which is basically a normal usecase.

    While most java framworks oscillate between 10-30

    https://www.techempower.com/benchmarks/#section=data-r23

    EDIT: there's also an entry for aspnetcore at 35th

    • > archived version becasue original one gives 404

      Thanks, fixed now. I literally just migrated from GCP to Hetzner over the weekend and was about to finish the migration today :)

    • Look at plaintext results if you want to compare just servers. Fortunes benchmark has too many variables (including db queries etc) to say anything about server performance. As for fortunes benchmark, for more realistick Java performance numbers I would look at Spring. Also there are many shady things on those Java bencmarks.

      1 reply →

    • It's no longer so hyper optimized and performs very well today in the metric compared to any other comparable framework.

  • I do not have any benchmarks other than this[1] to refer to, but I work with Quarkus[2] and Java 25 LTS (just recently released) services deployed on AWS EKS and we are very happy with the performance (for mobile game backends)

    [1]: https://sharkbench.dev/web [2]: https://quarkus.io/

    • Quarkus does a lot of bytecode generation magic at build time, which will give it an "unfair" edge in some scenarious, like this simple serialization/deserialization case in this particular benchmark.

> Documentation is vastly better compared to Java ones, it's like day and night

This is absolutely not my experience, especially when it comes to the ecosystem and third-party libraries. Like Java is pretty much the best in this category.

  • well you can't judge 3rd party libraries, can you? by that metric js/ts would be the worst thing in existence.

    I've seen some great, some horrible 3rd party docs on .net side - same with java.