An ode to C#
When I first met you, you seemed awkward and cumbersome with your strict rules on types. My first love was Python which seemed much more approachable with its duck typing and care-free way of solving problems. Then as I got to know you better I began to discover the joys of avoiding many headache inducing bugs with your wonderful type system. Even more to your credit you make your types even more explicit than your older brother Java with the ? suffix on your types to quickly let me know if a variable can be null or not (yes, if the type starts with a capital letter in Java it can be null but C# gives you the option).
Now that I am devoted nearly full-time to Java (Android) development I long for your company even more. Simple things like joining a list of strings simply are not possible without downloading external code which means messing with one of Java’s hellish build systems (Nuget’s no prize pig here either but at least it was the only viable option). Problems that were solved succinctly and elegantly with your .NET library with LINQ now are solved in painful and ugly ways without the use of third party libraries. How many times have I yearned to be back in LINQ’s powerful paradigms performing majestic feats of logic in just a few simple lines of function predicates.
You are even changing the minor gripes I had regarding your closed source, single platform nature with the release of the .NET core projects on Github.