Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

From what I gather, the only time this occurred was very early in the C#/.NET ecosystem (.NET2) when generics were added in November 2005. So it should be at 20 years this year.

Both languages are very impressive and benefit from the competition.



There were more breaking milestones, .NET to WinRT 8, WinRT 8 to UAP 8.1, UAP to UWP, UWP to WinUI 3/WinAppSDK,.NET Framework to .NET Core, Silverlight, XNA, Managed DirectX.

All of those are also part of .NET ecosystem.

Agree with the competition remark, hence why my toolbox has been .NET, Java, JavaScript ecosystems on the first drawer for decades now.


Possible. I know little more than what I can google about .NETs history; I wasn't around for it.

What I can say (MS hesitance aside) is that it is excellent for web applications where the ability to sustainably bear complexity of business logic is critical to business success.

I only really saw that concern in the java ecosystem, and I am very happy .NET exists, if for no other reason than to force java to get better. Many ancillary tools (source generators, xml code generation, integration of compliance metrics) that are only ever found in java are already present and even better in the .NET world.


Early C# often depended on libraries that were MS-specific, partially native code, and are often no longer even available.

This changed around 2014-ish, as a result C# has been really stable for a decade.


Possibly. I'm a relatively recent comer to the c# ecosystem (2021ish). It's been good and avoids some of the warts of java.

Really, though, I'm very happy there is competition in the GC enterprise languages for linux. Regardless of who is "better", the competition will continue to drive progress in this area.


.NET framework is still supported, you can target "net48" instead of net8.0 in your project build targets.


Some C# features don't work in that mode though.


You can opt into most of them by setting LangVersion manually to your preferred C# version.

It works since most new C# features are just syntactic sugar which is lowered by the compiler.

Some of them require new types in the BCL (e.g. Range/Index, marker types for required/init/records), but for that you can just reference PolySharp which will generate the missing types on the fly.

Features that will not work typically also need runtime support, so default interface methods, static interfaces and the like will not work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: