Downloaded the Linq May CTP after reading a little about it on other's blogs. After looking through the overview, I was fascinated.
I had always wished for some kind of language that would work with data, and not focus so much on for loops and if-then logic. C# has always been a nice language to program in, but since its so type specific, in my mind it's future was shoehorned to becoming a relic of “how I used to program...“ Its difficult to manipulate data in a completely type safe way. Consider how there's just a plain discontinuity between the data storage (typically SQL Server) and the built in data types... The biggest annoyance is the range of DateTime values between C# and SQL. Nevermind the details... (which really dont interest problem solvers anyways). So and there's a I could never understand back when C# 1.0 was in beta... I wondered WHY in this did they follow architecture of the hardware, instead of the business of solving problems. This maintained the discontinuity and. This was back in the C# 1.0 beta days.
Frankly, I was gonna jump ship to Ruby (or Ruby.Net) so I could still use all the .Net components I've licensed.
And now Linq has brought C# and a Sql-like* language together. Of course, the current CTP still has a few issues, and one particular issue that you really can't fix... the notion of .Where<>() methods showing up on ALL your objects because of “extension methods“. (i believe that's what they're called...) Because its an interesting little tidbit that Anders said “Now don't go adding your own methods to System.Object” or something like that. Maybe Intellisense could be modified to look deeper into the object and notice that maybe the object has Linq attributes declared to it, and only show those extension methods... (or maybe it already works this way?)
And on another front, pardon the pun, is that TD Alberto is coming... So with all the fires we've had so far, it's actually good to know there's gonna be some rain...