Talk:Language Integrated Query

From Wikipedia, the free encyclopedia

This article is part of the .NET WikiProject, an attempt to improve and organize the .NET content on Wikipedia. If you would like to participate, you can edit the article attached to this page, or visit the project page, where you can join the project and/or contribute to the discussion.
B This article has been rated as b-Class on the quality scale.
??? This article has not yet been assigned a rating on the importance scale.
This article is within the scope of WikiProject Computer science, which aims to create a comprehensive computer science reference for Wikipedia. Visit the project page for more information and to join in on related discussions.
B rated as B-Class on the assessment scale
Mid rated as mid-importance on the assessment scale

Contents

[edit] linq

Having used LINQ in a project for the past 2 weeks, I am amazed at the power it gives developers. Instead of having to mix my code with SQL, I can treat the database tables as if they were classes. The current release of LINQ still lacks intellisense but it had enough added value to move my project into it. Performance is also impressive.

--Ohadgliksman 13:13, 24 April 2006 (UTC)


[edit] Haskell influence

You guys might want to add some historical detail in; from pg 6 of "The History of Haskell":

But many of the features in C# were pioneered by Haskell and other functional languages, notably polymorphic types and LINQ (Language Integrated Query). Erik Meijer, a principal designer of LINQ, says that LINQ is directly inspired by the monad comprehension in Haskell.

--maru (talk) contribs 02:25, 15 July 2006 (UTC)

Those features werent there in imperative languages, and c# is not a functional language (like haskell, lisp) but an imperative one (like c, c++, java) --soumসৌমোyasch 06:15, 15 July 2006 (UTC)
http://blogs.msdn.com/charlie/archive/2007/01/26/anders-hejlsberg-on-linq-and-functional-programming.aspx Dpser 09:38, 26 June 2007 (UTC)
Didnt I already say that this is bringing functional programming constructs to imperative languages? --soum talk 09:41, 26 June 2007 (UTC)
No, and what if you did? I just posted the link in case you find it useful for addition... Dpser 08:13, 28 June 2007 (UTC)
Oh ok, I thought you added the link with respect to the debate we had been having a year back. Thats why if you are saying something that is unrelated to a previous conversation, its best to start a new section and set some context. --soum talk 08:27, 28 June 2007 (UTC)

[edit] Release date

I am confused why you have deleted my paragraph Soumyasch. It was there to explain the apparent pushing back in release from .NET 3.0 to 3.x (ie it won't be in the Vista release cycle, yet this has been promised for 12 months). But your reason for deleting was simply 'not in 3.0' !! Please explain.

In the mean time, I have replaced the section with one not explicitly mentioning a previously planned release in 3.0 - I feel it is important people know this tool won't be available in the Vista cycle, as was previously the impression.

80.177.152.35 09:04, 13 August 2006 (UTC)

I deleted it bcoz it was never supposed to be released with .NET 3.0 (which is WinFX, still CLR 3.02.0), it was (and still is) to release with C# 3.0, and the version of CLR (presumably 3.0) accompanying it. The previous version gave an impression otherwise. --soumসৌমোyasch 09:23, 13 August 2006 (UTC)
Ok, how about fixing it next time instead of hitting the Delete key ;) BTW Linq still produces 2.0 IL.
Incidentally, if Orcas is released sometime after Vista, what do we use to develop WPF / WCF apps in, during that period? Some expansion pack for VS2005?? (not CTP's obviously, since they're not of production quality). 80.177.152.35 14:23, 13 August 2006 (UTC)
Linq doesn't produce IL 2.0, Linq preview does. Who knows whether the release version will make use of IL additions or not! And WPF/WCF are essentially additions to FCL, so VS 2k5 is enough. Maybe add-in packages will make the IDE WinFX aware, meanwhile.
And as far as deleting goes, ur lines were from the assumption Linq was supposed to be in .NET Fx 3.0, so nuking it seemed best, so that revision of the statement wont be born from the misconception.--soumসৌমোyasch 16:05, 13 August 2006 (UTC)
You might find this interesting http://msdn.microsoft.com/chats/transcripts/vstudio/05_1020_csharplinq.aspx , specifically "C# 3.0 will work on .NET Framework 2.0" (daigoh, QA at Microsoft). Also, when someone asks if it's appropriate to ask about .NET 3.0 enhancements in a 'C# 3.0 / Linq' chat, Jomo replies "I think 3.0 questions are appropriate". No ambiguity about that, he's talking about .NET 3.0, suggesting strongly the two are tightly connected (at least when this chat took place)
Also http://msdn.microsoft.com/chats/transcripts/vstudio/05_0922_csharp.aspx does not make a distinction between C# 3.0 and .NET 3.0, again the two are referred to as if they were part of a single release cycle (Vista).
The situation has changed now, obviously. But then, that was the point of my original post! I'm providing lots of references. Can you provide some to show .NET 3.0 has *always* been planned for release before / seperately from C# 3.0?? 80.177.152.35 17:54, 13 August 2006 (UTC)
The confusion stems from the fact that the current ".NET 3.0" release previously (for example in September 2005) was not assigned a special .NET version number, but instead was called "WinFX". At that time (and this is the time the chat transcript you linked stems from), ".NET 3.0" was used to (informally) denote the next platform upgrade (including C# 3.0, LINQ, and maybe even a new CLR 3.0), whereas "WinFX" was a set of libraries (originally for Vista only).
In the meantime, it was decided that WinFX should go into the main .NET libary. This library update is now called ".NET 3.0" and does not contain a change of the underlying platform or the standard compilers. What was once informally called ".NET 3.0" (i.e. C# 3.0, LINQ, etc) is now usually referred to as "Orcas" (which is the name of the next VS version), some also call it ".NET 3.5". See also Microsoft_.NET_Framework.
I think it was never intended that LINQ should ship together with WinFX, it's just the assignment of a whole .NET version number to WinFX which leads to this confusion. 128.130.173.30 10:55, 27 November 2006 (UTC)

[edit] Lead

Language Integrated Query (LINQ) is a Microsoft project that adds a native querying syntax reminiscent of SQL to .NET Framework programming languages, initially to the C# and Visual Basic .NET languages. Many of the concepts that LINQ has introduced were originally trialled in Microsoft's Cω research project.

I dont think this is entirely correct. LINQ is implemented basically by using a few generic methods - Select<T>, Where<T> etc etc + IQueryable<T> and implementations of this is what is the crux of LINQ. As such it is available to all .NET languages, not just C# ad VB.NET even in the initial release. Though the query syntax (which is just syntactic sugar for these functions) is currently limited to C# and VB.NET (+ implicitly typed variables) - but they are not the major components of LINQ (though, the most visible).
As such, I would suggest a rewrite. Just dunno how best to phrase it. --soum (0_o) 06:02, 10 April 2007 (UTC)
I disagree. The clue is in the name: 'language integrated' means it's integrated into the language. Without the language integration what you'd be left with is a framework for performing queries, and a number of providers for specific data sources. i.e, 'LINQ' minus 'LIN'. Forgotten account 14:04, 22 April 2007 (UTC)
What are you disagreeing with? That it will work without the language extensions? I never said that the language extensions were not part of LINQ. I just said the project is not limited to having them in the language - querying will work even without the querying syntax, only will not look as elegant - and that should be made clear. And that means making clear that the queries are actually converted by the compiler into equivalent method calls. --soum (0_o) 14:46, 22 April 2007 (UTC)
Read my comment again - I disagree that 'LINQ' is available to all languages regardless of whether they have language extensions. The underlying libraries are plain .NET - that is not in question. However the language extensions are a key part of LINQ: three quarters of the acronym 'LINQ' is dedicated to fact that language extensions integrate the facility into the language! :-) Forgotten account 12:50, 30 April 2007 (UTC)
 :) Even I am not saying that. I am saying that not having the syntactic extensions will not prevent any language from using the libraries to guery data stores, though the end result might not look as declarative. Its the emphasized part that should be clarified - whether someone calls it LINQ or not is not my botheration. --soum (0_o) 13:01, 30 April 2007 (UTC)

[edit] External Reference Wiki Site

I added a link to my Wiki dedicated to LINQ http://www.hookedonlinq.com and it was removed. It is a community Wiki that is very active with over 100 pages of reference being added in under 4 months. Now I can see that you don't want every link to a website (which would make this a directory rather than reference), however, when that site is community run, and dedicated to a topic, and a reference site on that subject, I think it might serve the reader well to have the option of clicking on a link.

The website itself contains documentation to every Standard Query Operator http://www.hookedonlinq.com/StandardQueryOperators.ashx (eg. http://www.hookedonlinq.com/AverageOperator.ashx), and 5 minute overviews of the various flavors (eg. http://www.hookedonlinq.com/LinqToSQL5MinuteOVerview.ashx). It also has a spot for other links that may not be suitable for this Wiki page.

I'd like this site to be re-considered for inclusion of the external links. —The preceding unsigned comment was added by T magennis (talkcontribs) 23:05, 22 April 2007 (UTC).

The external links guidelines suggests that wikis should be avoided. Acting on that only was the link removed. However, many things like the LINQ operators and discussion on various flavors can be integrated into this article or daughter articles. Also, since the wiki may be useful, I think creating a directory and linking it from there may be warranted. --soum (0_o) 03:28, 23 April 2007 (UTC)
Actually the "Wiki's should be avoided" style guideline is not a blanket rule to not link to wiki's, the full guideline says:
"Example of links normally to be avoided: 12. Links to open wikis, except those with a substantial history of stability and a substantial number of editors."
The Hooked on LINQ wiki is publically open and editable, and the 40 current contributors are the authors of LINQ books from many publishing houses. The site is growing at 50 pages every couple of months, and will be over 250 by the end of May.
I understand the intent of the guidline; but I think linking to specific detailed public reference Wiki's that are maintained by the relavent community was not intended target to be avoided. Nobody is making money from the Hooked on LINQ site, its the aggregation of knowledge from its contributors; I'm happy to drop the idea of a link if its against the spirit of Wikipedia; I just think the content that resides there would benefit the readers of this article. —The preceding unsigned comment was added by T magennis (talkcontribs) 05:56, 23 April 2007 (UTC).
True a guideline is not binding, but it reflects consensus many editors have decided on. Plus a link is not enough to judge if it has a substantial history of stability and a substantial number of editors, for a non member. I would go with consensus on this one. --soum (0_o) 12:46, 23 April 2007 (UTC)
I've had a look at the site, and it seems sufficiently informative (and accurate) to be deemed acceptable, and the "support your site" link at the top is not intrusive. However if the list of external links on this article grows out of control, this link will need to be reconsidered. User:T magennis, what license is used for the content on your site? John Vandenberg 13:07, 23 April 2007 (UTC)

[edit] NHibernate

I added NHibernate to References and someone removed it. It should not have been removed. NHibernate provides ORM, yes overlapping with LINQ but also you can LINQ to NHibernate. Thus it is not only an alternative. --Kibbled bits (talk) 21:47, 15 April 2008 (UTC)

What is it that you want to achieve by adding the link? Why should someone want to "see also" NHibernate when they want information about LINQ? Isn't that shoving your preferences down others throat? Thats seriously POV. The "See also" section is used for linking to articles that are directly related to an article's subject. Not everything in the world that is tangentially related. ORM is the concept that LINQ deals with, it makes it directly related. How does NHibernate fit in? LINQ and NHibernate can perfectly live without each other. And again, on what basis have you added NHibernate but left out every other ORM app out there?
Also, what context just having a link to NHibernate provide? Just an out-of-place link with no explanation of what is interesting to see - why would readers want that? You want to say that you can LINQ to ORM, put it in "Other LINQ Providers" section, that provides a lot more context and provides a lot more information without the users - who don't want to see the NHibernate article also - without having to leave the page. If you have added it there for easy navigation (I am assuming in good faith that you were not advertising), well see also isn't a navigational or organizational device. If you want to organize all ORM-related apps, use a Category. If you want to promote navigation, use a navbox. --soum talk 02:35, 16 April 2008 (UTC)