Welcome to MSDN Blogs Sign in | Join | Help

Anders Hejlsberg on LINQ and Functional Programming

In this video interview, Anders Hejlsberg, the chief architect of C#, describes features in the next release of C#, code named Orcas. Anders first describes how LINQ solves the impedance mismatch between the code that lives on a database server and the code we write with standard programming languages such as C# or VB. He then outlines the new capabilities that functional programming will bring to developers.

Anders has been involved in several other big changes in programming style. He helped to create the modern IDE, helped bring object oriented programming to the main stream, helped establish visual programming, and with C# he helped move people to managed code. He is now involved in a similar evolutionary change in programming styles, as we learn to mix imperative and functional programming styles. 

In this interview Anders explains, in terms that all programmers can understand, why LINQ and functional programming will change the way we develop applications. As Anders sometimes says, functional programming allows developers to describe what they want to do, rather than forcing them to describe how they want to do it. If you are interested in LINQ, lambdas, expression trees, deferred execution, composability, functional programming or concurrency, then you should watch this interview.

kick it on DotNetKicks.com
Published Friday, January 26, 2007 10:46 PM by Charlie Calvert
Filed under: , ,

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

# Anders Hejlsberg on LINQ and Functional Programming

You've been kicked (a good thing) - Trackback from DotNetKicks.com

Friday, January 26, 2007 6:27 PM by DotNetKicks.com

# re: Anders Hejlsberg on LINQ and Functional Programming

Great video Charlie. Thank you so much for making it available for download too. Is there any chance that in future you'll be providing all your great interviews with stream or download viewing options?

Saturday, January 27, 2007 12:47 AM by Tom Kirby-Green

# Otra gran entrevista a Anders...

Mi viejo conocido Charlie Calvert (otro ex-Borlander) ha publicado en su blog otra entrevista a Anders

Sunday, January 28, 2007 4:23 AM by Sobre C#, LINQ y algo más...

# re: Anders Hejlsberg on LINQ and Functional Programming

Charlie,

Great interview, txs!

Also great is that introduction of yours, which tells in few words the story of the (professional) lives of many of us.

http://geeks.ms/blogs/ohernandez/archive/2007/01/28/otra-gran-entrevista-a-anders.aspx

Sunday, January 28, 2007 4:47 AM by Octavio Hernandez

# re: Anders Hejlsberg on LINQ and Functional Programming

Linq will be great, and especially welcome to those of us who have been using similar capabilities in Visual FoxPro since the early 1990s.

Sunday, January 28, 2007 5:23 AM by Alan Bourke

# Anders Hejlsberg on LINQ and Functional Programming

If you haven't been bitten and infected by the LINQ bug yet, go see this video interview with Anders

Sunday, January 28, 2007 3:39 PM by Erwyn van der Meer

# re: Anders Hejlsberg on LINQ and Functional Programming

Great video Charlie. Anders' explanation about the loss of information that occurs when you "over specify" how to do something, as opposed to what you want to do, and the options that open up when you take a more declarative approach was awesome. He has a real gift for explaining things very simply and clearly. Thanks for bringing it to us.

Monday, January 29, 2007 12:12 AM by Malcolm Groves

# re: Anders Hejlsberg on LINQ and Functional Programming

I think that (Anders Hejlsberg) want to CONJOIN all programming languages Ideas in one language, it's name (C#).

Don't He?

If this happend I think (Anders Hejlsberg) CONJOIN all programmers in one programming Language.

Monday, January 29, 2007 6:08 AM by Ala qunaibi

# re: Anders Hejlsberg on LINQ and Functional Programming

what version of media player does this require as the video looks awful and if one trys to fast forward you lose the audio

Monday, January 29, 2007 12:46 PM by john mcfetridge

# re: Anders Hejlsberg on LINQ and Functional Programming

Great interview on a geat subject.  Thanks folks!

Monday, January 29, 2007 6:33 PM by Brett Nieland

# re: Anders Hejlsberg on LINQ and Functional Programming

How much effort can one man go to to avoid using the word "Monad" ?

Joking, joking ...  The elephant under the carpet is indeed concurrency. Understanding Monads might just be a requisite part of reclaiming the lounge room.  It would help greatly if people like Anders would at least attempt to explain where and how Monads fit in to Linq etc., instead of sweeping them under the carpet too.  We now have two elephants under the carpet ....  concurrency _and_ Monads.

Monday, January 29, 2007 9:12 PM by Gary Stephenson

# re: Anders Hejlsberg on LINQ and Functional Programming

How much effort can one man go to to avoid using the word "Monad" ?

Joking, joking ...  The elephant under the carpet is indeed concurrency. Understanding Monads might just be a requisite part of reclaiming the lounge room.  It would help greatly if people like Anders would at least attempt to explain where and how Monads fit in to Linq etc., instead of sweeping them under the carpet too.  We now have two elephants under the carpet ....  concurrency _and_ Monads.

I have been researching options for this problem as well. Check out my open concurrency library at www.codeplex.com/pcr.  It is composable, etc. Don't have lambas yet as no language support yet, but can do closures and predicates cleanly.

Monday, January 29, 2007 10:52 PM by William Stacey [C# MVP]

# re: Anders Hejlsberg on LINQ and Functional Programming

I often hear that Reporting is a different beast. I think with LINQ that beast will go away.

Tuesday, January 30, 2007 10:21 AM by a. tejano

# C# Links

Learn C# Team Video's Interview with Anson Horton Interview with Karen Liu and DJ Park Luca Bolognese:

Tuesday, January 30, 2007 5:47 PM by Charlie Calvert's Community Blog

# re: Anders Hejlsberg on LINQ and Functional Programming

someone have a text of this interview?

Tuesday, January 30, 2007 10:25 PM by gelserf

# Simplification?

I hope to see less large changes to C# because it should not ever be what C++ was specified.  Do not try to include every programming language feature.  It will make C# code as unmaintainable/expensive as C++.  

Wednesday, January 31, 2007 11:00 AM by Robert

# re: Anders Hejlsberg on LINQ and Functional Programming

I am build a MDA system using C# and SQl 2005, this is the missing piece i need. When is the next CTP, or a roadmap on the release schedule.

Thursday, February 01, 2007 2:25 AM by When is the next CTP?

# Community Convergence XX

Welcome to the twentieth Community Convergence. I'm Charlie Calvert, the C# Community PM, and this is

Friday, February 02, 2007 2:52 AM by Charlie Calvert's Community Blog

# re: Anders Hejlsberg on LINQ and Functional Programming

this guy is REALLY bas at explaining things

Saturday, February 03, 2007 5:50 PM by jim

# (new int[]{ 1, 2, 3 }).Map(x => x * x * x).Sum();

El lunes pasado 3 ninios miembros de una de las 50 familias seleccionadas para probar Windows Vista apretaron

Monday, February 05, 2007 2:53 AM by Marcelo Guerra's Blog

# Anders Hejlsberg on LINQ and Functional Programming

Anders Hejlsberg on LINQ and Functional Programming

Monday, February 05, 2007 1:05 PM by Luís Falcão

# Enabling better levels of multi-paradigm design adoption

There are a number of powerful design concepts and constructs available in programming languages like

Monday, February 05, 2007 5:44 PM by Marco Dorantes' WebLog

# C# stability long term

The unmaintainability of functional programming code (e.g., Lisp) is well known and is the primary reason why it should be avoided.  C# should have a few stable years of minimal changes to let it mature.  It would be more benefical to get a POSIX like standard for the generic parts of the .NET Framework (file IO, sockets, directory, date/time, timers, message passing, etc.) and then use that standard to build a thunk layer to replace Win32 with .NET framework only API calls.  This would greatly allow .NET code to be multi-platform (xbox 360, pda, desktop, cell phone, etc.).

Tuesday, February 06, 2007 6:36 PM by Steve

# re: Anders Hejlsberg on LINQ and Functional Programming

Sucks that this file is encoded as a WMV.  The only way I'll get time to see it or hear it is on my iPod on a commute.  I appreciate the need to promote Microsoft's digital file formats, but that doesn't really serve the need to promote knowledge...

Wednesday, February 07, 2007 2:13 PM by Scott Bellware

# re: Anders Hejlsberg on LINQ and Functional Programming

microsoft decided to remove my last comment, saying that the guy isnt very good at explaining things

Wednesday, February 07, 2007 6:04 PM by jim

# re: Anders Hejlsberg on LINQ and Functional Programming

Well, that was a mind expanding experience.

Friday, February 09, 2007 5:04 AM by Vince

# re: Anders Hejlsberg on LINQ and Functional Programming

Great introduction for the LINQ (the new tool),I think in future as we move to higher level of abstractions it leads to requirement of more memory space. Specially in embedded world you do not have luxury of multicores and tons of memory. if you can add memory optimization feature in this tool this will be definitely helpful for embedded folks or you should provide APIs to use external memories like SD cards etc...

Anyway from embedded programming point of view this may not be the right tool.

Tuesday, February 13, 2007 9:46 PM by Gurinder Singh

# re: Anders Hejlsberg on LINQ and Functional Programming

Thanks for this great interview!

Wednesday, February 14, 2007 10:47 AM by Mening over Lening

# re: Anders Hejlsberg on LINQ and Functional Programming

It seems that C# is going to be second C++ when adding all stupid stuff into it and making it unmaintainable language. Then Microsoft and Hjelsberg will present C# Hell (as a reincarnation of DLL Hell) and will introduce to us new excellent platform overcomming those issues that are now implemented into C#3.0 (or 4.0) - I'm loosing myself in MS versioning. Pretty good future for MS revenue stream...

Wednesday, February 14, 2007 1:27 PM by Peter H.

# re: Anders Hejlsberg on LINQ and Functional Programming

For those thinking that they are throwing too much stuff in C# you are missing the point.  This is an attempt to keep things generic so they don't have to throw tons of stuff in it.

And comparing this to DLL's and thunking and such is just so far off the mark it shows you are not coming close to understanding the issues in play.

Thursday, February 15, 2007 4:39 PM by HCH

# re: Anders Hejlsberg on LINQ and Functional Programming

I agree; several of the changes being made are an attempt to provide powerful functionality which is missing from C#. This is being done currently without major changes at all to the MSIL.

Friday, February 16, 2007 1:49 PM by misora

# re: Anders Hejlsberg on LINQ and Functional Programming

Wouldn't it have been much easier to work with the NHibernate team than to re-invent their software?  I'd say the same about NAnt and NUnit.  Your design is good, but now I have to go learn something new that, again, only applies to MS products.

Friday, February 16, 2007 5:10 PM by Connor Garvey

# re: Anders Hejlsberg on LINQ and Functional Programming

Great Show! LINQ is going to make development a whole lot easier.

Tuesday, February 20, 2007 2:56 AM by Mitch Wheat

# re: Anders Hejlsberg on LINQ and Functional Programming

AAaaarrrghhhh.

You guys just don't have any idea what you're doing to me!

I DIG this stuff, and I WANT it - but now I have to go back to clunky old DALs and boiler-plate code. Or dig my way through a hundred web pages to try and work out which generator is going to do the stuff I want!

Is Linq going to replace Stored procedures? I doubt it. But if it replaces 90% of the one-table CRUD stuff, bring it on!

Oh, and thank you to the person at Microsoft who decided to PAY people to tell us about all this. There are other companies who get US to pay to be told!

Thursday, February 22, 2007 5:15 PM by Ben Simkins

# re: Anders Hejlsberg on LINQ and Functional Programming

thanks, i appreciate c# team's efforts, c# is being teremendously developed we can not say no this won't make our knowledge mature but we have to keep up with the language powerfull features, i really fall in love with c# 2005, it's very RAD, very productive, we still want more support for mobility .... other platforms are waiting fot .net programmers too, linux is the most important one of these platforms

Saturday, February 24, 2007 7:15 PM by ahmed shalaby

# re: Anders Hejlsberg on LINQ and Functional Programming

Definition of LINQ: C# syntax wrapped around Yield Prolog. See: http://lambda-the-ultimate.org/node/1732

Sunday, February 25, 2007 11:07 AM by Robert Howard, Phoenix, Arizona

# conceptually LINQ

I just can't seem to get enough of LINQ (Language Integrated Query) - if this is new to you, then it's

Sunday, February 25, 2007 12:49 PM by Contagious Curiosity

# re: Anders Hejlsberg on LINQ and Functional Programming

" > < "

Gah!

Don't do video when audio will do! Esp. when you (ms junkies) haven't figured out how to do video on the web my god!

terrific job of artificially handicapping your message and narrowing your audience.

why do i keep coming here?

Monday, February 26, 2007 4:05 PM by emjayess

# re: Anders Hejlsberg on LINQ and Functional Programming

Great Interview, LINQ is Great Stuff, but i  wonder if this is not too difficult for mainstream (noob) programmers. So will it really be come a hype? It really is a shift of paradigm, a way of thinking, how to solve the riddle. For every day problems people will stick to solution strategies learned long ago.

For me its a flashback, but then, my first programming language was lisp :) (On a MacIntosh!)

Tuesday, February 27, 2007 4:06 PM by Dwarka

# February CTP Now Available

The February CTP (aka as the March CTP) is now available for download as a regular install and as a virtual

Wednesday, February 28, 2007 7:44 PM by Charlie Calvert's Community Blog

# Community Convergence XXII

Community Convergence in a nutshell : The March CTP for Visual Studio, creating Art with LINQ, videos

Friday, March 02, 2007 3:31 AM by Charlie Calvert's Community Blog

# re: Anders Hejlsberg on LINQ and Functional Programming

Great interview. I'm sure having a typechecked SQL interface to whatever will be very useful in many applications.

I really wonder why lambda expressions are seen as a key enabler though. In my opinion they mostly contribute to unreadable code when they contain a lot of logic. And even when they don't, a function name is often a lot clearer than embedding statements directly in a function call(or select statement in LINQ).

I'd have preferred the compiler just recognized pure functions automatically during compilation, flagged them as such, stored the expression tree in the executable along with(or in place of) the MISL code and used the delegate syntax instead. Such an approach would be more in line with what is required when you want to enable the runtime to be able to split up the functional code and divide work on a multi-processor system(I'm talking generally here, not just queries).

In that case you'd really want to be able to call other pure functions, possibly linking to other modules and the like.

I guess we might end up with DAGs as our executable format in the end.

=)

Friday, March 02, 2007 9:55 AM by Olav Kalgraf

# re: Anders Hejlsberg on LINQ and Functional Programming

Hi Charlie!

thanks for this interview.

What's that C# book on the shelf?

Cheers,

Luiz

Monday, March 05, 2007 10:01 AM by Luiz

# re: Anders Hejlsberg on LINQ and Functional Programming

Great vid, looking forward to linq

Tuesday, March 06, 2007 11:49 AM by Gill Bates

# re: Anders Hejlsberg on LINQ and Functional Programming

It is a good interview.  Anders is a likable guy, but I think he stopped short of calling LINQ what it really is: Microsoft Embedded Lisp.  Isn't is amazing how excited everyone's becoming over concepts that were developed in 1958, and have been in constant use since (but, unfortunately, not owned by Microsoft).

Thursday, March 08, 2007 8:32 PM by Jeff Hartzell

# re: Anders Hejlsberg on LINQ and Functional Programming

Functional programming has existed far longer than C++. Why Microsoft keeps bringing somethings old but bragging they are "New Paradigms"? I have been using Scheme for a while and believe functional way of programming is not something like moving from C to C++ (OOD). It is a whole lot more difficult. First of all, can you write a program without ANY variables? If you feel comfortable with that, then there you go...

Friday, March 09, 2007 2:02 PM by Carlo Chung

# re: Anders Hejlsberg on LINQ and Functional Programming

Anybody else think this is a bad thing? I like having multiple development environments. The database has to do some very different things than the application layer, so it's best to keep those things specialized. I don't like this idea of munging everything into one language. We've already got enough problems with ASP programmers making SQL calls when they don't know what the hell they are doing... why make that situation worse and make it even easier to abuse the database?

Friday, March 09, 2007 4:26 PM by Jasmine

# February/March Orcas CTP Now Available

February/March Orcas CTP Now Available

Monday, March 12, 2007 2:45 AM by naive1010

# re: Anders Hejlsberg on LINQ and Functional Programming

just an uneducated opinion from an individual with no formal training in programming who has have never worked a single day as a programmer for a company (other than at my kitchen table).

Think about "Blade Runner" and the scene where Harrison Ford is using verbal commands to guide the futuristic  photo\imaging software program (pan left, zoom in 400 %, stop, pan right, etc).

The real future of computer language development is aimed at end user's who are not programming geeks.

For a Financial analyst/bean counter it might be as Anders suggests (with a little help from our geek computer friends): fetch these product annual revenue streams from the DB. Now apply these hypothetical direct costs for my "product objects" against them and give me as a 1 dim-array result set of contribution margin each yaer. Now for each result year, subtract these matching annual fixed overhead projections from this xml strore, then give me the MIRR from the resulting modified array of projected profit streams before income tax.

My point is,  to unleash the real power of programming language, you (programmers) place the ability to query and massage the data with

detective (Blade Runner) or bean counter, or chemist or physicist or actuary.

Friday, March 16, 2007 3:11 AM by lotusweb

# re: Anders Hejlsberg on LINQ and Functional Programming

People usually thing that functional programming is very obtuse and only maths-types (like me!) find it comprehensible

However, things are not always as they seem.

Some years ago a colleague of mine did some stats on a computing MSc course that took students from a mix of science and arts/huanities background.

As expecetd the arts studenst were not as good as the tech students at procedural programming and even worse at circuits, logic and electronics.  However, counter to expectations the arts/humanities students did better at the functional programming than those with a science/engineering background ... it seems procedural thinking maybe somthing you learn as an engineer, but is not so natural.

Saturday, March 17, 2007 2:49 PM by Alan Dix

# re: Anders Hejlsberg on LINQ and Functional Programming

Please provide the Hejlsberg's LINQ approach

on msdn2.microsoft.com as an article, if not

more than the transcript of the video? And

more articles on C# integrated functional

programming.

Best wishes,

Petri V. Ticklén

deixia.com

Saturday, March 17, 2007 6:34 PM by Petri V. Ticklén

# re: Anders Hejlsberg on LINQ and Functional Programming

"Some years ago a colleague of mine did some stats on a computing MSc course"

Did your colleague publish the findings? If so, where can the general masses read about this study?

(i.e. how it was formulated, demographic selection criteria...etc)

Monday, March 19, 2007 12:22 PM by Jason Daniels

# re: Anders Hejlsberg on LINQ and Functional Programming

Man, I could listen to Anders talk all day about programming.  I'm really excited for LINQ to come out.  I think it is the greatest advance in software development that we've seen in a while.

Friday, March 23, 2007 5:42 PM by Lance Fisher

# re: Anders Hejlsberg on LINQ and Functional Programming

This is quite an interesting idea, I will investigate Linq and see if it is as flexible and easy as he says.

Friday, March 23, 2007 9:05 PM by DoctorFu

# re: Anders Hejlsberg on LINQ and Functional Programming

an opinion from one opinionated ...

I disagree with the evolution and constant development of new "Languages" and "techniques". They are infact making lives harder, constantly trying to learn new technologies, configurations, integrations, best practices and LANGUAGES is a constant struggle and challenge. Don't "They"  understand that after many years of a particular techniques, for example , Data Access (since is the subject at this point) creates a fully evolved understanding and technique, which many generations of programemrs understand, which in turn also has it's complimentary tools (Thet everyone knows about) which are developed for the ease and facilitiation of this well Oiled and understood technique.

Then "They" bring out a new "Way" LINQ for example that some wll know, some will now, only after some more headache whhich achieves the status quo ...

Although i do agree with developing the infrastructure, the platforms that will facilitiate stabilty of any application ... and minor evolutionary iterations on current practices that won't drasticall "Change the way we work./think?"

I think any "Technology" being develoepd should ask itself, "Is this really required ?"

Tuesday, March 27, 2007 12:38 PM by Aftab Adam Khan

# Anders Hejlsberg on LINQ and Functional Programming

Ex-Borlanders and current Microsofties Anders Hejlsberg and Charlie Calvert discuss LINQ and functional programming in

Wednesday, March 28, 2007 12:58 PM by Craig Stuntz's Weblog

# re: Anders Hejlsberg on LINQ and Functional Programming

The talk was good indeed.

you seemed quiet amused by all those hand movements that Anders was doing. lol

Thursday, March 29, 2007 4:44 PM by I saw it

# re: Anders Hejlsberg on LINQ and Functional Programming

What will become of all the homeless database programmers?

Wednesday, April 18, 2007 7:01 PM by Dave Bartlett

# Napi linkek #1

Hejlsberg videó a funkcionális programozásról Charlie Calvert blog: http://blogs.msdn.com/charlie/archive

Monday, April 23, 2007 12:16 PM by ex2blog

# Functional programming good for SQL and set based operations but bad for most everything else

I'm looking forward to using functional programming/linq in a select few very special cases for my projects.  I am definitely not looking forward to living with linq code from other developers given the propensity of recent college graduates to force the use of a language feature, library or pattern into a project where it does not fit.  That is not a new issue given that most of those mis-applications of new technologies/methods is resume driven development.  

Monday, April 30, 2007 10:50 AM by Steve

# Using LINQ for Computational Genomics

I’ve been playing around a bit lately with computational genomics (I’m doing a project for my parallel

Tuesday, May 08, 2007 1:49 AM by Rick Byers

# re: Anders Hejlsberg on LINQ and Functional Programming

I agree with C# Hell comment. C# is my favourite language but with those additions its syntax is becoming ugly. Please keep C# as a pure object oriented language as it is.

Why not implement a new language with those new functional features and call something else. Or why not take F# and use it ?

Thursday, May 10, 2007 5:07 AM by Can Erten

# re: Anders Hejlsberg on LINQ and Functional Programming

Well, Anders, it took you long enough. All the power has been there since the late 60s or early 70s pent up in isolated applications. I was wondering when you'd get to this and help us make everyday use of it, like you did with OO and Visual Programming. I did have the honor of shaking your hand and thanking you for that a few years back. Now it looks like you and your friends have done it again. Again, Thanks and Congratulations! :-)

Thursday, May 10, 2007 10:59 PM by Leo Bellew (EDS)

# re: Anders Hejlsberg on LINQ and Functional Programming

This is a great interview, for all newbies to the functional programming world and of course LINQ. I admire Anders Hejlsberg. Thanks Charlie Calvert for a very good interview on a difficult topic.

Friday, May 11, 2007 9:07 AM by Senthil

# re: Anders Hejlsberg on LINQ and Functional Programming

I think it's a good idea of Microsoft. But, they need start to think about versioning, because everytime someone release a new version, for example, in the middle the last year Microsoft releases C#2.0, and now, there is a C# 3.0 (or C#4.0)...

Friday, May 11, 2007 12:39 PM by Marcelo Cruz

# re: Anders Hejlsberg on LINQ and Functional Programming

I see the need for LINQ, but at the same time I understand the desire to keep C# "pure".

But I've got to say, that these things will improve things if used sparingly.  That's the thing people need to understand.

What it all comes down to is teaching programmers when things are acceptable, and when they are abusive.

When performance is key, are you going to write LINQ everywhere?  No.  But would you use NHibernate, or (insert O/R mapping library)?  No.  You're going to write a Stored Proc.

But, if you guys are into using .Net as a scripting language you could see how very cool these things could be for the person using your scripting environment.  How simple it could make certain things, allowing people to write anon types and LINQ statements for simple functions because they simply have no need to write this huge object library, with generic objects to carry their company forward for 5-10 years.

In the end it all comes down to making sure people understand when and when not to do these things.  The danger is the same with or without these additions.  There is just a group of programmers who are never going away.  If you give them a quick and dirty way to do something be it Copy/Pasting 100 lines of code 10 times over only to change 1 line vs. the people who write something as short as humanly possible.

In any case, it's always a choice.  If you don't want to use them, don't.  Because all the implementation is encapsulated, anything someone does using one of the new paradigms shouldn't effect anything you do.

What I do like, is the fact that by integrating these things into the language, it means something I consider very important.  Allowing the compiler to become aware of things like, the structure of your database, means all your LINQ statements can be checked at compile time.  Where as, their Ad-hock SQL equivalent wouldn't be checked at compile time.

Personally I don't plan to use Linq for anything other than dirty side projects that are weekend things.  For enterprise applications I don't plan to let any of my programmers use most of the new things in C# 3.0.  For example "var".  Which is almost essential for LINQ to be non-annoying when constantly changing queries.  But I wouldn't let them start checking in code with var's declared for every variable, just because they are lazy.  And as cool as Lamda expressions are, they just make things a pain understand if you didn't write it.  So, as long as people understand these things, it should be fine.

I hope.

Tuesday, May 15, 2007 4:07 PM by Nick Darnell

# re: Anders Hejlsberg on LINQ and Functional Programming

It was very interesting to watch this video. Anders has a very nice way of explaining even the most difficult of concepts, by making it concise and simple to understand. I do agree that its about time we started to raise the level of abstration in programming languages. Functional programming and Lambda expressions will receive a grand welcome in that sense. We have all been programming at a very low-level( even though we are using Java or C# or whatever object-oriented langs) by excruciatingly specifying in code the "how" of things instead of the "what" that we want to achieve, therby producing very highly unmaintainable code. The semantics is drowned in the "how".

One thing, of course, needs to be realized, though. By including capabilities such as Lambda expressions and constructing expression trees for deferred execution we are also loosing a bit of the strong type checking. I guess there is always a tradeoff for such power that functional programming and lambda expressions bring to any language, like for example C#.

cheers,

jay

Tuesday, June 19, 2007 8:53 AM by jayagopi jagadeesan

# Videos

I'm trying to pull together lists of available C# videos. I'll be working on this list over time, but

Tuesday, June 19, 2007 2:22 PM by Charlie Calvert's Community Blog

# re: Anders Hejlsberg on LINQ and Functional Programming

Is LINQ project still alive? Is it supported on the .net 3.0   and 3.5?

Thank for your help

Reiner

Wednesday, June 20, 2007 9:48 AM by Reiner

# re: Anders Hejlsberg on LINQ and Functional Programming

How do I download linq?

I have downloaded Bling and it says I need linq, but it is NOT obvious where this software is?

thanks

Adrian

Thursday, June 21, 2007 6:25 AM by adrian curley

# re: Anders Hejlsberg on LINQ and Functional Programming

Two words: expression templates.

Monday, June 25, 2007 5:54 PM by Johan

# re: Anders Hejlsberg on LINQ and Functional Programming

This will be a great boost to the existing functionality!!! I'm sure it will be a hit

Vishal Khanna

Friday, June 29, 2007 9:32 AM by dotnetUncle

# re: Anders Hejlsberg on LINQ and Functional Programming

Main point: LINQ gives you cake you can have and eat.

Some themes: (my paraphrasing, see the video for yourself to form your own impression)

LINQ deals with the problem of separate and programming areas: one for data (includes SQL and T-SQL; XML and XSLT/XPath; and other arbitrary data, like the properties of objects, etc.) and the other for program execution that you see in imperative languages (C#, VB, script, etc.)

LINQ helps to merge the two elevating query operations in C#, for example, to a rock-solid, built-in feature, like the way 'if' statements are now.You write queries into your code as "Lambda expressions". (Sounds sort of like how XPath statements look abbreviated syntax.)

Lambda expressions then work in your code as delegates: you can reference them; but what's very interesting is that the IDE/compiler can use them too. One example, because each Lambda expression can be interpreted immediately, the compiler will tell you right away if table names are not spelled correctly in your code. Another example, all your data expressions can be displayed on a tree for easier inspection, etc. I might be missing some of the finer points but what do you want from a comment on a Web page, for cryin' out loud. Ahem.

Functional programming aspects of LINQ take full advantage of concurrent execution. In practice, this means that all other things equal, LINQ code runs faster on a multiprocessor machine than non-LINQ code.

My question for Anders. When it became apparent your prototype was an instance and not a class, was this type of major finding part of you envisioned? More to the point, was it part of your original development plan to signifcantly broaden the scope of your project?  

Thursday, July 05, 2007 12:55 PM by some v-dash tech writin' grunt

# re: Anders Hejlsberg on LINQ and Functional Programming

Very good video. Looking forward to the release. I hope that there will be an easy and cost-effective migration from previous releases.

Wednesday, July 18, 2007 9:46 AM by Lal Jose

# re: Anders Hejlsberg on LINQ and Functional Programming

Great overview and a superb way of making the concepts understandable very quickly. I took a whole year of functional programming at university (ML) and all the lambda stuff and I didn't get half as much out of it as in this half hour. Thanks!

Tuesday, July 24, 2007 7:38 AM by Gregory Bleiker

# Learn LINQ in relation to TSQL, Orcas and many more

In continuation to my post on Linq-TSQL I was drowing on web to know more about LINQ and how-to in relation

Wednesday, July 25, 2007 6:17 AM by SQL Server 2008 - CTP (SSQA.net)

# re: Anders Hejlsberg on LINQ and Functional Programming

BTW great Video. I have played with Blinq after teched last year. What is the upgrade path for Blinq apps that use dlink with the impending release of Linq? Are there new paradigm changes for the type checking? Is this technology packaged up with Linq or does this have to be generated by lambda expressions for self checking programs using crazy syntax? Does this make the Xlinq language deprecated?

Friday, August 03, 2007 12:30 AM by Thomas Garai

# re: Anders Hejlsberg on LINQ and Functional Programming

I would like to explore these concepts and put them to use before I comment on LINQ.  But very good video, Thanks alot

Jasmine, if ASP Programmers have trouble getting queries to work then they need more training.

Thursday, August 09, 2007 9:31 AM by Jeff

# re: Anders Hejlsberg on LINQ and Functional Programming

Hi This is Narayanan from chennai, i went through the document of XLinq, but how do i try that do i need to download. Currently i'm having Visual studio 2005, please guide me in this, because i wanted to learn this technology.

Saturday, August 18, 2007 11:00 AM by Narayanan Dayalan

# re: Anders Hejlsberg on LINQ and Functional Programming

Its great stuff. However, the interview portrays as if Anders Hejlsberg is inventor of O/R mapping and he started a perticular way and then came up with a break through in software technology.

I am using Linq myself and its great stuff and please take it like a constructive criticism. Its not invented by Anders or Microsoft. Microsoft provided only one nice implementation of the concept already out there.

Thursday, August 30, 2007 2:57 PM by Rakus

# re: Anders Hejlsberg on LINQ and Functional Programming

Let me see if I've got this correct. We had a handful of simple commands. Through in code comments they became modules. These became functions.

Now, sometime in the 80's, to add a gui to our apps, we're given a collection of thousands of functions.

This became too much, so we abstracted it down to hundreds of functions. Now we've got a gui.

In the data realm, we aggregrated data into a single form for our purpose. We then were told to aggregrate data in any form. So we created a bunch of new functions, err..modules, err...objects.

Now a new layer of abstraction to eliminate some of the functions we've just finished writing.

And perhaps a neat feature would be to simplify the syntax while we're at it.

At some point, I'd like to finish my app. HAve it run for awhile and not have to scrap it for the sake of a new 'paradigm'. The app should at least be able to survive long enough to recoup it's development cost. I'd like to add new features to my app that my customers want not what IT dictates.

And lastly, I'm tired of being told that my old shoes are brand new.

Sorry, about the rant. This discussion is only the last straw. not the entire camel

Wednesday, September 26, 2007 10:11 PM by Fred Goodrum

# F# to move out of MSR?

Some interesting news emerging from the Visual Studio and F# team appears that language appears to moving

Thursday, October 18, 2007 10:04 AM by Darth Bundy

# re: Anders Hejlsberg on LINQ and Functional Programming

I am always amazed by how Anders explains new concept, deep but somehow easy to digest.

Saturday, October 20, 2007 1:18 PM by Gunady

# re: Anders Hejlsberg on LINQ and Functional Programming

Gunady,

Yes, Anders is a great communicator. He works hard on his presentations, and avoids a lot of the silly tricks that other presenters use to try to spice up their presentations. We can probably all learn from what he does.

- Charlie

Saturday, October 20, 2007 1:29 PM by Charlie Calvert

# A natural maturing

A very good presentation indeed by Anders. I've been in systems development for 30 yrs and seen similar steps (apart from minor differences in terminology and detail) in the development of quite a few programming languages: major upgrades brought in a more "declarative" style of programming, adding high-level functions (often, these are parameterized). Composability and deferred execution offers the SQL/OLAP/MDX-like style of expression that has been unfortunately considered a second-order issue by the object community before.

This in turn makes it possible to write optimizing compilers as the app code tells the compiler the big picture rather than just low-level imperative-style detail.

To the app. developer, this is more about level of abstraction and about useful expressive power than about programming paradigms.

Many thanx for a comprehensible presentation of a complex world!

Sunday, November 04, 2007 11:32 AM by Milan Kratochvíl

# re: Anders Hejlsberg on LINQ and Functional Programming

A terrible loss for borland / codegear

Monday, November 05, 2007 2:09 AM by duleep

# re: Anders Hejlsberg on LINQ and Functional Programming

Hey hey hey! Long time no talk Charlie :) I can see you're doing great! The video is AWESOME and helps getting to the point right away. I was trying to understand the big picture here and this provided me with quick and high level answers to essentially all the "doh?"(s) I was having. Thanks again!

Friday, November 09, 2007 9:37 PM by Alessandro Federici

# re: Anders Hejlsberg on LINQ and Functional Programming

I can't comment on LINQ yet I am only just about to review it, however I would like to comment on the growing cluttering of C# with needless new keywords. One of the benfits of C type languages is there commonality and small subset of keywords. Please stop cluttering it: anonymous methods, automatic properies, automatic constructors it will begin to look like COBOL. These keywords are just for lazy coding and I beleive save little time, keep the language clean and small

Tuesday, November 20, 2007 6:14 AM by Ian McInnes

# re: Anders Hejlsberg on LINQ and Functional Programming

I am working with linq in SQL 2005, I need know if LINQ work with ORACLE???

Thanks..

Wilmer Garzón

Bogotá, Colombia

wgarzon@gmail.com

Thursday, November 22, 2007 9:27 AM by Wilmer Garzon

# re: Anders Hejlsberg on LINQ and Functional Programming

Great interview.. it helps to clear some doubts that i have because I saw an online conference about the features of VS 2008 and talk about LINQ, but with this information is better.

tks

Thursday, November 22, 2007 1:38 PM by ale mason

# re: Anders Hejlsberg on LINQ and Functional Programming

Thanks very mach.

It's so helpfull to me.

~~Merry Christmas, Best wishes to you~~

Wednesday, December 12, 2007 12:07 AM by gis

# 书讯 -- 一致化对象与数据的存取 LINQ

2007年06月20日 23:01:00 何谓 LINQ程序语言随着时间演进,一再沉淀经验与抽象后,以简练直观的语法解决具有共通特征的各式问题。Visual Studio 2008(程序代码名称为 Orcas)、C# 3.0 与 VB.NET 9.0 后将支持新的语法 Language Integrated Query(LINQ),想一体解决多样的资料存取。它是由 Anders Hejlsberg 所主导。Anders 曾打造了 Turbo Pascal、Delphi、Visual J 、C# 等叫好叫座的产品,单凭这位杀手应用创造者的眼光,LINQ..

Thursday, December 13, 2007 11:09 PM by mengyao.chen

# 书讯 -- 一致化对象与数据的存取 LINQ

何谓 LINQ程序语言随着时间演进,一再沉淀经验与抽象后,以简练直观的语法解决具有共通特征的各式问题。Visual Studio 2008(程序代码名称为 Orcas)、C# 3.0 与 VB.NET 9.0 后将支持新的语法 Language Integrated Query(LINQ),想一体解决多样的资料存取。它是由 Anders Hejlsberg 所主导。Anders 曾打造了 Turbo Pascal、Delphi、Visual J 、C# 等叫好叫座的产品,单凭这位杀手应用创造者的眼光,LINQ..

Friday, December 14, 2007 5:12 AM by techweb

# 书讯 -- 一致化对象与数据的存取 LINQ

何谓LINQ程序语言随着时间演进,一再沉淀经验与抽象后,以简练直观的语法解决具有共通特征的各式问题。VisualStudio2008(程序代码名称为Orcas)、C#3.0与VB.NET...

Sunday, December 16, 2007 9:15 PM by csdnexpert

# Remain Calm

In order to solve a complex problem, you need to stop thinking at the level that created the problem in the first place. You need to think at a level much higher.

Acronyms, syntax, paradigms, frameworks... These are all illusions. The problem is, all too many of you spend your life in the matrix of these illusions. Try this paradigm: do more, do more fast, do more amazing, do more now, analyze.

Let's allow the eccentrically brilliant low-level thinkers do what they do best, so we can increase our capacity, so 20% of our effort amounts to 80% of productivity. Or better yet, so that 1/1000 of our effort amounts to 99.99% of our productivity.

Think of what would become of us if we could produce solutions to problems exponentially faster, with less manpower, without having to spend years learning the low-level implementations that get us nowhere in the long-run.

Compound the efforts of a virtual community. The best inventions are merely improvements to those already exist.

To the complainers -what did you do today?

Sunday, January 06, 2008 3:37 AM by Francesco Franconi

# re: Anders Hejlsberg on LINQ and Functional Programming

Very informative video indeed. Functional Programming / Declarative Programming Approach would certainly help developers focus on problem at hand better by offering abstraction & smart way to code.

Looking fwd to using LINQ...

Saturday, January 26, 2008 4:13 PM by Chinmay

# re: Anders Hejlsberg on LINQ and Functional Programming

Francesco Franconi - are you in Software or Marketing? I have never read anything so full of glib, cliche-ridden tripe in a while.

Friday, February 01, 2008 7:49 PM by Jonathan Hoult

# re: Anders Hejlsberg on LINQ and Functional Programming

great video!! it works on my 360 too..

is there an mp3 version available ?(as this is a purely audio-based interview)

Tuesday, February 05, 2008 4:42 PM by Martin Lovick

# re: Anders Hejlsberg on LINQ and Functional Programming

Is this available in an open format so we can actually watch the video?

Thursday, March 13, 2008 11:32 PM by Joseph Anders

# Anders Hejlsberg Film Festival: The C# and other VSL Teams at the Movies

It's a bit rainy and snowy today in Redmond. What an excellent time to curl up by the fire and watch

Saturday, March 29, 2008 2:09 AM by Charlie Calvert's Community Blog

# re: Anders Hejlsberg on LINQ and Functional Programming

The complete programming community is just now getting sold on Object Oriented programming.  How is a divergence to Functional programming going to be accepted.  This is obviously the long term goal.  Does it really work hand in hand with OO programming?  I don't think that it really does.  Do we all really want to be programming in a LISP like language 5 years from now.

Wednesday, April 23, 2008 2:29 PM by BobW

# re: Anders Hejlsberg on LINQ and Functional Programming

LINQ is awesome -- only for developers.. I recently converted a .NET 2.0 WinForms app to using LINQ. I was able to eliminate TONS of code and stored procs.  Nice for me.. shitty for end users.. the app is now MANY times slower.  LINQ is RAD and also !RAD -- horrible for production..  Ill prototype stuff with LINQ definately but I will still use old skool data access.

Sunday, April 27, 2008 2:40 AM by Someguy

# re: Anders Hejlsberg on LINQ and Functional Programming

I've been programming for 30 years, starting with COBOL, RPG, and IBM 360 Assembly language. I remember when it was hard to get programmers to adopt structured programming techniques. Since the release of the IBM PC and MS DOS and after Windows 3.0 began to rule I've seen many bets against Microsoft that failed. I remember smart programmers who questioned whether LANS would be useful - when they already were. I remember when many questioned OO and whether it really meant anything. Functional programming is probably the future and it's not that difficult to learn Linq, at least, so you're really taking a chance if you let it pass you by. And to the guy who thinks Anders is bad at explaining - you better find another line of work or learn English better.

Wednesday, April 30, 2008 12:17 AM by Richard Waddell

# re: Anders Hejlsberg on LINQ and Functional Programming

Wow, never realized how many programmers are Luddites.

Wednesday, April 30, 2008 12:21 AM by Richard Waddell

# re: Anders Hejlsberg on LINQ and Functional Programming

Gotta comment one more time - to all the whiners about changing paradigms and versions and yada, yada, yada. Shut up or find a different line of work.

Finding info is a breeze now compared to even ten years ago. And for those who see these kind of changes as analogous to the bloat of C++, you aren't paying attention. Perversely, I bet some of you bitched about not doing your own garbage collection anymore the same way assembly programmers didn't want to give up control. They at least had the excuse of slow processors.

Fine with me, I wouldn't mind programming until I'm 90, it's just now starting to get fun.

Wednesday, April 30, 2008 12:36 AM by Richard Waddell

# Sadness

It's too bad so much energy is consumed trying to whitewash the real issue of mismatch between the program domain and the data[base] domain.  Someday this mismatch will be solved and these approaches will be recognized as a diversion.  

I would have preferred to see the .Net environment / c# support Domain Specific languages instead of overloading the language with more complexity and gee-whiz features.  Support of DSL would allow me to chose which solution best solves the issue at hand.

Thursday, May 01, 2008 8:22 PM by pvns

# re: Anders Hejlsberg on LINQ and Functional Programming

Wow, I never realized how programmers who sound so smart can be so dumb. Glad I didn't listen to the ones who thought Object Oriented Programming was a fad.

Friday, May 23, 2008 9:30 AM by Richard Waddell

# re: Anders Hejlsberg on LINQ and Functional Programming

This was a very good video and shows why Microsoft are market leaders.

The only issue I have with LINQ is that all the programmers at my company are thick, hence if they upgraded to c# 3 then they would not allow me to use these features.  

Saturday, June 28, 2008 10:27 AM by Rafeeq Jamal

# Software Engineer

.net merges the world of memory “non-management” and objects and pretty much solves a lot of rapid application development issues.   Even data access is basically simple when done right in .net.

Instead of creating applications, whole groups of highly paid developers spend time hiding proper language use with what can be described as a “.net Bean”.

You then spend your time debugging the tool instead of getting any work done, or learning data access the way .net intended it.  Which, by the way is pretty easy, if you ask me.

Why programming managers get caught up in these things that eventually ruin the language with overhead evades me.  

You have programming hiring managers asking questions about linq instead of whether you can get a running application in the market.

Dave Carlson

Thursday, July 10, 2008 5:10 PM by Dave Carlson

Leave a Comment

(required) 
required 
(required)