by August 8, 2013 0 comments

Why should a novice developer choose VC++ over VC# for developing Windows apps?

Of late, there is an increased interest in writing C++ code as we move into a connected devices’ world. C++ is still the king of performance as you do not pay a cost for language facilities that you do not use. This is not the case with managed technologies like Java or the .NET. Having said that, there are multiple reasons why a novice developer should choose VC++ over other languages for developing Windows Store apps.
a. With Visual Studio 2012, Microsoft introduced a set of extensions to the C++ programming language to ease development of Windows Store apps. These extensionsenable a developer to be more productive and not have to worry about low level programming semantics.
b. The updated C++ programming language, C++11 offers features that allow a developer to write efficient, safe and portable code without sacrificing runtime performance.
c. Excellent integration between C++ /CX and C++11. As a developer, you can write maximum portable code with C++11 and only write the minimum amount of platform-specific code with C++ /CX.
d. The native Windows Runtime and XAML frameworks. What this means for a C++ developer is the absence of any additional frameworks or runtimes between their code and the platform code.
e. First class support for C++ programming within Visual Studio 2012.
f. One of the traditional strengths of C++ has been the abundance of libraries like Boost and OpenMP. With Visual Studio 2012, you get C++AMP in addition to the Standard Template Library (STL), MFC etc.
g. C++ is the best way to write stunning looking apps and games using DirectX.

Most of the technical institutions in India prefer to impart training in Turbo C/C++ as a basic programming course and then move to Visual Basic 6.0 and Java without touching upon .NET at all!
Turbo C++ is obsolete and so is VB6. The C++ programming language has evolved beyond what is supported in Turbo C++. It is unfortunate that technical institutions in India still focus on both Turbo C++ and VB6. What we need is for curricula to evolve along with technology changes. The training should focus on educating developers to choose the right tool for the right job and not pigeon-hole themselves into one particular technology. An important part of training should be to develop an open mind and learn the nuances of multiple technologies.

Where does managed code fall short on reducing power/energy consumption?
In a power-constrained device like a tablet or a phone, as a developer you should be concerned with running as much code as possible with as little power consumption as possible. This creates a fundamental dichotomy as managed languages are designed to support developer productivity while sacrificing runtime code performance. The design of managed languages means that you are burning more CPU cycles per unit work accomplished when compared to the same code written using C++. With modern C++, you can have the best of both worlds: be more productive by writing safe and efficient code using the awesome C++11 and C++ /CX features and also get the most efficient performance with minimal power consumption.

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.