[.NET - General] Return of the .... STL!
Coming from a C++ background, it is interesting to see that the
Standard Template Library (STL) has been reincarnated as STL.NET for VC++ 2005. Stanley B. Lippman provides a new
STL.NET Primer that not only introduces the undead beast but also gives some rationale for its .NETification. Lippman's article is the beinning of a series on STL.NET.
Evolving STL into STL.NET is a Good Thing (TM) but it is not enough.
When
STL first came into existence, it quickly became an essential tool for C++ engineers, myself included. I also derive from a
SmallTalk lineage, and have grown used to SmallTalk's
powerful collection class libraries, so the
STL collections (containers) were certainly welcome, limited as they were.
Alexander Stepanov's approach to providing templated algorithms was quite revolutionary and represented a very creative contribution at the time. I welcome the aspirations of the venerable
STL to join the .NET generation because it will provide a much needed migration path for C++ engineers who have invested time and energy into learning these powerful tools. I can only hope Lippman is right and that STL.NET will play well with others (C# and VB.NET and the many other new CLS-compliant languages). I eagerly await the other articles in his series to find out.
My main thesis here, though, is that
STL.NET is not enough. Making STL.NET available for C++ is a nice gesture, but what about the rest of the CLS/CLR world?
Collections are important! A solid set of collections can make architecture and engineering much easier and you quickly find that collection abstractions enhance your thinking ability. I sincerely hope that Microsoft will bite the bullet and take this opportunity to rework the whole idea of collections intelligently.
The original System.Collections offering was, frankly, not even a respectable token gesture. I'm not sure Microsoft has ever taken collections seriously. Even the
Java Collection Framework (JCF) is
arguably better than .NET's collections. Does Microsoft have any empowered, strong advocate for putting a real set of collections into the .NET Framework? If so, I would like to know that person's name!
Wintellect has started a
Power Collections for .NET initiative. This effort could be a vehicle for work toward a new and effective collections framework. At least, it is a community where some people want to discuss the matter and where some people are currently writing code. They are asking for our help. If you care about collections, you might want to participate. The opportunity is here and the time is now!
PS Thanks to
Mike Taulty for bringing the STL.NET issue to my attention.
Update: Kevin Downs has provided a link to the very interesting
C5 collection class library project. To make sure the various collection class projects at least know about each other, I have forwarded the link to the
Power Collections for .NET Class Ideas Forum to make sure those folks are also aware of it and have emailed information about
Power Collections for .NET to the author of
C5.