I talked about c#&#x27;s lambda syntax, which Java later borrowed, below. For the other points:<p>I have seen a little of the interface vs function conversions in modern Java, and it seems  a decent enough small convenient feature in the context of Java, but it doesn&#x27;t feel like a big win that I would cry out for in C# code.<p>Defaulting to not-null and immutable values is a trend in several recent languages, e.g. from Swift and Rust to F#. This IMHO looks like a good step forward and I welcome it, however it&#x27;s hard to see how this would be comprehensively added into existing languages like Java or C# with an existing legacy of not working that way. Opting into Not-null in c# has been talked about many times (1) in various forms, even implemented using attributes (similar enough to type annotations). (2)<p>1) <a href="http:&#x2F;&#x2F;twistedoakstudios.com&#x2F;blog&#x2F;Post330_non-nullable-types-vs-c-fixing-the-billion-dollar-mistake" rel="nofollow">http:&#x2F;&#x2F;twistedoakstudios.com&#x2F;blog&#x2F;Post330_non-nullable-types...</a><p>2) <a href="http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;792531&#x2F;c-how-to-implement-and-use-a-notnull-and-canbenull-attribute" rel="nofollow">http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;792531&#x2F;c-how-to-implement...</a>