>.NET is a serious contender though.
It the other way around. Java has barely caught up with C#. C# team is typically introducing more features, faster.
It the other way around. Java has barely caught up with C#. C# team is typically introducing more features, faster.
I prefer Java's more thoughtful approach to introducing new features.
In addition, green threads approach is a strictly worse and a more limited solution that only solves thread blocking without unlocking the variety of terse concurrency patterns enabled by the way the tasks are handled in .NET. They also add significant overhead to interop with native code due to thread pinning/stack switching (also applies to Go).