Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

.NET

An Interview with Amanda Silver on Language Integrated Query (LINQ)


DDJ: When you take all these features, and you put them all together, it's not that you can't do things the way that you've always done them, but when you start to use these new features the flavor of the language feels very different. To me, this is the biggest change to the language that I can think of. I think maybe even bigger than the change from Visual Basic 6 to Visual Basic .NET. Going to .NET changed all the underlying objects that you use, and VB itself changed some, but I feel like this is adding more to the language than the transition to .NET did.

AS: Yeah, I don't know if I would argue with that. Well, I wouldn't say that it "changes the language" because we're not changing the foundation of the language. We're introducing a new fundamental concept in the language that will change the way that you program with it. LINQ is two things. It's the language constructs that we talked about, and it's also the LINQ enabled APIs. We're not only changing the way that you program, we're also creating a whole new way to interact with APIs so that they're easily queryable. We're going to see more than DLINQ, and XLINQ. We're going to see more LINQ APIs coming out in the future. People are already doing them with their own code.

I think in terms of language constructs, the switch from VB6 to VB.NET let you harness the power of Windows frameworks. It brought Visual Basic to the level other modern programming languages. The ceiling was busted off of the language. That was the crux of the move to .NET. In the Visual Studio 2005 release, we made some pretty significant, though incremental, improvements to the language that were focused on productivity. Generics let you have strongly typed collections, and My let you use the framework without being overwhelmed. It let you get to the things that you need quickly.

The LINQ feature is something that adds a whole new power and productivity to the language.

DDJ: And so far, I've been pretty impressed with what I've seen. I've heard people ask for specific tweaks, but I'm not running into a lot of people who are saying, "This whole LINQ concept is a bad idea." It just seems that having query as a language construct makes sense.

AS: The feedback that we get is that Visual Basic is all about productivity, and the majority of our customers are writing applications which are forms over data. They want help in building those kinds of apps. Data language integration, making data access easier, has been the goal for a number of years. I think I started looking at this about five years ago. We've been looking at this on and off, but really on for the last two or so years. I think we've finally got it right.

DDJ: If it was an easy problem to solve, it would have been solved in 1972.

AS: It was, in other languages.

DDJ: If you look at other languages, languages that really became industry standards, none of them have query as a concept. Look at C, C++, Java, VB, C#, etc. These languages all access data through libraries, and query isn't part of the language. Why now?

AS: When you look at the popular languages, they've been silo'd. They're either general purpose and data is handled through libraries, or they're very specific. You could argue that SQL is a common language, it has querying, but it's all about the data and not the application.

DDJ: Amanda, thanks for taking time to chat. We're looking forward to seeing how the editor and debugging experiences progress.

AS: Yeah, it's fun to work on. Thanks for playing with the bits!


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.