In the Community is a regular series spotlighting members of the C++ / developer community. This week, the spotlight is on Marius Bancila, a developer and C++ MVP.
Marius has been developing desktop applications for 10 years, using different technologies including C++, C# and Java. C++ has always been his preferred language of choice. He has been awarded Microsoft MVP for VC++ since 2006 for his involvement in online communities with focus on VC++ and native technologies. He is the co-founder of codexpert.ro, a site for the Romanian C++ community. He currently works for Visma, a Norwegian-based company, and develops ERP systems mainly written in C++.
C++ in 140 characters or less?
C++ stands for control and fine tuning. C++ is deterministic, but relies on you to know what you’re doing. It’s not that hard as they say.
Because I like it. Because it happens to be the first major language I learned. Because, and I know this sounds silly to the managed world people, I like to be in control of what’s allocated or release and when that happens. Because you can create a broad variety of applications, small or large. Because C++ application don’t eat all your memory or take forever to load. And because of other reasons too.
What do you like most about C++?
Probably the determinism of releasing resources, including memory, of course. I like the efficiency of C++ and its simplicity. Because I believe once you learned C++ you can see it’s not that complicated as they say. Yes, sometimes you need to know more low level stuff than with other (managed) languages, but that can only make you a better programmer.
Libraries. And especially libraries for building UIs. And working with XML. I mean, OK, we have STL, boost, loki and others, but if you look at the variety of features available as .NET libraries, and if you try to compare, you can see that C++ is way behind especially when it comes to tools for UIs. MFC is just obsolete. Yes, I know that in Windows 8 you can use the native XAML framework for building UIs for C++ applications, but that’s just WinRT. I’d like and many others like me would like to have similar tools/frameworks for pure C++ applications. My wish is that STL should feature support for working with XML and VC++ should provide a modern framework for writing UIs for the desktop.
And equally to that I dislike the slow pace of C++ evolvement. It just takes too much for new standards to be approved.
What advice would you give to new C++ developers?
Forget about char* and other C-lish (I hope you see the pun) things. C++ is not C with classes. C++ is not the world of pointer to char or dynamically allocated arrays. C++ is the world of string and vector, of auto and lambdas. And many other cool things. That’s the C++ you need to learn and use. It has a name and that name is C++11.
Do you have any favorite C++ authors or books?
I think we all favor the holy trinity of C++, Herb Sutter, Scott Meyers and Andrei Alexandrescu. And probably my favorite C++ book is Effective C++.
Where are your favorite technical places on the Web?
It used to be codeguru, where I published and posted a lot in the last ten years. Nowadays is CodeProject and StackOverflow (though I don’t like how the people on SO always happen to know better how to post and slap you on the face for not going their way), and of course, codexpert.ro where we try to bring Romanian C++ developers together.
What question should I have asked?
Is there any interesting public project that you’ve worked on recently?
And the answer?
Yes, I’ve been working together with a friend on an open-source C++ template library called cpplinq that provides .NET-like query operators to sequences of objects in native applications written in C++11. The library is available on http://cpplinq.codeplex.com.