views:

697

answers:

12

I been programming in c++ for over 10 years now, it is my favorite programming language. I'm just a bit concerned that it's popularity is fading away, atleast in windows application development, because of c# and the .net framework. I'm not against c# or .net, I've actually program in those, and I'll admit, some things in c# and .net are easier to do than in c++. BUT, I really want to keep c++ as my primary language that I'm an an "expert" in. I may be weird, but I just find c++ fun to program in.

I been doing some research and finding that most c++ jobs out there are for embedded systems, atleast the ones I found, it may be because I'm looking in Huntsville AL. I'm not really job hunting because I'm very happy with my current job; but I just want to make sure the technology I'm using today is pretty "future proof".

The company I work for, we do document imaging and we have an encryption library. We have written a web server in c++, heck we have alot of libraries we're written over the years in c++. When we need a user interface we usually do it in MFC or make a web interface. We have converted some of our libraries into .net and written some user interfaces in c# using windows forms. All of our core libraries are c++ though.

What fields are you c++ programmers out there working in? Are you planning on staying with c++ are you're primary language of expertise? And you c++ programmers out there who are job searching, what fields are you finding demand for c++ in?

Thanks in advance.

+13  A: 

Scientific computing and 3D data visualization

In scientific computing, if you need performance and multi-platform (LINUX, lot of weird UNIXes + windows), C++ is the way to go as a higher-level alternative to the omnipresent FORTRAN. Furthermore, for GUI, using good multiplatform frameworks as Qt and graphics with OpenGL permit to run the same code everywhere.

As FORTRAN, C++ will stay there for legacy code for a long while, even if its not the flavor-of-the-day anymore.

Blklight
C++ isn't really a higher-level language than Fortran, it's just an alternative.
Amuck
Higher level "constructs" and syntax than FORTRAN then. Even with the latest syntaxic improvements, FORTRAN is a software engineering nightmare IMHO. You can do bad things in both languages, but you can do cleaner abstractions in C++.
Blklight
+5  A: 

People are still using C/C++ for embedded development (at least, that's where all my jobs have been), but even here, we're starting to see things like C# and Flash creeping in (at least for the gui's)...

dicroce
would you say a computer science or computer engineering degree is better if I want to do embedded development. I'm about to head back to school for my degree. Embedded software development has kindof struck my interest because of the demand for it in my town.
cchampion
It's a fun field... Go for the computer science degree... If you have the desire, both would be ok.. But I think the CS degree is better...
dicroce
I have a EE degree which is highly overlapped with CompE. Honestly, if embedded development is truly your aim I would go for a CS degree. To have fun in a CompE degree you really have to love to design hardware, which is more about concepts like parasitic capacitance and metal oxides than it is about serious programming.
temp2290
+10  A: 

I've seen most demand for C++ developers for mobile, desktop and various server-side stuff (video streaming for example).

Keep in mind that while the number of job positions for C++ may seem small in comparison with Java and .NET, the recruiters are having a really hard time to find C++ developers as well. So you shouldn't worry too much.

StackedCrooked
+1, the job-to-qualified-applicant ratio matters more than the absolute number of jobs until the number of jobs drops to almost nil.
Harold L
yeah that is a good point.
cchampion
+1  A: 

I'm not a programmer by profession, but use programming for problem solving (for some number crunching or data processing issues) whenever Excel is not enough… C++ is my language of choice because of the run-time performance that can be achieved. For my area, I don't see another viable option at the moment.

Another reason for me is that C++ is somewhat "cross platform". Obviously, you cannot run your program on another platform without some modification, but you can expect it can be done with some effort. Although C# may be a good platform, major investments in that direction are at risk due to possible future development of that ecosystem or your company strategy.

If you are 100% sure that you will keep things on Windows for a long time, you have to decide elsewise. In the UI area at least MS is clearly moving away from C++.

mkluwe
if you choose c# you can still deploy it in other platforms thanks to mono, right?
João Portela
Yes, I can deploy in other Unices and hope for the best. I'm not apt to discuss the technical pros and cons of mono at all. Besides that, quite a lot of people have strong feelings against mono in the free software camp, but that's a non-technical issue.
mkluwe
+10  A: 

Game engine development. Notably high-end ones. But this usually means specific platform knowledge, and a specific frame of mind if you will.

Bahbar
+7  A: 

There is still a lot of need for C++ in Finance. Although a lot more of the UI aspects are handled in C# or Java the performance critical stuff and models are frequently still in C++.

Alaric
+2  A: 

iPhone App Development

Frank Krueger
That's Objective-C, not C++.
swegi
The compiler supports Objective-C++, and has for a long time.
greyfade
You can create your entire iPhone app in C++ if you'd want. You just need to put a thin Objective-C++ wrapper around it to connect it with the API.
StackedCrooked
I have 3 iPhone apps written almost entirely in C++
Frank Krueger
+3  A: 

Right now I'm working on an office resource management app. Yes, the typical LOB program and I'm writing it in C++... The only thing I'm a bit annoyed at is the lack of a powerful ORM layer, I end up writing the DB access more or less by hand. C++ makes up for it with a powerful GUI library (Qt) and cross-platform capabilities.

I prefer using as few languages as possible on a project, ideally one, so I needed a language that could do pretty much everything, both high and low level, on any mainstream platform and fast. I intend to stick with C++, and use PHP or C# if there's a need for it.

I've seen openings in antivirus/security, CAD/CAM, imaging, GPS software (phones/embedded), gaming and so on.

rpg
FYI you may want to have a look at the Poco C++ project, as it offers database access.
StackedCrooked
+2  A: 

Both are alive and well in the computer games industry. Though C++ tends to be more widely used than C.
Interestingly there's backlash starting in the games industry against the use of OOP and C++, particularly for high-performance runtime code. Albeit a small but high-profile group of developers have been presenting and blogging about this.
See Mike Acton's blog if you want to see what I mean! ( Off topic I know but still very interesting )

zebrabox
+4  A: 

C/C++ are still very big in the embedded space, and I doubt you will see anything like C# in that space for a while, as C++ just recently entered embedded markets as a viable language.

Zanson
+1  A: 

I work in finance on trading technology, where performance is critical, and we therefore use C++. We do use C# on al frontend systems though.

Adhemar
+1  A: 

Games, Embedded, iPhone, Legacy Systems

DigitalRoss