C# often feels like Java with hindsight; Java feels like Java with 30 years of backward compatibility debt.

Hence why so many .NET projects keep being .NET Framework instead having migrated to modern .NET.