Username or EmailPassword
Funny how Java 5 "ripped off" many of the features offered by C# and .NET. Developers have been asking Sun to implement some of the features for years, but Sun only did so after C#/.NET did so.
Actually many of the new Java 5 features were around for ages. Templates were first implemented pretty much at the beginning of Java in research versions of Java. At the time Gosling didn't want to add it because he wanted the dust to settle on C++ templates so he could learn from C++'s experiences and implement only the best features of templates. XDoclet has also been around for ages. I'm not really sure which came first, XDoclet or C# attributes, but I believe that Aspect Java predates both. As for the for syntactic sugar, Perl/Python/Ruby are probably more inspiration for this than C#. And so on.
But you're right, Java did get inspiration from many other languages, and so did C#. C# focused what it found inspiring on Java, VB, and C++ (not just Java).
But big deal. What counts is *how* it uses it's inspiration. C# follows that C++/VB/Perl philosophy that if a feature is used often enough, it should be in the language (language complexity be dammed) and that portability is an issue left to 3rd party packages. Java has the C philosphy that given the choice between adding something to the language or adding it to the library, we should add it to the library and that portability through a good enough platform layer should be a goal of a language (native looking GUI interface be dammed).
Actually, the C++ philosophy is precisely the opposite. That's why we still don't have lambda forms or a proper metaprogramming facility in the language --- they want to add those all through libraries built on the template mechanism.