Foreword

Welcome to one of the greatest collaborations you could dream of in the world of C# books—and probably far beyond! Mark Michaelis’ Essential C# series was already a classic when, for the previous edition, he teamed up with famous C# blogger Eric Lippert—a masterstroke.

You may think of Eric as writing blogs and Mark as writing books, but that is not how I first got to know them.

In 2005 when LINQ (Language Integrated Query) was disclosed, I had only just joined Microsoft, and I got to tag along to the PDC conference for the big reveal. Despite my almost total lack of contribution to the technology, I thoroughly enjoyed the hype. The talks were overflowing, the printed leaflets were flying like hotcakes. It was a big day for C# and .NET, and I was having a great time.

It was pretty quiet in the hands-on labs area, though, where people could try out the technology preview themselves with nice, scripted walkthroughs. That’s where I ran into Mark. Needless to say, he wasn’t following the script. He was doing his own experiments, combing through the docs, talking to other folks, and busily pulling together his own picture.

As a newcomer to the C# community, I think I may have met a lot of people for the first time at that conference—people with whom I have since formed great relationships. But to be honest, I don’t remember it—it’s all a blur. The only one I remember is Mark. Here is why: When I asked him if he was liking the new stuff, he didn’t just join the rave. He was totally level-headed: “I don’t know yet. I haven’t made up my mind about it.” He wanted to absorb and understand the full package, and until then he wasn’t going to let anyone tell him what to think.

So instead of the quick sugar-rush of affirmation I might have expected, I got to have a frank and wholesome conversation—the first of many over the years—about details, consequences, and concerns with this new technology. And so it remains: Mark is an incredibly valuable community member for us language designers to have, because he is super smart, insists on understanding everything to the core, and has phenomenal insight into how things affect real developers. But perhaps most of all because he is forthright and never afraid to speak his mind. If something passes the “Mark Test,” then we know we can start feeling pretty good about it!

These are the same qualities that make Mark such a great writer. He goes right to the essence and communicates with great integrity, no sugarcoating, and a keen eye for practical value and real-world problems.

Eric is, of course, my former colleague of seven years on the C# team. He’d been there much longer than I had, and the first I recall of him, he was explaining to the team how to untangle a bowl of spaghetti. More precisely, our C# compiler code base at the time was in need of some serious architectural TLC and was exceedingly hard to add new features to—something we desperately needed to be able to do with LINQ. Eric had been investigating what kind of architecture we ought to have (Phases! We didn’t even really have those!), and more importantly, how to get from here to there, step by step. The remarkable thing was that as complex as this was, and as new as I was to the team and the code base, I immediately understood what he was saying!

You may recognize from his blogs the super-clear and well-structured untangling of the problem, the convincing clarity of enumerated solutions, and the occasional unmitigated hilarity. Well, you don’t know the half of it! Every time Eric was grappling with a complex issue and was sharing his thoughts about it with the team, his emails about it were just as meticulous and every bit as hilarious. You fundamentally couldn’t ignore an issue raised by Eric because you couldn’t wait to read his prose about it. They were even purple, too! So I essentially got to enjoy a continuous supply of what amounts to unpublished installments of his blog, as well as, of course, his pleasant and insightful presence as a member of the C# compiler team and language design team. In his post-Microsoft days, Eric has continued to be a wonderful, insightful voice with a lot more influence on our decisions than he probably knows.

In summary, I am truly grateful to get to work with these two amazing people on a regular basis: Eric to help keep my thinking straight and Mark to help keep me honest. They share a great gift of providing clarity and elucidation, and by combining their “inside” and “outside” perspective on C#, their book reaches a new level of completeness. No one will help you get C# 6 like these two gentlemen do.

Enjoy!

Mads Torgersen
C# Program Manager
Microsoft

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset