LINQ May 2006 Preview

"A preview of LINQ, code name for a set of extensions to the .NET Framework that encompass language-integrated data query, set, and transform operations."

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

What novel ideas does LINQ bring?

As far as I understood (earlier) descriptions of LINQ, it includes exactly one novel idea: using the same syntax for inline functions to be compiled normally and executed, as for expressing queries to be translated to SQL. (A Lisper would laugh at the amount of work which was needed to archieve that, compared to how it would be done in Lisp.)

Other features are trivial: the syntactic sugar of queries is thin, the same functionality is easy with higher order functions, and many other languages already have a nice syntax of anonymous functions and constructing records.

Did I miss anything?

The question was posed...

"it is new for a mainstream programming platform"

Perhaps I've simply tired of hearing about lack of novelty, but I dare say the number of Lisp or Scheme or Smalltalk programmers is quite small, so in a sense it matters much more that some of the ideas become part of mainstream programming.

Invention vs. innovation

There's much more innovation going on here than invention. By the time things get to the point of being productized, that's typically the case. We're just spoiled in software, in that research vehicles often look temptingly usable for practical purposes, so the boundaries get blurred.


I think LINQ is essentially adding the data-access features of Cω into the official .NET languages. It's hard to tell from skimming the LINQ Project Overview whether that's actually the case. Perhaps the ideas have been diluted a bit getting to LINQ, or lost in the marketing behind "look at all the essential language features we finally implemented".

In any case, you can find the interesting ideas from LINQ in Cω, which comes with research papers rather than marketing. A good explanation of what's interesting in Cω is the paper The essence of data access in Cω.

As the subtitle "the power is in the dot" suggests, it's not so much that Cω adds features like streams or anonymous records, but that the semantics they put around them make much of the behaviour of XQuery and SQL special cases of the ordinary operation of the language. Cω seems to be a pretty good attempt to distill the languages to be assimilated down to a minimal core of generally useful features.