In the Community is a regular series spotlighting members of the C++ / developer community. This week, meet Nish, a C++ MVP, author and long-time developer.
Nish has been writing code since 1990 when he first got his hands on an 8088 with 640 KB RAM. He has been a Microsoft Visual C++ MVP since October 2002, and maintains an MVP tips and tricks web site - www.voidnish.com where you can find a consolidated list of his articles, writings, and ideas on Visual C++, MFC, .NET, C++/CLI, WPF, Silverlight, and Windows RT.
He authored a romantic comedy - "Summer Love and Some more Cricket" when he was still in college. Later, he also wrote two programming books - "C++/CLI in Action" by Manning Publications and "Extending MFC applications with the .NET Framework" by Addison-Wesley. He's active in the C++ and .NET communities on MSDN and Code Project, and also founded the Central Ohio C++ User Group in 2012.
C++ in 140 characters or less?
C++ is all about power, performance, and flexibility. It's a little harder to use than comparable languages, but absolutely worth it.
An emotional reason would be that C++ was the first serious programming language I learned after a couple of years of only doing GWBASIC and Assembler. For many years, it was my most comfortable programming language, and while today I am equally comfortable in other languages like C#, C++ is the one language that gets me as close to the metal as I need to (without having to resort to C or Assembler). For any situation where performance is key, it's an automatic choice.
What do you like most about C++?
I like the fact that I can always optimize my code for performance without the runtime getting in my way, and RAII is certainly a big factor there. I also like how I can use the exact same skills I developed and practiced over several years on new platforms like WinRT by using extensions like C++/CX which do not majorly deviate from standard C++ when it comes to coding approaches and semantics.
The unavailability of standardized libraries and APIs for many tasks where languages like C# and Java have rich libraries available out of the box. Despite WinRT being native, it's ridiculous that .NET developers often have an easier time writing Windows Store applications because they have better library support for routine tasks compared to what's available for C++. I also think MFC as a desktop UI library significantly pales in comparison to something like WPF, so as a C++ developer you are always at a disadvantage when writing UI-rich desktop applications.
What advice would you give new C++ developers?
If you already know C, then it's important to avoid using a C-like approach when learning C++. I would also get one or even two really good books. While C++ may seem harder to grasp compared to managed languages like C#, the power and flexibility you gain from mastering the language is truly immeasurable. In Vader's words, "If you only knew the power of the dark side"!
Do you have any favorite C++ authors or books?
For a guy who has authored books, I am not a very fervent reader these days, but the Effective C++ books written by Scott Meyers have always been a favorite. I also love reading Herb Sutter's writings and watching his presentations/talks.
Where are your favorite technical places on the Web?
For Visual C++ and other Windows-specific programming discussions, the MSDN forums are a cut above the other technology forums out there. It's hard to beat getting responses from the guys who work on the compilers and the libraries. My favorite online hangout would be the Lounge forum on the Code Project website, and it's exciting to be able to discuss technology, programming, gadgets, and science fiction with fellow geeks and coders from all over the world.
What question should I have asked?
As a Windows developer, would you prefer coding solely in C++?
And the answer?
If C++ is the dark side, does that make Luke Skywalker a C# developer? Share your thoughts on Facebook, Twitter or below
YES! Anders 'Yoda' Hejlsberg for ever !
Nice Nish!!! Good job. I use both C# and C++ and I think the only thing that really makes C# easier at times is that so much more is backed into it in the way of libraries and tool integration. Syntactically, C# has grow to be almost as complex and even more so in some ways, but it's typically easy to just grab and plug-in the "stuff" you need. Of course, there are tons of restrictions because of that.
Thanks for your thoughts Nish.