Microsoft has released the first Community Technology Preview (CTP), its fancy term for a beta, of LINQ, a modification to Microsoft’s programming languages that allows for direct calls to data sources from within the language, rather than intermediary technologies.
LINQ stands for Language INtegrated Query. It allows for query and set operations, like SQL statements, directly within .NET languages like C# and Visual Basic. This is a fundamental shift in data querying, particularly for Visual Basic, because the standard method for data calls is to use an intermediary object, and that was often in a second language, like SQL or XML.
“It was like you had to order your dinner in one language and drinks in another,” said Jason McConnell, product manager for Visual Studio at Microsoft. “The direct benefit is programmers are more productive because they have this unified approach to querying and updating data from within their language.”
LINQ is actually a modification to the .Net framework, so any language that supports .Net 2.0 will support LINQ. Borland Software has said it would support LINQ in Delphi, but that promise was made before Borland decided to sell its line of development tools.
Prior to LINQ, developers would have to write an object in a different language than the one they were using to access the data, either an SQL object or a stored procedure for SQL database access or an XML style sheet to get at XML data. LINQ allows developers to write their queries and updates in the language they are using to write an application, so they stick with one language.
And because LINQ has a pluggable query model, third-parties with their own file format can build their own plug-ins to support that file format from VB and C#, said McConnell.
The CTP is meant to get initial feedback. Microsoft is still some way off from a final release. LINQ is expected to be a part of the next release of Visual Studio, currently in the CTP testing phase, codenamed Orcas. It could be some time before we see Orcas, since Visual Studio 2005 just shipped late last year.
McConnell said there are no immediate plans for updates, since the company wants to wait for feedback from the first round of CTP participants. Microsoft is only supporting VB and C# in Visual Studio 2005, even though VS comes with two other languages, Visual C++ and VisualJ.
While the features of LINQ are cool and useful, Greg DeMichillie, lead analyst for developer tools at Directions on Microsoft, in Kirkland, Wash. sees a greater impact of this technology in the future. “In a longer term, they are laying a foundation to change the way people program that’s kind-of back to the future,” he said.
Underneath LINQ is a technology called functional programming, which can be found in old languages like LISP. All Microsoft is doing with functional programming is the SQL queries in LINQ, but in a few releases, DeMichillie predicts Microsoft could bring about a change in the way people program their applications.
Functional programming makes it easy to divide itself up and execute across multiple processors. Google is one of the best examples of this, he said. Queries are sent out to hundreds of servers, then the results are collated into a single response.
That will be really important as we start getting multicore processors.
“The days are over when programs get two times faster because a new chip runs two times faster,” said DeMichillie. “In the future, new processors will help apps that know how to divide their work up across multiple processors and only functional programming can do that.”
The CTP of LINQ can be downloaded from the MSDN LINQ home page.