I might be the only person on TR excited about this. Mostly because at work everything I write is in C# in the form of a Xamarin Forms app, and as far as modern programming languages go, C# is where I'm (by far) the most proficient. As a hobby I've picked up a bit in both Swift (for iOS / Mac apps) and Java/Kotlin for Android apps. There'll be two responses to this thread: "meh" or "Funk, you're an idiot" and I don't mind. It gives you an opportunity to correct me and I won't even get offended.
So since I started with C# and then moved to these native platforms, I got to learn about something that's either optional or non-existent in C# (probably the former): completion handlers. Want to write a method that calls a handful of web services? Get used to completion handlers. It works way differently than I am used to and while I'm getting a handle on it, it's not fun. I *really* like async and await in C#. Create a bunch of tasks, call Task.WhenAll and the method stops until those tasks are all complete.
It's one of those things that makes my Xamarin Forms app faster than anything I've written in Xcode, because I can't figure out how to best call three different web services to get all the data I need simultaneously and then move on with the rest of the function. That's probably just me not knowing how to do it correctly rather than a limitation of the language. The example code towards the end of section 2 on this page
is a great example of what I'm talking about.
Last year it was codables that turn JSON strings into objects natively, and this time it's async/await. Just in time for the smartphone to die, amirte?
I do not understand what I do. For what I want to do I do not do, but what I hate I do.