Please note that this isn't meant to be a Java vs. C# argument. I'm a Java programmer with no C# experience, asking just out of curiosity.
I did some reading on C#, and it seems it has much more features than Java. A number of examples:
- Type inference.
dynamic
keyword.- Delegates.
- Optional parameters.
- Lambda and LINQ (I actually have no idea what these are).
- Properties.
However Java doesn't really feature anything that C# doesn't have.
My question is: why does C# have much more native features than Java? And why didn't Java add some of these throughout the years, for example Properties or type inference? Do the Java language designers take a more simplistic approach? What is the reason for this?