It seems that almost all features in C# were borrowed from another languages (OOP from Java, generics (parametric polymorphism) and lambdas from ML family, LINQ from Haskell's monads and dynamic from dynamic languages), but I don't know the origin of attributes(annotations in Java world). Is C# the first language that introduced attributes?
I saw attributes for the first time as method or parameter annotations in COM IDL (Interface Definition Language) files back in C++ world. I do not know if they were invented there or not. http://msdn.microsoft.com/en-us/library/aa367042.aspx
I think it was UML with stereotypes.
http://en.wikipedia.org/wiki/Attribute-Oriented_Programming
精彩评论