views:

218

answers:

8

C# and VB .net (higher level languages) tend to be good for n-tier business applications and such.

I find C++ a very interesting language and would like to spend more time developing in it.

What kinds of applications are better suited to C++ applications? Are many windows forms apps (for example) created using C++?

+2  A: 

Wall Street derivative trading application. Written in C++ mainly for speed and legacy purpose.

Ngu Soon Hui
Thanks, Wayne provided a very comprehensive response to that question. Also some good insight into "unmanaged C#".
Russell
+3  A: 

C++ is rapidly losing popularity in the GUI 'forms' area, and other 'front-end' uses.

It is a very mature, and very powerful language (and development environment), but for many people it is too 'complicated' for rapid development; a highly prized attribute when doing front-end development.

Where C++ has retained it's edge, and is still highly respected, is in high-performance libraries in financial markets, simulations, and in video games / high end visual rendering.

John Weldon
Thanks John, that is good to know re: forms/gui etc. What are the advantages of a mature language like c++? Out of curiosity.
Russell
+6  A: 

C++ is best suited for system programming. For example, creating windows services. Also, traditionally it has been the language of choice for writing high-performance code such as in 3D graphics or scientific applications.

In general, C++ frameworks (MFC, etc) are tedious for creating graphical applications compared to modern alternatives such as WPF and Windows Forms.

Justin Ethier
Is high-performance code (eg 3d games) still written in C++?
Russell
Yes, games are still typically written in C++ or C. Quake, Source, and Unreal engines are all C/C++
Billy ONeal
*Game engines* are still written in C++ - actual game producers mostly use some middleware nowadays and glue it together with its respective scripting engine.
Georg Fritzsche
You are comparing a programming language (C++) with GUI libraries (WinForms and WPF).
rpg
+2  A: 

I have seen that C++ is used majorly in product development where the dependencies are to be kept to a minimum and you need the installer to be small. Also, if I am asked to write application that rely heavily on APIs or has a tight integration with Windows (like the Shell Extension) I would go for C++ rather than .NET.

A9S6
Good point with the shell extension, maybe if I tried to write something like tortoise svn for TFS maybe a good idea to try :)
Russell
+4  A: 

Where you need your app to run on more than just .Net
or you need to use existing libraries other than .Net
or you care about performance
or you don't want to rewrite your app for the next 'big thing'

Martin Beckett
A: 

C++ is good for anything that assembly is good for.

jeffamaphone
and what is assembly good for?
Russell
+3  A: 

Additional areas where you won't get rid of C++ soon:

  • cross-platform development - to avoid code duplication for everything
  • 'glue' between different applications, frameworks and languages
  • downward compability - trendy frameworks mostly don't care about that, with C++ you can support all as needed
Georg Fritzsche
+2  A: 

C++ is a good systems programming language. It means, C++ is well suited for creating operating systems, language runtimes etc. C++ is also a good choice for writing programs that need to interact closely with hardware. Examples are device drivers, embedded systems etc. One plus-point of C++ is that it brings OOP and generics to the realms of low-level systems programming.

Some popular software written in C++ are the Java virtual machine, MySQL database server, Adobe Photoshop (and many other Adobe products), Maya, BeOS, Google (web search engine, GFS, MapReduce, Chromium), Mozilla etc. Probably that list gives a good idea of the type of software that could be created with C++. Also see this list of C++ applications.

Vijay Mathew