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

Comments (123)

  1. You’ve been kicked (a good thing) – Trackback from DotNetKicks.com

  2. Tom Kirby-Green says:

    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?

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

  4. 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

  5. Alan Bourke says:

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

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

  7. 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.

  8. Ala qunaibi says:

    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.

  9. john mcfetridge says:

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

  10. Brett Nieland says:

    Great interview on a geat subject.  Thanks folks!

  11. 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.

  12. William Stacey [C# MVP] says:

    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 http://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.

  13. a. tejano says:

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

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

  15. gelserf says:

    someone have a text of this interview?

  16. Robert says:

    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++.  

  17. When is the next CTP? says:

    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.

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

  19. jim says:

    this guy is REALLY bas at explaining things

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

  21. Anders Hejlsberg on LINQ and Functional Programming

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

  23. Steve says:

    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.).

  24. 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…

  25. jim says:

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

  26. Vince says:

    Well, that was a mind expanding experience.

  27. 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.

  28. Thanks for this great interview!

  29. Peter H. says:

    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…

  30. HCH says:

    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.

  31. misora says:

    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.

  32. Connor Garvey says:

    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.

  33. Mitch Wheat says:

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

  34. Ben Simkins says:

    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!

  35. ahmed shalaby says:

    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

  36. Robert Howard, Phoenix, Arizona says:

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

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

  38. emjayess says:

    " > < "

    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?

  39. Dwarka says:

    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!)

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

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

  42. Olav Kalgraf says:

    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.

    =)

  43. Luiz says:

    Hi Charlie!

    thanks for this interview.

    What’s that C# book on the shelf?

    Cheers,

    Luiz

  44. Gill Bates says:

    Great vid, looking forward to linq

  45. Jeff Hartzell says:

    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).

  46. Carlo Chung says:

    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…

  47. Jasmine says:

    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?

  48. naive1010 says:

    February/March Orcas CTP Now Available

  49. lotusweb says:

    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  photoimaging 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.

  50. Alan Dix says:

    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.

  51. 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

  52. Jason Daniels says:

    "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)

  53. Lance Fisher says:

    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.

  54. DoctorFu says:

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

  55. Aftab Adam Khan says:

    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 ?"

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

  57. I saw it says:

    The talk was good indeed.

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

  58. What will become of all the homeless database programmers?

  59. ex2blog says:

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

  60. Steve says:

    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.  

  61. Rick Byers says:

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

  62. Can Erten says:

    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 ?

  63. Leo Bellew (EDS) says:

    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! 🙂

  64. Senthil says:

    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.

  65. Marcelo Cruz says:

    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)…

  66. Nick Darnell says:

    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.

  67. 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

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

  69. Reiner says:

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

    Thank for your help

    Reiner

  70. 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

  71. Johan says:

    Two words: expression templates.

  72. dotnetUncle says:

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

    Vishal Khanna

  73. 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?  

  74. Lal Jose says:

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

  75. Gregory Bleiker says:

    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!

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

  77. Thomas Garai says:

    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?

  78. Jeff says:

    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.

  79. Narayanan Dayalan says:

    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.

  80. Rakus says:

    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.

  81. Fred Goodrum says:

    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

  82. Darth Bundy says:

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

  83. Gunady says:

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

  84. ccalvert says:

    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

  85. 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!

  86. duleep says:

    A terrible loss for borland / codegear

  87. Alessandro Federici says:

    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!

  88. Ian McInnes says:

    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

  89. Wilmer Garzon says:

    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

  90. ale mason says:

    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

  91. gis says:

    Thanks very mach.

    It’s so helpfull to me.

    ~~Merry Christmas, Best wishes to you~~

  92. mengyao.chen says:

    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..

  93. techweb says:

    何谓 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..

  94. csdnexpert says:

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

  95. 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?

  96. Chinmay says:

    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…

  97. Jonathan Hoult says:

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

  98. Martin Lovick says:

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

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

  99. Joseph Anders says:

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

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

  101. BobW says:

    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.

  102. Someguy says:

    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.

  103. 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.

  104. Wow, never realized how many programmers are Luddites.

  105. 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.

  106. pvns says:

    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.

  107. 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.

  108. Rafeeq Jamal says:

    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.  

  109. Dave Carlson says:

    .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

  110. Adam says:

    That last bit about concurrent programming was pretty interesting to me.  If I read him correct they are talking about defining some new functional primitives which will allow programmers to specify a contract which will (under the hood) be run in a concurrent fashion.  I had assumed that concurrent programming was going to happen somewhat differently, but it does sound interesting and we’ll have to see what transpires.  The original goal of integrating the SQL world and C# one was a good one IMO SQL could stand some improvements.  It is interesting that this work led them down the rabbit hole toward functional programming.

  111. I am a wanna be programmaer.  I have been in law enforcement for 26 yrs. on two continents.Seen enough. Been playing with html and flash since 1997.  Truley intrested in digging my heals in meaningful training. Unforntalely my missions, although for the good of the USA, were at my cost.My son in on his way to his 2nd tour in Iraq today, SF w/Air Rorce, Staff SGT,J-TAP. Nonetheless, highly interested in programming as my new career after I regtire in 3.8 yrs.  Any suggestions from a wise man as yourself would be interesting to hear.Although funds are extremely to a minimum.  Thank you kinkly for your time to read this.With all gratitiude, Gavin M. Naquin,Master Police Officer,Greensboro Police Department,Greensboro Police Department, Greensboro,NC 27402,332-202-2723

  112. I apoplogize,but I did not record my phone number correctly. It is 336-202-2723. Email: gmnaquin@naquin.org

  113. varma.bt says:

    Thank you sooooo………much for sharing this great vedio…

  114. harry says:

    I’ve played with LINQ and my initial reaction was very positive and it is fine for small pet projects, but I will never LINQ larger,  scalabale, performance intensive applications. LINQ is designed for lazy and dumb developers who take shortcuts like wizards etc to write their SQL codes. You have to ask yourself, is SQL/ADO.Net really that hard to use?

  115. D.A says:

    varma.bt,

    I would think the whole purpose is to market a new product as when you buy a new car with new gadgets…i.e. mp3, harddrive etc…And I hope that you agree ….for those who have to develop low-level complex tier solutions it is suggested to stick with the most robust product.

  116. rohan says:

    The download link does not work.

  117. leon says:

    hi,today i want to download your linq videos but it does not work,can you mail me some docs ?

    thanks!

    my e-mail:wengyuli@gmail.com

  118. leon says:

    hi,today i want to download your linq videos but it does not work,can you mail me some docs ?

    thanks!

    my e-mail:wengyuli@gmail.com

  119. Sam Jones says:

    I have been using LINQ in my past three ASP.NET applications, and I can’t believe that people are still using plain ol’ADO for their database calls.  It has sped up my development tremendously.  Keep up the great work!

  120. steve says:

    This Linq is all good and well if coding for design time but how would I set attribute information at runtime. How would I change the

    System.Data.Linq.Mapping.DatabaseAttribute at runtime for example?

    If anyone has some source code or suggestion email me at steve_44@inbox.com

  121. Rabo says:

    Looking back on this from 2010, I have to say all of the LINQ nay-sayers in this thread certainly have egg on their faces.

  122. Phillip H. Blanton says:

    I used to work with Charlie Calvert. We took a Maui vacation together once and my wife Mary Ann and I were really enamored with Charlie and his wife Margie. They are the best!

    I have also met Anders a few times and he is also a seriously cool guy and seriously smart. How great is it to be a nerd at this time in history?!?!?

Skip to main content