THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | |
in Search

Greg Low (The Bit Bucket: IDisposable)

Ramblings of Greg Low (SQL Server MVP, MCM and Microsoft RD) - SQL Down Under

LINQ - Lessons that could have been learned from languages like Progress

This blog has moved! You can find this content at the following new location:

http://greglow.com/index.php/2008/02/25/linq-lessons-that-could-have-been-learned-from-languages-like-progress/

Published Monday, February 25, 2008 10:56 AM by Greg Low

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

alphatross said:

Progress was my first RDBMS, so SQL at first seemed upside-down to me!

FOR EACH table:

  DISPLAY col1 col2 col3.

END.

... rather than SELECT col1, col2, col3 FROM table;

Enjoyed hearing about it again (it's still around, now called OpenEdge) but I agree it lost its simplicity & power trying to update to an Object-Oriented, GUI style.  Still, it was (is?) VERY reliable.

February 28, 2008 6:23 AM
 

Ian Thomas said:

Won't that be possible with LINQ for Entities?

Although it's not mentioned specifically, a Channel9 webcast on EDM/EF featuring Brian Beckman and Sam Drucker somehow led me to believe that would be possible.

March 6, 2008 1:41 AM
 

Greg Low said:

Hi Ian,

Sort of but it's still very much an add-on rather than being fully baked into the language.

Regards,

Greg

March 6, 2008 1:47 AM
 

Greg Low said:

Also, I should have mentioned that it only deals with the objects, not with the associated metadata.

Regards,

Greg

March 6, 2008 1:47 AM
 

Steve Dassin said:

>it's still very much an add-on rather than being fully baked into the language.

I remain somewhat perplexed by just what you mean by this. By definition LINQ is 'burned in'. This is the achievement that MS has accomplished. To imply that it's not fully baked in is like saying a woman is somewhat pregnant. It is or it isn't, you are or you are not:) Either a table/entity or projection can be represented as a variable or it cannot. That all these things 'can' be a variable of some type referenced in the language is the whole point of it no? Your use of 'add-on' seems to imply that LINQ is something external to the language much like an external 4GL like Progress. I don't think this can be further from the truth. In your interview with Pablo Castro he referred to Progress as an example of a language having 'direct line of sight from language to database'. Wasn't he struggling here to convey the idea to sql folks of the fundamentally different natures of the two? To bring the 4GL idea into contemporary languages one shouldn't expect they are going to be similar. And you seem to be implying that LINQ is not as 'natural' as Progress. How could it be? If you first have to define a query variable (table) you certainly can't expect to start your    variable with a Select/Find. You define and then perform an action right? In t-sql 'Select @MyNumber' only makes sense if your first declare @MyNumber. Is LINQ any different? And in the sense that 'declare @MyNumber int' is burned into t-sql, isn't 'var customers = from c in db.Customers' burned into C#?

I do think sql folks should listen to your interview with Pablo. It is proving difficult for MS folks to convey just what they have done to those outside of net. What is worse, misunderstanding it or ignoring it? :) Shouldn't sql folks fully understand why MS thinks it's such an improvement over sql? So far I think either they don't or simply don't care.

March 6, 2008 8:16 PM
 

Gary Clink said:

Greg coming from a Progress background myself (and still working extensively with OpenEdge) I find the LINQ project really interesting.  

What I find interesting about the LINQ extension to .NET is that the 3GL world is trying to simplify certain actions by applying 4GL principles (e.g. ForEach statements, etc) whilst at the same time those of us in the 4GL world are now moving towards 3GL style coding as well (using things like object orientation, etc).

I also understand what Alphatros means by SQL looking like it's on its head :)  It's funny how different people perceive programming, it's almost a religious war.

Thanks for the post, I look forward to hearing more.

Gary

May 3, 2009 6:32 AM

Leave a Comment

(required) 
(required) 
Submit

This Blog

Syndication

Tags

No tags have been created or used yet.

Archives

Privacy Statement