4 ms·
At this point I feel like C# exists in pretty much the same space but solves the same problems better. Java doesn’t seem to solve a unique problem any more or s
by tyleo 4y ago
At this point I feel like C# exists in pretty much the same space but solves the same problems better. Java doesn’t seem to solve a unique problem any more or solve common problems better than other languages.
- bob1029 4y agoThe only thing I am missing in C#/.NET is more GC options. Java lets you DIY, or completely turn it off. For everything else, I would have a hard time making an argument against C#.
- rolenthedeep 4y agoYou can do some weird stuff to GC in C#. I haven't looked at it in several years, but I'm pretty sure there's a way to suspend GC at runtime. There's definitely a mechanism to force immediate GC, and functions to exempt an object from GC. C# is a lot more flexible than people give it credit for, I've seen some absolutely amazing things built this way. Of course, manipulating C# in unexpected ways is an absolute nightmare, but with enough determination you can do about anything
- TideAd 4y agoI believe you can be notified when a collection is imminent. I saw a service use that to remove instances from the load balancer before that happened - super useful for higher-percentile latencies.
- bob1029 4y agoI looked into all of this, and still have a use case where it doesn't quite work out as well as it could with Java. I can almost make it work with some pretty aggressive hackarounds, such as subdividing my service into multiple, smaller processes that each operate w/ workstation GC mode. GC runs pretty fast when object count is reasonable. Something like 1 process per latency-sensitive client is where I am at with .NET right now.
- saiya-jin 4y agoIs there a Unix backend official runtime part certified and enterprise-level supported for it? Most corporation require this and no CTO will risk going for anything less.
- throw1234651234 4y agoKestrel works on UNIX. https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-7.0 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/s... To me, this is an interesting discussion. I can't see a single argument for Java anymore except "devs knows it".
- kaba0 4y agoBetter observability tools, much much bigger ecosystem (this alone probably wins the argument — there is a tendency on .NET’s side to just copy famous java libs, but worse.), better GC (sure, C# has a potentially lower performance floor due to value types/pointers/etc, but when you do have to use GC (which is most server side app), there is no match for Java’s)
- deleted 4y ago[deleted]