Preface

It feels like a very long time since I wrote the preface to the first edition, but it’s actually only been about two and a half years. In that time, there have been many changes both for myself and in the landscape of technology.

In my personal life, I’m now very proud to be a software engineer at Google—with the one downside that I don’t spend as much time working in C# as I used to. I’ve found a new addiction in the form of Stack Overflow, the developer question-and-answer forum. My youngest sons who were barely two years old when the first edition came out are now about to start school. I’ve had the privilege of giving talks about C# in London, Oslo, Copenhagen, and various other places, with more to come. It’s all been a lot of fun, although occasionally somewhat hectic.

The technological world has been no less shaken up. I’m writing this on a netbook—a word which barely had any meaning when I was writing the first edition. The smartest of smart phones was pretty primitive by today’s standards, and my current laptop would have served as an outrageously overpowered desktop machine. The developments in software have been less mind-blowing in my opinion, although many of the projects which are now becoming mainstream (such as Parallel Extensions) were in their early stages back then. Silverlight had only just made the leap to being a fully managed language, and ASP.NET MVC was still very young, and wouldn’t have its 1.0 release for some time. Of course, C# itself has changed as well—otherwise there’d be little reason to bring out a second edition.

Despite all this change, the focus of this book has stayed the same. I remain committed to helping people form a more intimate connection with C#. As ever more frameworks pop up—and as we have to learn them ever more quickly—it’s vital to have a firm foundation to build on. We should at least be secure in saying, “this is a generic method call, this is a property access, this is a lambda expression being converted into a delegate,” and so on.

I believe the general standard of language knowledge is improving, in fact. I’ve been pleasantly surprised to see how well LINQ seems to be understood by many developers, although to some it’s clearly still a black box of magic. Admittedly these observations are mostly via Stack Overflow, which is obviously a biased, self-selecting subset of all developers—but even so, I think there’s reason for optimism. I hope the first edition of this book has played some small part in that improvement, and that this edition will too.

I keep meaning to learn a new language, properly. I’ve dabbled with F# and Python. I’ve promised myself that I’ll learn Erlang and Haskell. I keep meaning to see what all the fuss is about with Ruby... but C# pulls me back, every time. It’s not perfect, but it usually allows me to express myself clearly and concisely, and those are probably the most important attributes a language can have. One day I’ll manage to stray far enough away to start genuinely thinking in a different language—but until that time, I hope I can convey some of my passion for C# to you in this book.

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

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