There’s been a lot of positive press for LINQ, such as the article about LINQ by Mike Otey at http://www.sqlmag.com/Article/ArticleID/48759/sql_server_48759.html. You can also find lots of glowing reviews and info about LINQ by Troy Magennis at http://blog.aspiring-technology.com/.
I've been trying to figure out exactly how I feel about LINQ, along with several other developer-oriented technologies that Microsoft has launched over the years, such as CLR. Ambivalence is the emotion that bubbles to the top most frequently. It's pretty obvious to me that Transact-SQL is the red-headed step child within Microsoft's overall ranking of languages.
One of the big problems I have with Microsoft’s approach is that it’s too tactical. Every 2-3 years, Microsoft launches TNBT (“the next big thing”). TNBT will make our code better, our developers faster, our applications more efficient, walk your dog, wash your cat, tie your shoelaces, end world hunger, and otherwise make everything better. The only problem is that TNBT is usually put together by one subteam of a major group, such as the languages group inside of the SQL Server development team. These small teams, while brilliant, often don’t get the top-down support to institute a major sweeping change to how things work. Consequently, we get a feature set that, while useful, doesn’t give us everything we need to sweep out the old and introduce the new.
This sort of 50% solution manifests itself in a lot of different ways, usually by making some aspects of the development process better and other aspects worse. My friend and fellow SQL Server MVP Andrew Kelly has an interesting blog post and subsequent comments at http://sqlblog.com/blogs/andrew_kelly/archive/2007/09/06/linq-to-the-rescue.aspx which strongly illustrates this idea. Basically, (most) developers still don’t understand the basics of building an efficient database solution. The thing that most improves database applications is proper planning and design. But tools like LINQ and the entity framework most obviously help developers speed up development process, in effect encouraging even less planning and design than ever before. A recipe for disaster? Almost certainly.
I hate to think that the language that I’m best at is the most likely to lose overall support. On the other hand, I’d love to get in on TNBT (“the next big thing”) while it’s still in its genesis. However, figuring out what, exactly, they are planning to replace Transact-SQL with is yet to be seen since each new offering is, IMO, sadly lacking in value.
As an administrator, I’m putting a lot of eggs into the PowerShell basket – the first major scripting/programming language in many years that I’m taking the time to get really good at. However, I still don’t think we’ve hit TNBT in development languages and we probably won’t until Microsoft takes the time to convene a high-powered team composed of members from both the SQL Server and Visual Studio organizations.