DZone recently had a chance to sit down with Bill Wagner, author of 'More Effective C#: 50 Specific Ways to Improve Your C#'. In this interview, Bill discusses new features of the C# language, his views on 'effective code', and the future of C#.
DZone - Tell us a little about what you do at SRT Solutions?
Bill Wagner - I'm one of the two founders. The company has a very flat organization, so I suppose I'd say I'm one of the most senior software folks. That means I get to spend my days building software, and helping our less experienced folks learn to be better software engineers and developers.
As a company, we build software for our customers, help mentor customers' development teams, and try to provide guidance for building better software.
DZone - What value does SRT Solutions provide to its customers?
Bill - We've got really smart developers that understand that the goal of software is to help customers succeed. Creating great software only works if that great software fulfills real business needs. They do a great job understanding that software isn't the end goal, it's the means to a real end.
DZone - What new features in the C# language motivated you to write this follow-up to "Effective C#"?
Bill - LINQ, and the functional language features have had a tremendous effect on how software gets written today. Those additions to the language meant there was enough new features and techniques to justify an entire new book. Of course, so many features in C# 3.0 are enabled by generics, so that's another area that had a lot of coverage.
Overall, there were quite a few new features, and those new features add up to new paradigms for C# developers.
DZone - What is your definition of effective code?
Bill - Effective code meets expectations, and expresses the design intent clearly. It's also resilient over time. Finally, any competent developer should be able to read effective code, understand its intent, and make any modifications or updates without degrading the quality of the code.
DZone - What is your background with C# and .NET development?
Bill - I've been developing with C# since public betas were available for C# 1.0. I came to C# from C++ and Java. I've been working with C# ever since. I've helped several customers utilize C# for their strategic software needs. Along the way, I've developed the list of practices that are covered in both Effective C#, and More Effective C#. I believe it's got a great future as a premier language on the .NET platform.
DZone - What do you think the next big improvements in the C# language will be?
Bill - I'm most excited about the support for dynamic dispatch in C#. That capability will make it much easier for developers to use C# for core algorithms, that are likely statically typed, and still interact with high-productivity dynamic languages. Those additions will make it easier for developers to consistently use the best tools possible for every task.
Right now, mixing static and dynamic languages requires a lot of work. It's a lot of plumbing code, using reflection and casts and other error-prone techniques. That's where the biggest shift will be in the next couple years.
DZone - What do you do as a Regional Director for Microsoft?
Bill - Regional Directors are an amazing community. We are asked to provide early feedback on product ideas, and discuss competitive offerings with respect to Microsoft offerings. In return, we are often asked to discuss new technologies with customers and other members of the software community.
DZone - DZone is very focused on the developer community. Can you tell our readers a little about your involvement in user groups and other community activities?
Bill - I'm the president of the Ann Arbor .NET Developers Group. I'm past president and past program chair for the Great Lakes .NET User group. As a past board member, I make sure I'm available if anyone needs any help. Thankfully, our region has some fantastic leaders stepping up, so no one needs to be the single driving force for any of our user groups for very long. Our offices also host the Ann Arbor group. I also try to get to all the user groups in our areas to speak at least once a year. Finally, I'm speaking at CodeMash again in January of 2009 (www.codemash.org). That's a fantastic community-organized conference in Sandusky Ohio.
DZone - Who should buy your book?
Bill - An Effective book is meant to be your second book on a subject. I assume you've used C# professionally, and you've probably read one of the comprehensive tutorials on the subject. As a second book on C#, I can concentrate more on techniques and idioms, rather than syntax. I'd recommend it to any professional C# developer that wants to improve.
DZone - Do you have any future books in the works?
Bill - Writing a book is a huge time commitment. Right now, I'm enjoying the break, and just working one job. I'm sure I'll write another book, but I haven't put anything together yet.