tags:

views:

322

answers:

6

I want to go into native c++ programming after University, but it seems like languages that compile with JIT (like .Net) are overtaking c++. What does the future hold for Native code?

+1  A: 

If you go desktop C++ is still the way to go especially if you want to be cross platform.

Java GUI Libraries are way to slow and .NET is not portable (the GUI part). But C++ is a language beast, the only language where i can understand managers to ask for 5 years experience.

In the server world the VM/JIT has so many advantages that only basic infrastructure is coded native. If this is the industry you want to join learn (infrastructure) or don't learn (applications) C++.

Its also pretty popular in embedded programming where you can't fire up a hundert MB virtual machine.

Since C/C++ is the only fast imperative native programming language left in mainstream you should learn at least the basics.

Lothar
To be fair, you can code semi-portable applications written in C# with Mono. But you're right, it still doesn't beat C++ in terms of portability.
musicfreak
I wrote for GUI parts. Yes simple WinForms Apps might be usable but no WPF or full Graphics capabilities.
Lothar
+5  A: 

There are a lot of opportunities to work on natively compiled C++ code. It's especially popular (along with C) in non-PC environments such as embedded and real time environments, and in a lot of situations where there is some level of safety certification required.

Game programming, where performance is usually critical, is another area where C++ is very popular.

It is less popular than it was in traditional 'desktop' applications and web service applications although you can find native code projects in both these areas - especially the former - if you hunt around.

Charles Bailey
Still, if you want to develop cross-platform desktops apps, it's still one of the best if not the best choice, in combination with Qt.
Frank
+2  A: 

There will always be a place for C/C++

  1. Any application that needs to be as fast as possible will be written in a native language like C/C++
  2. Any application that runs on a device that has limited memory will run better in C/C++ since memory management is more deterministic.
  3. Operating systems will continue to be written in C. That include device drivers.

Up until recently one always had the luxury of speeding an application up by using better hardware. Will Moore's law being stretched to the limit, chances are the performance improvements will have to come from software. Chances are that languages that give better performance will come into their own in this regard.

doron
One could argue that the future of CPUs is an increasing number of cores. C and C++ are perhaps not the best languages in that environment, though there are obviously some decent libraries to provide the necessary support.Also, some operating systems are already written in a language other than C. That's kind of a technicality, though.
ChrisInEdmonton
+8  A: 

C++ is the seventh programming language I have been professionally paid to program in, and I'm sure won't be the last. My advice is not to think of yourself as a specific language programmer. Even if JIT takes over the world, it has to get down to native machine code eventually, and someone has to write that software.

Karl Bielefeldt
7 languages? I'm keen to guess..C? VB? COBOL? RPG? PL/I? Assembler? Did I get any hits? But +1, agree 100%.
SqlACID
I wish I could up vote this 100 times. The instant you see yourself as an X language programmer is the instant you become obsolete. It's above the higher level concepts, not the language itself.
Chris Thompson
According to this http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html its the 3rd.
Martin York
+3  A: 

I'm not sure what you mean when you say that you will be "going into native C++ after college". Your career will not be defined by what languages you know, it will be defined by what you can do with those languages. What do you want to do? If you are creating desktop apps, then no, C++ would be a silly choice.

However, C++ is used widely in many applications. I work in systems and we use C++ for everything. .NET isn't an option in my world, but the guys doing the GIU's next door use it for everything. It comes down to what you want to do with your career. The language you use will come naturally, you are thinking about it backwards.

Ed Swangren
A: 

Yes, of course it is:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

http://langpop.com/

And some of the great features like rvalue-references, variadic templates, uniform initializations, lambdas, unrestricted unions, thread-local storage, extern templates and ... yet keeps C++ to be a good choice for 20 years of the future, until the C++ committee decides to publish another new standard for the other remaining years (like a do...while!) (:

Note that the computers needs native programs to run! Java, .NET, python and ... needs native environment to run on it! so, native programs are the base of softwares.

PC2st