4 ms·
Virtual threads, generational GC, manual memory management, all things .NET has had for ages. Too bad it can’t shake the “MS tech is boring” reputation
by aoetalks 3y ago
Virtual threads, generational GC, manual memory management, all things .NET has had for ages. Too bad it can’t shake the “MS tech is boring” reputation
- _old_dude_ 3y agoIt's not generational GC, it's generational ZGC. ZGC is a concurrent GC, both the marking phase and the evacuation phase are done concurrently with the program running. A generational ZGC is a generational concurrent GC. MS does not have such kind of tech.
- dividedbyzero 3y agoAren't you quite limited when targeting or developing on non-Windows platforms with .NET?
- marginalia_nu 3y agoWell, yeah, that's been Java's explicit philosophy for decades. Let other languages evaluate cool new features first, then learn from their mistakes and promise backward compatibility "forever".
- kaba0 3y agoAlso, keeping the language conservative, but being state of the art on the runtime level — there is absolutely nothing even close to Java’s GCs.
- 5e92cb50239222b 3y agoI don't think .NET has virtual threads (async/await doesn't count), and it definitely doesn't have anything similar to ZGC/Shenandoah — two garbage collectors that provide sub-millisecond pauses with heaps up to the multiple terabyte range. You can also go completely pause-less on commercial JVMs from Azul.
- yyyk 3y agoThe .NET GC philosophy, so to speak, is to provide such guarantees by allowing programs to avoid GC entirely with value types. Eventually, Project Valhalla will provide this on JVM-land, but it doesn't seem like the day will soon come.
- renewiltord 3y agoLinux support is bad on MS tech. Poor ecosystem and VM isn’t that great. JVM with ZGC is fast on Linux. Biggest lack is Value Types. And I’m not deploying to Windows. That’s right out. But lots of people find it useful, so more power to them. For me, it must deploy on Linux. That’s a dealbreaker. It’s not enough if some bare functionality is on Linux. I don’t want to be experiencing the equivalent trouble of trying to have a musl-only build. JNI story is great. Can bind easily with rust-jni on Linux. But need value types and some longer primitives (i128 and u128 would be nice).
- paulddraper 3y agoOkay sure let's just ignore Linux, Apple Silicon, BSD support by .NET and Visual Studio. It's obviously "MS tech is boring", e.g. TypeScript and VSCode.