@SocraticPhoenix Basically, C# started as a Java clone, but then they kept adding features to make it awesome and the Java people didn't do that so much.
@Pavel u say that but have u used every language? (though java is just plain strange when it comes to threading synchronized and atomic and volatile and all that stuff I don't get).
@SocraticPhoenix Yeah that's me with C, it takes forever to program things that would be simple in other languages, yet I love it's low-level-ness and ... everything else
@ATaco I assume so... I went into designing a practical programming language with a similar mindset (how does anything work), and came out with a functioning thingy... Thing is, I have to be forced to switch languages because otherwise I just do it the way I know how...
TIL that The Common Language Runtime (C#'s VM) supports global functions and tail call optimization, though no CLR language actually uses these features.
MSIL is designed to be human writeable/readable, so it's possible write a function that uses tail-call optimization in it and then call it from C#.
@SocraticPhoenix It's also dynamically typed. I am going through extreme amounts of pain in order to make var foo = Console.WriteLine work, since methods and Delegates (lambdas) can't be assigned to variables of type dynamic without a ton of magic.