So everyone and his brother has been raving about the new LINQ stuff in C# and VB.NET - see here for a positive review. I'm sure that developers will use this stuff - and it does look like it could be useful. However, there's a basic approach problem with their solution. They added it by pushing in a bunch of new operators (how many does C# have now?) instead of adding in a library. Adding a library has a lower impact, and it's possible to extend - with a set of operators, you get what the vendor gives you, and that's it. Contrast that with the collection library in Smalltalk: there are four commonly used methods:
- #select:
- #detect:
- #reject:
- #collect:
Those are just methods in the class library though - once I figure out what they do, I can add my own domain specific analogs into the collection libraries, extending my own reach. With the "add a few dozen operators" approach, MS has just made every "learn C# in 21 days" book 50 pages longer.
Yeah, that's what the world needed. Overall, the mainstream continues do damage.