Fabulous Adventures In Coding

Eric Lippert's Blog

Some new videos

Somehow it has happened again; people just keep on recording videos of me and putting them on the internet.

In these videos you find out what I look like when lit from above and behind. Kinda spooky. We should have made the room entirely dark and held a flashlight underneath my face. That would be, like, ten times scarier. Anyway, if you're interested in me blathering on about my favourite feature in C# 4, covariance and contravariance of interface and delegate types, here are two little demo videos: Part One, Part Two. (There seems to be some minor sound sync issues here and there, but it's not really a problem; most of the audio is voice-over.)

Charlie has been crazy busy getting these little videos together; here are some more of his recent efforts, including some good ones from my colleagues Chris and Sam talking about all the other far more awesome features of C# 4.0: dynamic interop, improved interop with Office, named and optional parameters, and so on. Links to all of our recent videos are here: http://blogs.msdn.com/charlie/archive/2009/10/19/community-convergence-lvi.aspx.

Have an amusing and safe Hallowe'en -- I'll be going to Hallowe'en parties on a small island this year, just for a change of pace.

[Eric is on vacation this week; this posting was pre-recorded]

Published Monday, October 26, 2009 6:17 AM by Eric Lippert

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

 

ShuggyCoUk said:

The island won't protect you from zombies who walk along the ocean bottom...

Zombies make for such a better Halloween. Perhaps Zombie werewolves would be a nice combination.

October 26, 2009 12:57 PM
 

Stefano Ricciardi said:

Thank you for the two videos on covariance. Being able to see the actual coding is worth a thousand words.

October 27, 2009 5:00 AM
 

JWeber said:

In video #2 (7:26) you say:

"Covariance is always about stuff going out"

(So far, so good) Then you add:

"Contravariance is ALMOST always about stuff coming in (there are some exceptions to that rule)"

Maybe I already (and passively) know about them, but I can't figure that out right now: so please, could anyone tell more about those "complicated weird" situations ?

October 28, 2009 6:28 AM
 

Joren said:

October 28, 2009 7:33 AM
 

JWeber said:

Thanks Joren; I did not check the history before 2008.

Re-read it and now it makes perfect sense.

I initially understood the statements in the video as equivalences (at least for the covariant part).

But since Meta<T> = Action<Action<T>> is covariant in T and stuff does not "go out", I was wrong.

So it seems the rule Eric states is merely:

- Stuff goes out? It's covariant.

- Stuff comes in? Chances are good it's contravariant, but no guarantee !

October 29, 2009 8:22 AM

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required
Submit

About Eric Lippert

Eric Lippert is a senior developer on the Microsoft C# compiler team. Before that he worked on the framework of Visual Studio Tools For Office. Before that, he worked on the compilers, runtimes and tools for VBScript, JScript, Windows Script Host and other Microsoft Scripting technologies. He lives in Seattle and spends his free time editing books about programming languages, playing the piano, and trying to keep his tiny sailboat upright in Puget Sound.

This Blog

Syndication


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker