Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Checking In: Eric Lippert - On Compiler Evolution, Designing C# and Blogging

Download

Right click “Save as…”

Happy Birthday, Channel 9!!!

We are 7 years old today! Smiley Hard to believe... What a great 7 years it has been. THANK YOU, NINERS! In celebration, we bring you the latest episode of Checking In with Erik Meijer. Our very special guest is Eric Lippert. To Erik, thank you for some many years of great content. From your lecture series on functional programming, Expert to Expert series and now Checking In. You are a C9 titan and we salute you.

Many of you probably know Eric Lippert from his exceptional blog. You've also met him on C9 before (in fact, Eric was the very first interview Channel 9 shot almost 7 years ago—I remember Lenn, Jeff, Bryn, Scoble, and myself huddled around the computer in my office watching the video with Eric. It was clear we were on to something...).

But how much do you know about Eric? Where is he from? What attracted him to computers? When did he first start programming? What was the spark that lit the fire inside of him for writing code? How did he land at Microsoft? What projects has he worked on over the years? What's he working on these days?

Compilers have evolved to meet the modern needs of developers, and Eric, one of the developers of the C# compiler, knows this firsthand. From Intellisense to refactoring, compilers do much more than take syntax and convert it into an optimized language that a target execution layer can understand. Currently, the C# compiler is written in C++ and it's architecture is becoming outdated (not because of C++ mind you...). Eric et al are rebuilding the C# compiler from the ground up and they are writing the compiler in C#. Why? Why not stick with C++? Will there be performance penalties to pay for going managed? We talk about all of this, of course...

Erik has many questions for Eric. What will the answers be? Tune in.

Enjoy, and thanks to Eric for spending time with Erik and Channel 9! Great conversation, as usual.

Happy Birthday, Channel 9!!!

Tags:

Follow the Discussion

  • I simply *love* Eric Lippert videos. He's such a brilliant chap, and extremely friendly, too. And I love C# very much. I find C# related videos extremely enjoyable to watch, and very educational, too.

  • Wow... I'm looking forward to this one! .. Eric and Erik .. I'm gonna start the download in a minute ... Just wanna say to things ...My favorite C9 conversations/persons would be

    1. Erik M
    2. Anders (sorry Anders .. however, a strong case can be made for putting you on top)
    3. Wes Dyer (Charles can you get him to do one of these?)
    4. Eric Lippert
    5. Stephen Toub (he's on a lot but is always good!)

    Another request ... can we get a few more non-MS interviews ... like say Doug Crockford (I know hes speaking at Mix)

    Anyway .. great work Charles! and thanks Eric & Erik

  • CharlesCharles Welcome Change

    @Keith_Flo: I like the idea of Checking In with Wes Dyer. I would add Bart De Smet, too. Of course, Erik runs the team they're on so he already knows them quite well... Maybe there are things he doesn't know. You will see more Wes and Bart in the near future, though (for Rx and LINQ to Everything type discussions...). Stephen Toub will be on C9 in the near future as well. Erik will too, as well....

    So, almost all of your requests have already been filmed...

    Crockford will show up on C9 Live at MIX11. Maybe I'll bring my camera and have a conversation with Doug that is not live... We'll see.

    C

  • felix9felix9 the cat that walked by itself

    yeah this one is really awesome

  • Eric AguiarHeavens​Revenge Know Thyself

    I as well started with BASIC but I hated it so badly I quit programming for ~4 years untiul I learnt C++ as my 1st loved language. Tongue Out

    Lately I've been having a sudden urge to use natural language processing used in auto-correction to fix errors as you type and apply it to source code so that its can auto-fix bugs and errors using behavioral constraints. Oh yes, self-correcting code Smiley But I agree that having it "correct" it for you as you type would be horrible, so to clarify I mean a "natural language processing contextual post-processor engine/plugin" which can go over the pre-processed code and have it see what you meant to code based on what you're doing inclusive of scope. Never mind code contracts, or limiting the rules of execution, this is using our processing power to save programmer time and save bug bucks preventing major code errors only this sort of analysis could detect.

    Consider this version#1 as a post-processor that logs all the illogical errors and lets you know what it thinks is a bug instead of auto-correcting it in the early life of this tool. That is until it becomes so smart it COULD auto-correct a few versions down the road Tongue Out
    This is indeed theory and just an idea, but if implemented I think it would be a major evolution in our field of software engineering.

    What do people think?

  • Grant BoyleGrantB What the hell are we supposed to use man? Harsh language?

    Good video! Always like to hear from Eric and/or Erik.

    And I for one miss Chris Brumme's blog: http://blogs.msdn.com/b/cbrumme/archive/2003/05/17/51445.aspx

    Kinda reminds me of something Joe Duffy posted: http://www.bluebytesoftware.com/blog/2010/12/04/SayonaraVolatile.aspx

    (Wonder why he hasn't posted recently either...)

     

     

  • John Melville-- MDJohn Melville-- MD Equality Through Technology

    I find it interesting contrast Eric's comment that, in his admittedly limited scenerio, Linq is too slow to the recent lectures on the STL optimization by STL.  Your comments suggest that a certian performance hit is the inevitable result of convenient interface.  In contrast STL does not invariably have to sacrifice speed for a convenient interface, and compiler tricks often reduce to the code you would have written anyway, just more correct.

    I find this curious because C# generics have a very different feature set than C++ templates, which the original designers could not have been ignorant of.  Do you see the lack of metaprogramming as a strength or a weakness for C#.  If C# had templates, would linq have used it?  I already know you won't comment on the future of the compiler, so I won't even ask. 

  • @John Melville-- MD: It's not that "LINQ is slow" per se, rather, it is that most LINQ scenarios create some kind of collection pressure, either by allocating an iterator, or because Join is building a table behind the scenes, or whatever. We have large, long-lived, complex data structures and we're concerned about triggering too many collections.

  • CharlesCharles Welcome Change

    With lambdas, operator overloading,...almost anything is possible. C++ needs some LINQ, Erik. Smiley
    C

  • This was incredibly enjoyable, thank you for an hour well spent!

  • Are you guys following the Go language? If so, what's your opinion on it. It seems to take quite the opposite approach to the kitchen sink. Minimalistic language with an explicit design goal of fast compilation. Here are some points:

    • It's compiled, no VM
    • Has GC
    • Not your usual standard class-based
    • Aiming for simple spec, and implementaion
    • No operator overloading, and currently no generics
    • Concurrency built-in
    •  Two of its creators are Rob Pike and Ken Thompson (f-n exclamation mark)
  • felix9felix9 the cat that walked by itself

    glad its not mainly for DevDiv or Server&Tools, go WinDiv, Office, MacBU, IEB and everywhere !

  • CKurtCKurt while( ( !​succeed=try​() ) ) { }

    Great great great talk!

    Nice to hear about building the C#.vNext compiler in C# 4.0 but I'm wondering if they have a particular order to write the new language functions in so they can use the new functions to create the next function.

    For example what if having feature Y makes implementing feature X more easy. And both of them are nog yet in the current compiler. It must be very hard but challenging meetings. So much fun !

  • great talk!

    I really liked this new checking in series.

     

  • Gert Jan van der KampGert Jan van der Kamp

    A tasty sausage indeed! A big thank you to Erik, Eric and the C9 team!

  • kachchhukachchhu kachchhu

    very good success thankx to ever these are involved in this mission.

  • SimonSimon

    Thanks for the great video, Erik!

  • Bent Rasmussenexoteric stuck in a loop, for a while

    The C# compiler is now like a work of Escher:

    http://www.worldofescher.com/gallery/A13.html

    Thanks for this excellent check-in. Smiley

  • HerbousHerbous

    The title is a bit off, i feel a bit tricked, i expected more "geeky stuff" but it was good though not as good as i expected it to be.

    :o the "you know" man is back and now you've made Eric Lippert do it too.
    Please learn to articulate, we are not mind readers so we do not know, when you say "you know" and to us viewers its just annoying and irritating.
    There are many books about how to speak to people (doing talks, etc), i suggest you pick up one or two. They are actually a very interesting read and you learn much.

  • I would have really wanted to hear Eric's the argument for C# speed vs C++. I hope he will write an article about it in his blog . Wink

  • "Don't talk about Microsoft, talk about the work we do, because we do great work."

    This should be C9s mission statement. Great conversation, I really enjoyed it.

  • Richard Anthony HeinRichard.Hein Stay on Target

    I finally found some time to watch this ... great interview.  Thanks!

  • CharlesCharles Welcome Change

    , RobertL wrote

    "Don't talk about Microsoft, talk about the work we do, because we do great work."

    We do that.
    C

  • CharlesCharles Welcome Change

    The title is a bit off, i feel a bit tricked, i expected more "geeky stuff" but it was good though not as good as i expected it to be.

    :o the "you know" man is back and now you've made Eric Lippert do it too.
    Please learn to articulate, we are not mind readers so we do not know, when you say "you know" and to us viewers its just annoying and irritating.
    There are many books about how to speak to people (doing talks, etc), i suggest you pick up one or two. They are actually a very interesting read and you learn much.

    You kidding me?

    C

  • @Herbous: You are most welcome Smiley

  • I like channel 9 because of videos like this, thank you charles, erik and eric. I wonder how channel 9 would look like if charles wouldn't do this kind of content - it would be a sad place.

  • ClementClement

    Awesome stuff guys, keep up with the great sessions :-)

  • HerbousHerbous

    @Charles:
    Here's some for you to read charles:
    http://collegecandy.com/2011/02/10/6-sloppy-speech-habits-to-avoid/

    Since you hold the camera, you could tell them what to avoid before filming.

    "You kidding me?"
    Want to elaborate ?

  • HerbousHerbous

    oh i see wops i mixed up the names, never mind you get it

  • HerbousHerbous

    The heat here is messing with my head, i didn't get the names wrong...

    @head.in.the.box:
    Will you do more talks ?
    If yes, then please make them more geeky, computer science yummy

    Btw, if you know about some problems in the company then you don't you help fix them, not fixing the problems will only make them worse.

  • Eric AguiarHeavens​Revenge Know Thyself

    @Herbous lol you are one demanding mofo arent you? Some things in this world hold enough entropy their chaos and preset path overwhelms their logical order and its our job as humans with brains to decipher ambiguity.

    @Charles & @RobertL that "Don't talk about Microsoft, talk about the work we do, because we do great work." was really well said, and is almost valuable to mention before all recordings to the people on camera just to "inspire" and keep the talk technically focused if its mentioned or used as a friendly reminder before interviews just to see how it is reacted upon.

  • Richard Anthony HeinRichard.Hein Stay on Target

    @Herbous:  Perhaps you should learn proper spelling, grammar, punctuation, and manners, before you lecture someone about communication.

  • Great questions, great answers! Eric is as pleasant to listen to as to read, and I appreciate the insight as always.

     

  • Richard Anthony HeinRichard.Hein Stay on Target

    Ok, Charles.

  • CharlesCharles Welcome Change

    @Herbous/@Richard: Relent. This thread is not the place for this type of discourse. Given all that Eric said, it's surprising that you're not debating compiler evolution or language choices for implementing compilers or C# design or...

    @Herbous: Please stop trying to start fires.

    Peace,
    C

  • Bent Rasmussenexoteric stuck in a loop, for a while

    Well, I found the idea of using async in the compiler quite interesting. As well as the whole idea of not using LINQ to Objects because it doesn't scale to the level that the compiler needs to support.

    On the other hand, as the C# compiler itself is re-written in C#, perhaps it will evolve more rapidly due to the updated architechture. I would assume that as the compiler matures more and more features of the language itself will be used to refactor the compiler in a continuous way but of course to begin with you want to use the most robust features first.

    I also hope that the new compiler will lead to some bias in terms of helping functional style C# - at least the past PDC slides have indicated that declarative was a clear focus for the future (we've recently had focus on dynamic and next up is async but it's perhaps to give more power to the declarative style, despite the imperative heritage; but as Anders says: multi-paradigm is the future.)

    I was also wondering whether anyone had given any thought to the idea of branching the language itself: creating a C# spin-off - a sort of C# refactored. Since its all compiled down to IL anyway, it should be able to interoperate perfectly with "legacy" C# code.

  • CharlesCharles Welcome Change

    @exoteric: Thanks for the thoughtful post, exoteric. There may be an Anders Unplugged live from Redmond in the not-too-distant future. Look out for that right here on C9. Best that Anders answers your questions, eh? Smiley

    C

  • felix9felix9 the cat that walked by itself

    I have a similiar concern on performance with Async too, what kind of performance characteristics on memory / speed / context-switches if I use await with async functions in BCL ?

    @Charles: Live ? PDC ? or some event before PDC ??

  • CharlesCharles Welcome Change

    @felix9: Live from C9 Studios... It's a Maybe at this point, but solid enough that I shared it with you Smiley

    C

  • CharlesCharles Welcome Change

    @Rodney McKay: This is one form of content on C9. We have many styles and objectives. That's a very good thing as there is the same level of diversity in our viewership, in Niner nation. In this case, I think what you're really saying is that I should work harder. I agree. More of more of this to come.

    C

  • felix9felix9 the cat that walked by itself

    @Charles: a Channel9 event ? hmm.... if its not an official Microsoft event, how many viewers can you get ? how many really active participant ? in the proper timezones ? does 'unplugged' means you wont talk about any working progress ? hmm..... Perplexed

  • CharlesCharles Welcome Change

    @felix9: C9 Live is a Microsoft "event"... Number of viewers depends on number of people who tune in. More on this after MIX, if it is going to happen.

    Tune into C9 Live from Vegas, Niners. Starts tomorrow (11 AM PDT (MIX11 Day 1 Keynote streams live at 9AM PDT))!

    C

  • , dablaze21 wrote

    I would have really wanted to hear Eric's the argument for C# speed vs C++. I hope he will write an article about it in his blog . Wink

    You should take a look at this blog post series: http://blogs.msdn.com/b/ricom/archive/2005/05/10/416151.aspx

    Raymond Chen writes a Chinese/English dictionary program in C++, Rico Mariani does the same in C#, and they compare results. It's really interesting to read.

  • C64C64

    , Joren wrote

    *snip*

    You should take a look at this blog post series: http://blogs.msdn.com/b/ricom/archive/2005/05/10/416151.aspx

    Raymond Chen writes a Chinese/English dictionary program in C++, Rico Mariani does the same in C#, and they compare results. It's really interesting to read.

    The bottom line of that interesting series is that (at least for the particular context of Chinese/English dictionary program) C++ code using standard library I/O streams, std::string, etc. is slower than corresponding C# code; but if you start writing your own memory pool allocator in C++, use WCHAR* instead of std::wstring, use Win32 memory mapped files instead of C++ I/O streams, etc., then this optimized C++ code runs faster than the C# code.

     

  • CharlesCharles Welcome Change

    @C64: Correct.

    C

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.