[QueueNews] A Conversation with Erik Meijer and José Blakeley

QueueNews queuenews at acmqueue.com
Mon Jul 28 08:00:03 PDT 2008


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. . . . . . . . . . . . . . . . . . . . . . . .
   Queue E-Mail Newsletter
   for the Week of Jul/28/2008
. . . . . . . . . . . . . . . . . . . . . . . .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-------------------------------------------------
      Sponsored by

      ACM
      STPCon Fall 2008

/----------------------------------------------------------\

Join ACM

A Special Offer to Join ACM for Queue Readers
http://www.acm.org/joinacm2

\----------------------------------------advertisement------/


Latest Articles:


A Conversation with Erik Meijer and José Blakeley
The Microsoft perspective on ORM
http://acmqueue.com/rd.php?c.542
   (scroll down to read an excerpt from this article)


The Virtue of Paranoia
Between a rock and a hard place
http://acmqueue.com/rd.php?c.541

/----------------------------------------------------------\

Register Now for STPCon Fall 2008!

STPCon will offer over 70 technical classes and tutorials focused on
training you with the newest techniques, tips and tricks of software
testing, quality assurance and maximizing software performance. The
event will be held September 24-26 at the Boston Marriott Copley in
Boston, MA. Register today at http://stpcon.com/

\----------------------------------------advertisement------/

New article on ACM Queue:
A Conversation with Erik Meijer and José Blakeley
http://acmqueue.com/rd.php?c.542
The Microsoft perspective on ORM

>From the Object-Relational Mappers issue, vol. 6, no. 3 - May/June 2008

article excerpt:
In any discussion about ORM (object-relational mapping), Microsoft's
approach is inevitably a part of the conversation. With LINQ
(language-integrated query) and the Entity Framework, Microsoft divided
its traditional ORM technology into two parts: one part that handles
querying (LINQ) and one part that handles mapping (Entity Framework).
To
understand more about these technologies and why Microsoft took this
approach, we invited two Microsoft engineers closely involved with
their
development, Erik Meijer and JosÉ Blakeley, to speak with
Queue editorial board member Terry Coatta.

Meijer is an
accomplished programming-language designer who has worked on a wide
range of languages, such as Haskell, Mondrian, X#, C-Omega, C#, and
Visual Basic (his personal favorite). He runs the Data Programmability
Languages Team at Microsoft, where his primary focus has been on
removing the impedance mismatch between databases and programming
languages. One of the fruits of these efforts is LINQ, which not only
adds a native querying syntax to .NET languages such as C# and Visual
Basic, but also allows developers to query data sources other than
tables, such as objects or XML. Some readers might recognize him from
his brief stint as the "Head in the Box" on Microsoft's VBTV.

Blakeley is lead architect in the SQL server engine working on
server-side programmability, scale-out query processing, and
object-relational technologies. He joined Microsoft in 1994 and since
then has been an architect of several of Microsoft's data-access
technologies. Like Meijer, Blakeley's main focus is on the
impedance-mismatch problem. He served as the lead architect for the ADO
.NET Entity Framework, which works with LINQ to raise the level of
abstraction and simplify data programming. Before joining Microsoft,
Blakeley was a member of the technical staff at Texas Instruments,
where
he developed the Open OODB (object-oriented database) management system
for DARPA.

TERRY COATTA I think that a number
of our Queue readers really don't understand how LINQ differs
from what developers have been doing up until now. A lot of people are
embedding SQL queries directly into their application code. Can you
tell
us what's different about LINQ and why developers should care about it?

ERIK MEIJER While, superficially, LINQ might
look like you're embedding SQL queries in your code, actually it's
radically different. What LINQ really does is allow you to query
arbitrary collections, which could be tables, objects, in-memory
objects, or XML.

The secret sauce behind LINQ is what we call
the standard query operators. If you have a data source on which you
can
define these standard query operators, then you can query it using
LINQ.
Think about it like this: you have SQL, which is based on relational
algebra. Now imagine that we abstract from the relational part and have
a query algebra that is represented by these standard query
operators.

So, now the languages have this query syntax that
they translate into calls to these query operators, but each data
source
can give a different implementation of these operators, allowing you to
query over a wide range of data sources. One example is querying over
tables, but it's very different from using SQL.

The other
problem with embedding SQL inside the language is that it's not really
well integrated, so SQL is embedded but it has a different syntax and
type system. You'll have variables in your program you want to use
inside the embedded SQL, and maybe the other way around, because you'll
want to use the results that you get back from the query in your
program. There's usually quite a nasty boundary between the two worlds,
but with LINQ it's completely integrated into the language, so the type
system--everything--is that of the host language. It's a
seamless experience.

Those are the two big differences. The fact
that it's integrated in the language means that you get IntelliSense,
compile-time type checking--all those things that are much harder
when you are embedding SQL inside the language.
Read the rest of this article at acmqueue.com
http://acmqueue.com/rd.php?c.542

See all the latest articles and audio interviews with Queue's RSS Feeds
http://acmqueue.com/rd.php?s.48.7

To unsubscribe to this newsletter, send an email to
queuenews-request at acmqueue.com
with the words 'unsubscribe' in the subject line.

Change your email address
http://www.acmqueue.com/mailman/options/queuenews

Subscribe to Queue in print
http://www.acmqueue.com/click.php?id=30
About Queue
http://acmqueue.com/rd.php?s.31.5
Contact Us
http://acmqueue.com/rd.php?s.32.10
Privacy policy
http://acmqueue.com/rd.php?s.27.9

For advertising information, contact advertising at acmqueue.com


© 2008 ACM, Inc. All rights reserved.




More information about the QueueNews mailing list