Since I'm very interested in C# Generics, in particular it's ability to improving typing and help close the performance gap with C/C++, I figured I'd post a summary of recent Generics information for anyone who is interested:
1) What is C# Generics? Generics for C# and .NET is a set of changes to CIL and C# which implement parametric types. Conceptually C# Generics fill roughly similar needs as C++ templates or Generic Java (GJC). Currently the performance of collections in .NET (or JVM) is similar to that of Python, Perl, or Smalltalk because collections involve runtime dynamic type casting. Generics for .NET support runtime specialization into static code, eliminating the extra typechecks, and bringing the performance of collections closer to that of C/C++. http://research.microsoft.com/projects/clrgen/generics.pdf 2) What implementation work has taken place with C# Generics? Microsoft Research has released an implementation known as Gyro in the form of patches to be applied to the Microsoft Shared Source CLI. http://research.microsoft.com/projects/clrgen/ Some preliminary work has been done in Portable.NET to support Generic C#/CIL. (it dosn't work yet) http://dotgnu.org/pipermail/developers/2003-February/009918.html Microsoft has submitted preliminary documents to the ECMA which have not yet been released. 3) When will Microsoft release Generics? Microsoft announced at OOPSLA 2002 their intent to provide several new C# language features including Generics, anonymous methods, iterators, and partial types. This provided much confusion as some thought that this meant the .NET v1.1 or VS.NET 2003 releases would contain Generics. This is not the case. http://www.gotdotnet.com/team/csharp/conferences/OOPSLA%202002%20CSharp.ppt http://www.microsoft.com/presspass/press/2002/Nov02/11-08OOPSLAPR.asp Generics is slated for .NET v2.0, known as "Whidbey", with the VS.NET for "Yukon". The word is late 2003 or early 2004. 4) When will C# Generics be standardized? There are no official dates, however, in an interview last week (March 21,2003) Anders confirmed that this work is already underway: "In fact, we have already submitted specifications for Generics, Iterators, and Partial Classes to ECMA, and we're on schedule to submit the remaining specifications within the next several months. We remain very committed to C# standardization." http://msdn.microsoft.com/chats/vstudio/vstudio_032103.asp 5) How is C# Generics different from Generic Java? Generic Java has been in process for a few years. The first research implementations existed before C# was release. Sun has released a reference compiler (GJC) which implements the JCP elected standard. Generic Java does not change the JVM, and thus it does not close the performance gap with C/C++. However, it has the benefit that it provides the additional typesafety in a very backward compatible manner. Existing compiled libraries can be "retrofit" with parametric type-specifications. Generic Java is rumored to be slated for the next Java release (1.5?) for which no date is set. http://www.jcp.org/aboutJava/communityprocess/review/jsr014/index.html C# Generics is similar to Generic Java in many respects. However, CIL v2.0 includes specific support for Generics which closes the performance gap with C/C++ by specializing code and eliminating run-time casts. Gyro, a reference implementation of Generic C#/CIL, is available as a patch to the Microsoft Shared Source CLI. http://research.microsoft.com/projects/clrgen/ 6) Where can I find more information? "Future Directions for Visual C#" http://msdn.microsoft.com/chats/vstudio/vstudio_032103.asp "Interview with Anders Hejlsberg" http://windows.oreilly.com/news/hejlsberg_0800.html "New C# Language Features" http://www.gotdotnet.com/team/csharp/learn/Future/default.aspx "Gates Offers Glimpse of VS Update, Everett" http://www.eweek.com/article2/0,3959,714015,00.asp "ECMA C# and Common Language Infrastructure Standards" http://msdn.microsoft.com/net/ECMA/ -- David Jeske (N9LCA) + http://www.chat.net/~jeske/ + [EMAIL PROTECTED] _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
