I have my very own opinion why people complain about LINQ. LINQ is functional. It's different, it's new: must be bad!

Functional programming is complexer than imperative (that's what we do right now). You need to understand the algorithm when implementing it in a functional language. Otherwise you won't success. You need to understand function calls and recursive calls (you won't believe how many don't know how that works). You need to look at the problem from a different viewpoint, which most never did and which might therefore be harder for some. It needs a deeper knowledge!
People also don't like new things. I mean as long as it is new libraries nobody cares that much. The most often excuse to not use them is that no customer has them installed. That gives time, time to wait until others (real experts, and people who understand how to do new stuff) put samples to the internet. Samples that are often copied and modified to create own code.
vesuvius wrote:
When I use (or shall I say learn) ASP.NET 2.0, that's not simple!
You are a little bit messing up things here. C# is not .NET! C# is a language. .NET is a library. .NET is the same from VB.NET or any other .NET language. C#, as language, is very simple! C# won't get much complexer with LINQ, btw. - it is an addition, you don't need to use it. Although using it
might make the code nicer and run faster on multi core architectures...
Also LINQ is not just a replacement for SQL. SQL is functional, LINQ is functional. That makes it easy to convert a LINQ expression (tree) to a SQL statement! Functional programming is more than just outputing some SQL statements!