Checking In: Rick Molloy - Gone Native

Play Checking In: Rick Molloy - Gone Native
Sign in to queue


Welcome to another edition of Checking In with Erik Meijer! This time we subject native (C++) developer Rick Molloy to Erik's friendly interrogation. You've met Rick before (here, here, here, and here).

As usual, this Erik-led conversation involves several forays into technical areas and we jump head first into a few rabbit holes (like managed "versus" native (versus in quotes to emphasize that it's not some sort of duel...). Erik is a managed guy, after all). Lots of great geeky goodness here. So, Erik sends Rick to the whiteboard and Rick teaches Erik some modern C++ and provides some insights into his coding behavior/patterns (which is a key part of Checking In, remember?). We also sort of learn about what Rick's up to these days (secrets, secrets...).

Tune in. Enjoy. Thanks for spending time with us, Rick!



Download this episode

The Discussion

  • User profile image

    I really enjoyed this talk especially the part when discussing the differences in native and managed lambdas.  I do mostly managed development but I also do a lot of native and mixed mode (C++\CLI) development as well so I've had to become accustom to both styles.  Also are the latest C++0x lambda standards slightly different than the VSC++ version now?  I am a big fan of the managed syntax as it is very beautiful and I love it.  But after using the C++ lambdas, I am left wanting some way to override the default capture behavior in C#.  I would rarely use such a feature but it would be nice.  Thanks so much for the great video!!

  • User profile image

    A very nice talk.

    I especially appreciate the advice to default your lambda to capture nothing instead of the whole stack by reference as most samples show. I'll let the compiler show me what I need. That's the sort of tip which belongs in some version of "Effective C++11"


  • User profile image

    excellent talk ! touched so many interesting topics. fun !

  • User profile image

    AceHack> Also are the latest C++0x lambda standards slightly different than the VSC++ version now?

    Yes. VC10 RTM (same for SP1) implemented the first specification of lambdas that was voted into the C++0x Working Paper, which I refer to as lambdas v1.0. The lambda wording was later revised, producing what I refer to as lambdas v1.1, but this happened too late for it to be implemented in VC10.

    The major differences between lambdas v1.0 and v1.1 are in corner cases like nested lambdas and static members. Additionally, lambdas v1.1 makes stateless lambdas convertible to ordinary function pointers.

    Lambdas v1.1 (which is essentially a set of bugfixes, plus the function pointer conversion micro-feature) has already been implemented in VC11.

    schroedl> I especially appreciate the advice to default your lambda to capture nothing instead of the whole stack by reference as most samples show.

    In case you weren't aware, specifying [&] does NOT capture every local variable by reference. It captures only those local variables that the lambda refers to. (Same for [=].) Therefore, there is no difference in efficiency - only in verbosity, and the potential danger of capturing something by reference that should be captured by value or vice versa.

  • User profile image

    Thanks folks & concurring Stephan here.  My preference to capture nothing in a lambda by default isn't about performance it's about correctness.

    @AceHack - a workaround I've seen a lot of folks do in C# is to simply make a copy of the value inside the lambda to avoid a race condition when copy semantics are desired.

    There's also various tricks to improve performance if the copy happens to be expensive, e.g. in native combinable<T> or .NET 4, System.Collections.Concurrent.ConcurrentBag<T> in can be used to help with this.  Also in .NET you can look at the overloads of System.Threading.Tasks.Task which take a state parameter in the constructor.

  • User profile image

    I'm disappointed by the content of this video.

    Ever heard of the expression: Put the code where your mouth is, please !

    Come on show us some C++0x code goodness.

    You talk too much.

  • User profile image

    @Sert: By definition, a conversation involves talking, speaking, conversing in voice... We did talk about about code and the whiteboard was used to write some of the code related to programming concepts that were discussed or talked about. Also, it's C++11 Smiley

    We show code in other venues on C9 (like GoingNative demo segments, STL videos, new IDE feature demos, event sessions, etc...). This series is about having conversations with developers, talking about programming (and programmers) in an engaging way. These aren't presentations or demos.

    That said, thanks for the feedback. Do look for the more demo-focused content (there's a good amount of it on the site. Click on the C++0x tag, for example (that reminds, I need to change it to C++11....)).


  • User profile image

    @Charles: You don't get it.

    I've seen most of the c++0x videos already. There aren't many of them.
    I jump on the c++ videos the moment i see them because they are so rare and some of them like this one is just a bunch of talk about stuff we can't use yet or similar issues.
    It can be interesting to talk about unreleased code sometime but c++0x have been regurgitated so much now that it's just been boring to listen to. You don't speak about anything new just the same old stuff.

    I want them to talk about code that i can play with today.
    Most importantly show us the code. Explain how to use it the right way and how to avoid common mistakes, etc..
    I'm a visual person i learn by watching the code not talking about it.

    Talking about unreleased code is just low man.
    "We got some really cool code here that can do this, this and that but you can't have it yet, ha ha !"
    Also most if not all would have forgotten about this when it have been released. There's also the possibility that important code have changed which makes this video obsolete and will do more hard then good.

    At least you used the the whiteboard a little. That's a tiny plus.

    Charles don't take this the wrong way but i think these kind of conversation videos would be much much better if the questions came from a programmer and not you.
    A programmer would have a good idea of what questions to ask that other programmers also would like to know or be useful and interesting to know.

    PS: Yes the official name is c++11. I typed c++0x out of habit.

  • User profile image

    @Charles:I'm not used to write comments much often, but recent posts do not let me stay calm. Simply put, I rate this talk as on of the best on Channel9. I have been writing native code every day for many years, utilizing COM, threads and various other services of Windows. Listening to gentlemen like Mr. Molloy and Mr. Meijer was extraordinarily inspirative and interesting for me. In contrast to recent thoughts placed in comments section, I appreciate  that you managed to talk about technical stuff in such an enjoyable manner. I agree with you that there are lots of other learning resources about native development, and as Mr. STL said: "there are books". This should be our responsibility to learn, not you responsibility you to teach us here on channel9. To summarize up, I would like to express my gratitude for the shows like this and to encourage you to continue with nice style you have established (at least for me and those who agree with me). I hope that my message got clear since I'm not a native speaker. Thank you.

  • User profile image

    @Sert: Well, we'll be supplying more code-heavy native content (STL will be back, Rick will back with some great code-on-screen C++, folks from the C++ team will teach us about what you'll be able to play with soon, GoingNative will always have code/demo content and programmer interviews, C++ and Beyond content will also appear soon, Kate Gregory presentations, etc, etc).

    This series is about conversation (Erik and I are Old School - this means the conversation filmed is the conversation that happened, there is no script or pre-baked questions....) and that is not going to change.

    Finally, I am a programmer (well, once upon a time that's all I did for Microsoft... I guess now I'm more of a programmer mouthpiece, but I still have my programmer soul and feel quite competent in my abilities to converse technically with practitioners - it's fair if you feel otherwise - just don't watch my interviews, then), so I don't know what you're really talking about. Finally, I asked very few questions in this conversation... This is Checking In with Erik Meijer and, um, he's quite beyond a programmer...

    All of this said, fair enough. Feedback noted. You're always welcome and encouraged to criticise me and Channel 9 on Channel 9. We'll try to deliver content that doesn't evoke frustration. Just remember that when you see a long, conversational piece like this (and many more in the future), you'll probably not want to tune in.


  • User profile image

    @jiri: Thanks, jiri. I appreciate it.

    I'm glad you found this useful, entertaining and educational. To have someone of Erik Meijer's stature dedicated to producing content on Channel 9 is an honor and we're lucky to have his time, of which he has very little for this sort of thing.

    We'll continue to pump out content that is meaningful to you and other native devs, some conversational, some not (and also for managed devs and web devs, too...). As I mentioned to Sert, feedback is always encouraged and appreciated. We'll always try to adjust things based on it.

    Thanks again for the kind words. It means a lot.


  • User profile image
    Mr Crash

    I think what serl is trying to say is: Share your experiences.
    The stuff that a book just doesn't teach sadly enough. Microsoft programmers should have some experience to talk about...right ? You've f-ed up a lot of times so you should know a few things about this and what to do to avoid it. I assume you actually have learned something from your mistakes. (I'm still waiting on proof on that though)

    "Well, we'll be supplying more code-heavy native content (STL will be back, Rick will back with some great code-on-screen C++, folks from the C++ team will teach us about what you'll be able to play with soon, GoingNative will always have code/demo content and programmer interviews, C++ and Beyond content will also appear soon, Kate Gregory presentations, etc, etc)."
    @Charles: I'm looking forward to that.  I barely cannot wait. I'll be holding you to that. Although past experience tells me to take that with a grain of salt.

    "I don't know what you're really talking about. "
    When in doubt, ask a question. If you don't understand then explain to serl what you don't get so serl can explain it to you, now is that so hard ?
    gee Men and asking for help.... Wink

    I've seen many videos of you interviewing: I remember you've mentioned before of being a programmer but you don't really seem to understand sometimes what the interviewee is talking about nor what questions to ask. Kind of funny and sad at the same time to hear you trying to come up with a question to ask and seeing the interviewee's expression of trying to from that into a question.

    You don't need a script or pre-baked questions, come on, if you're a programmer then you should come up with good questions on the fly. I've seen you ask good questions before so you can do it, just put some thought into it, don't be so lazy.

    I've got a very useful tip for you: The developers should know what is good to know when using their product. (Pitfalls and so on) So let them talk figure out what they think is important for other developers to know.

    "just don't watch my interviews, then"
    Right, because there are sooo many c++ videos produced on channel 9.</sarcasm>
    I've said it before many times, there are not many c++ videos on c9. c9 have become a more or less a PR web site for microsoft products.

    "long, conversational piece like this"
    We watch long videos in the hope that there will actually be some useful info in it. Short videos are usually less useful and interesting. Basically you can't cram good geeky detailed stuff in a 10 minutes video. Good example is STL's very good video series. he got something like 35 minutes and he barely have the time to go over all the things  and sometimes he just doesn't have the time to do it even.

    @Sert: I'll bet you 50 dollars on that your feedback have been filled in the ignore section. I get the feeling charles got sort of an ego problem so listening to negative feedback just doesn't compute for him. I and a few others have given him feed before and we have not seen any results on that so far.

    Thats not a personal attack it's just an observation. Please prove me wrong, i'd be very happy to apologize and admit i'm wrong.

  • User profile image

    @Mr Crash: I do listen to feedback. Sometimes it takes time to find the right folks to talk about the right things. Many developers at Microsoft have no interest in talking to a person sitting behind a camera...

    I haven't produced enough native content. You're right. I can't argue with that observation. There is much planned, but that's vapor until it materializes. I'll work harder.

    I'll hold you to your challenge.


  • User profile image


    Hey Charles, Sert is just trying to say that the videos are too long and too wordy. They simply a) don't contain enough really interesting or new material nor b) convey it quick enough. The largest part of community for this blog wants to see written textual material for the most part about NEW things that we can use now or soon. This other stuff is ok, I know you are trying hard and are limited in what you can say about new things, but that's the bottom line of the problem. These wordy videos, tutorials, and all of that kind of stuff are just no substitute for real meat - New, Textual, and Detailed information. Time is too precious to sit through a video like this when it feels like a shallow Transformers movie that is two hours too long. I'm too wordy myself, so take it from me! I know you are trying hard and things have definitely improved so keep up the good work, but New, Textual, and Detailed! That's it!!

  • User profile image

    @Charles, "just don't watch my interviews, then" - you [removed]! Those aren't your interviews! Those interviews are supposed to be for the C++ community and you are supposed to be a COMPETENT person to provide them. But you proved that you're not. You are neither professional interviewer, programmer nor a person with a manners. How can any interviewer answer: "just don't watch my interviews, then"???!!!!


    And Charles, if you wanna pass as a programmer start sounding like one. The most often I hear from you is: "Excellent, great" - no much substance, because there is none.

  • User profile image

    @niners: it's funny you ask about showing more code as I'm working with Charles to provide some code-heavy content here soon, specifically writing and walking through code and demos, I'll also ensure that what I show is also available to be used (e.g. available in text or for download). 

    I also wanted to say thanks for the constructive feedback; folks here especially Charles listen and respond to the feedback.  I also know what I always want out of feedback is that it is direct and actionable (e.g. tell me what I'm doing well and tell me what you'd like to see done differently), blanket statements just aren't as useful and ultimately aren't as effective at making change.

    So if there's specific things here I mentioned here or somewhere else that you'd like to see let us know and stay tuned.


  • User profile image


    For the record:

    All I said was that if you don't like the longer, conversational, randomly-formed-in-situ pieces (which is what I produce much of the time here), then don't watch them - there's plenty of other content that will suit your specific needs and tastes. There will continue to be these types of interviews on Channel 9. You are in a minority of folks who don't like it. That's fine. We can't please everybody all of the time.

    The fact that you felt compelled to insult me is unfortunate, breaks our clear rules of conduct, is disrespectful and to be honest, quite useless and juvenile. I don't need to pass myself off as anything that I'm not.  My primary role here is to get the folks who write code for Microsoft to appear on Channel 9 - and then converse with them. If you don't like the way these interviews go down, then provide constructive criticism, not insults and strange feedback (because I say excellent a fair amount during my interviews, then I'm not qualified to interview programmers... Yeah, that makes a lot of sense....).

    Please provide specific places in this video where what I said was either misinformed, inaccurate or just plain wrong. What were these dumb questions, anyway? That would be more helpful to me than insults.


  • User profile image

    @Glen: Fair enough, but I can't and just won't promise that long interviews like this will disappear because a few people don't like them... This is what I do best, in my opinion (and this is what many people have told me - then again, I'm my harshest critic and now I'm looking inward again, which is good to do, so thanks for the negative criticisms to all who provided them).

    I do appreciate the constructive feedback, Glen. Thank you. In terms of textual posts, yes, that's a good idea, but perhaps something that makes more sense on the VC blog, which is a textual place (C9 is a video place, for the most part). What is really needed are shorter screencasts that conatin screen capture plus audio, focusing on today's C++. This is understood. As Rick mentioned, he will be providing some very interesting C++ demos soon.



  • User profile image

    @Charles: You are saying: "All I said was that if you don't like the longer, conversational, randomly-formed-in-situ pieces (which is what I produce much of the time here), then don't watch them".

    Excuse me, but it is not what you've said. What you actually said is this:

    "Finally, I am a programmer (well, once upon a time that's all I did for Microsoft... I guess now I'm more of a programmer mouthpiece, but I still have my programmer soul and feel quite competent in my abilities to converse technically with practitioners - it's fair if you feel otherwise - just don't watch my interviews, then), so I don't know what you're really talking about."

    And from this it is quite obvious that your response in the form "just don't watch my interviews, then" is arrogant and ignorant. The message behind it is "if you don't like it then f... off". So could you stop trying to pretend that you've said something entirely different with entirely different meaning to what you've really said?

    And as for strange comments? Isn't that you who said:

    "I don't need to pass myself off as anything that I'm not"

    So, which one is it? Are you a programmer or are you not? And if you not (for from what I saw you're not) stop pretending to be one:

    "I am a programmer (well, once upon a time that's all I did for Microsoft... I guess now I'm more of a programmer mouthpiece, but I still have my programmer soul and feel quite competent in my abilities to converse technically with practitioners"

    Firstly, Charles, you may not believe me but you don't have the ability to converse technically with practitioners. It doesn't look like that from the clips I saw so far anyway.

    And if you're not a programmer have the guts to admit it, stop pretending to be one, and don't do unscripted interviews because you're clearly have no idea what the guy being interviewed is talking about. That's what I referred to pointing out that most common word used by you during those interviews is excellent and great. Does that make more sense to you now? You are lost during those interviews. That's why I believe that you're incompetent and unqualified for those types of interviews. And I bet lots of people here will/have share my feelings.

    And as for conversation and you're low excuse that conversation is this or that? Do you know that saying:

    There are not uninteresting topics just uninterested people?

    C++ is a fascinating subject, but watching you during those interviews is just painful.

    And yes, I know, if I don't like it I do not have to watch it.

    C++ rules and rocks!





    a)     Before filming consult someone who really do hard core programming as an everyday "jobbie" and ask him/her if s/he can write appropriate questions down for you, stop doing "improvised" interviews and this will help

    b)      Learn C++ - and that is the best option.


  • User profile image

    @KMNY_a_ha: This thread is the wrong place for this discourse. Send your feedback of what I do and how I do it directly to me via email (ctorre is my work alias, you can figure out the domain). I'm not going to continue with this here. Feel as you do. Nothing wrong with that. Please do send along examples of where I am lost or otherwise have no understanding of what is being discussed. Start with examples from this post. I'd like to know where I faultered, exactly.


  • User profile image


    Unfortunately,your proposition of me going through hours of videos and picking/recording every time you seem to be lost or have no idea what is being said to you, will am afraid not be possible to fulfill. Simply it would take too much of my time and I just don't have so much time to spare.

    Another thing, I'm not going to sent you private correspondence (forget the fact that you couldn't be even bothered to provide your full email address, playing a smart a_s_s again). As far as I'm concerned, you are doing public work and you going to be publicly scrutinized and criticized. I think that's only fair.

  • User profile image

    @KMNY_a_ha: Whatever. I don't provide my email address for bots to parse from text and then add me to their spam lists... It's typical behavior of those providing email addresses in public forums. At any rate, please provide examples of how ignorant I am from this post (so, one place for you to scour), as I asked previously. Otherwise, this is just a bunch of hot air. Personally, I would rather this discourse just stop. There is so much more interesting stuff to talk about from this video. I have to assume you watched this before posting your distaste for what I do, specifically.


  • User profile image

    Interesting insights starting at minute 21:45 on native C++ vs managed code programming!

  • User profile image

    @George_Curelet_Balan: You can use our nifty navigate-to URL format to move the inline player to any point in time. In this case, the URL would be

    Note the #time format -> xhxmxs


  • User profile image

    @Charles, Let's leave it at this, agreed. I, believe it or not, am not a person who looks for <place your idea here>. What I didn't like was the way you responded to Sert, and I've said to you what it looked like. Hopefuly you'll take a lesson from this and never again answer like that to any clients/potential clients of company you work for.


  • User profile image

    Thanks for the great series!

    I believe some people are missing the point of those videos and I agree with Charles that most niners see them as real gems:) They are not meant to be programming tutorials for C++ programmers, there are plenty of those out there...

    What I really take from this series is a fresh perspective on programming concepts, products from MS and on people who are behind them. If I am particularly interested in any of the mentioned technologies, I start a journey of my own to find detailed information about them. Keep up the good work ch9 team!

  • User profile image
    Benjamin Lindley

    I don't normally do this, but I feel the comments here have been extremely rude, and mostly from people who can't read:

    "Erik Meijer travels around Microsoft, meeting the people who design, write, and check in code for a living. The focus is on who they are, how they got into software development, what they're working on, and whatever else Erik wants to know, developer to developer."

    This video fits that description perfectly.

    Anyway Charles, I just wanted to let you know that I appreciate your work. And contrary to what some of the commenters are saying, I think you have been extremely polite in your responses.

  • User profile image

    @Charles. I don't mind you doing long videos, I just think some of the material I have seen on Channel 9 works better if it is not just one big lump of video.

    So, to put that into actionable items (as rick has asked):

    * Get some good editing tools that allow you to splice videos, screen shots, code, labels and powerpoints together in tight and efficient ways (overlapping video and text for example).

    * Don't ask me which tools to use as I don't use them or know the good ones, but I know they are out there and you guys have the resources to get them.

    * If you don't have the resources, that's another actionable item for you! :)

    * Don't make me watch a whiteboard get drawn again in real time when it can just appear as a powerpoint page instantly along side the audio! :) Anything less = slow = waiting = frustration.

    * Remember that video is slow and often stutters (lots of people have complained about this, though that isn't so bad for me), but video's code isn't easy to to search or read. Stuttering = slow = waiting = frustration.

    * Get permission to ask really interesting questions. Don't make me to wait until windowsbuild for the good stuff. What makes for good hype and marketing (secrets and drips) makes for really bad developer relations and dull empty blogs void of real news for long periods! Push that message to your boss! No news or poorly timed news = frustration.

    * If you need an example, Google didn't make me wait for years to tell me about Native Client, even if they took a while to put it together. I knew exactly what the idea was from day one, and they are delivering. In contrast, what is this HTML5/C++ native API. It it real? When is it coming? Not knowing for a few months = slow = waiting = frustration.

    * Get critical with the editing aspect of these videos, if it drags, drop it! Then redo it. I don't want to watch something that feels like a reality tv show. I want it to be sharp. There are no actors, the code or the news is the star unless it's Herb or Bjarne and even Rock Stars need to be pushed on stage! :)

    * There actually isn't as much good material about C++ out there as it seems, there is a real hunger for this kind of stuff. Telling us go elsewhere if we don't like things isn't as easy as it sounds (though I can totally see what led you to make that remark). Not many people have the opportunity to influence like you have so I kind of have to try to influence you so that you can pass it on. If a comment ends up in the wrong forum, be tenacious and help it get to where it needs to go to be actionable. You do a good job of that already though so well done.

    * Get Boris Jabes back on the show, he's got a great attitude like you Charles. When can we expect to hear from him again?

    * I'd be keen to chat with you more offline Charles if you can find the time. It might help set some of my expectations by understanding your role and the limitations of it. :)

    @KMNY: I am sure we could find a lot to agree on, and we all lose our head sometimes, but I really think you overstepped the mark with some of your comments to Charles. He is one of the good guys, try to remember that. Apologies are free. Now is a good time to redeem yourself. This isn't slashdot :)

  • User profile image

    @Glen, sure, more than happy to do that after Charles apologises Sert.

    @Charles, do you think you can do that? Apologies are free.

  • User profile image

    OK. Sorry for the comment that seemed mean or defensive (I guess it was defensive since you basically said I shouldn't interview programmers!), Sert.

    Let's move along. Happy River.

    Glen, thanks for the constructive feedback. You'll see some good editing today... I won't always do it, though, but I respect your desire for shorter, more focused videos. I'd like to be able to do all of it (long and winding, short and straight, etc) as each type has a place and a purpose - and an audience.


  • User profile image

    @Charles, fair play, please accept my appologies Charles. I really mean that.

    Let's move along.


Add Your 2 Cents