Programming Careers: Java vs C++
February 6, 2007 11:02 AM   Subscribe

What is the market like for Java programmers vs C++ programmers? Is there a difference in salary to start? How about with 5 years of experience in one language? Is there a growing trend in Java (SE/EE/ME) vs C++?

I'm trying to do some research on careers programming in primarily Java vs primarly in C++. While C++ certainly isn't going away anytime soon, I get the feeling that Java is becoming the "hotter" language in terms of job oportunities and market trends. I'm interested in the financial implications of each language, not debates over which language is better (real programmers all use C anyway, right? lol)
posted by bangitliketmac to Work & Money (14 answers total) 4 users marked this as a favorite
 
Take a look at JobStats. It's a UK site, but its graphs give an idea of current demand and historical trends.
posted by veedubya at 12:23 PM on February 6, 2007


I'm 23 and code almost exclusively in C for my job. I have reason to suspect that if I was on one of the teams here at work that codes in Java, I would be getting paid less. There seems to be a shortage of candidates who truly understand basic C-level programming, syscalls, etc.

Of all of my friends and old classmates from my college CS program, I'm just about the only one who writes code that actually compiles. They're all bright guys and know C, but lot of them think that C is "too hard" or "too annoying" to work with day in and day out for rapid development, so they stick to C#, PHP, Ruby, whatever. Since they are plenty of jobs for them where they are, they don't feel the need to switch.
posted by adamk at 12:44 PM on February 6, 2007


Hey, I write almost entirely in C and ... oh, wait, I am insane. Sorry.

Anyway, it's easy to convert C to C++:

// In any C++ program--
extern "C" {
(your C code here)
}

so a C programmer can fearlessly call himself a C++ programmer, unless he's a herself.
posted by hexatron at 12:52 PM on February 6, 2007


C is still the dominant language in embedded software, and that's a big field.

It's a mistake to get too wedded to any single language. A good programmer should be able to work in any language, and to pick up a new one quite rapidly.
posted by Steven C. Den Beste at 12:53 PM on February 6, 2007


Best answer: It's more of a question of which industries are hiring and what languages are used in what industries.

Java is popular with large corporations & financial companies.
.NET technologies (C#, ASP.NET) are more popular in the mid-market and with some ISVs.
C is still going strong in the embedded/systems space.
C++ lingers here and there, though has largely been replaced by Java or .NET stuff.

No one uses exclusively J2SE. J2EE is basically what 90% of people mean when they say "Java". J2ME is restricted to companies working in the mobile phone space.

Ruby (& Rails) is popular with web design shops, like PHP or ASP.NET, etc. Web design shops form their own little world overlapping software development proper.

It's like asking whether you'll make more money with a table saw or a circular saw. If you want to make more money, focus on being a technical architect instead of a coder - in any language. Or better yet, go into sales. Sales people make way more than developers do if that's your only metric. But if you want to be a developer, language isn't really the primary decision point.
posted by GuyZero at 1:03 PM on February 6, 2007


I did a job search with a C++ and Perl-heavy resume and no Java experience whatsoever. The interviewers seemed not terribly worried about my ability to learn Java if necessary assuming my C++ skills were sharp, and the reverse goes as well. (My resume has about 7 different languages on it, though). I wound up with at least three interested C++ shops (and a couple Perl shops too) in a two week timeframe after I managed to find the right recruiters. I managed to find a LOT more Java and .NET listings, though, which I wasn't really qualified for.
posted by mkb at 1:09 PM on February 6, 2007


Look at the following chart of programming language usage on source forge. Source forge is not the industry, but the trends on the graph correspond to what I hear of the market. Java is up, C is way down, C++ is slowly down, a combined mixed bag of Web technologies is up.

Hiring C++ programmers is very difficult nowadays because nobody wants to program in C++ anymore. It is just too painful. Competent programmers who can bear the pain of C++ can command higher salaries as a result.
posted by gmarceau at 1:24 PM on February 6, 2007


C++ is also still used a lot for Windows programming by software companies, although that's a whole different bag than using the same language on Unix.
posted by smackfu at 1:29 PM on February 6, 2007


GuyZero fails to mention that C++ is the dominant language of game programming. They need the performance of C and the ability to handle very complex systems so some sort of object system helps.

They are also all really, really crazy.

I'll be over here with my Python and my C if anyone needs me.
posted by chairface at 2:22 PM on February 6, 2007


GuyZero fails to mention that C++ is the dominant language of game programming.

You are correct, sir. My general point stands - select a specific industry/niche and you'll find that one language dominates.
posted by GuyZero at 3:00 PM on February 6, 2007


Hiring C++ programmers is very difficult nowadays because nobody wants to program in C++ anymore. It is just too painful. Competent programmers who can bear the pain of C++ can command higher salaries as a result.

This is a very important point. Do you want lots of job prospects and lots of competition for those jobs, or do you want fewer job prospects but much less competition and higher pay?

If you can actually bear to program in C++ and do it well, you will indeed be in high demand. But then, your life will suck because you'll be programming in C++.
posted by alms at 5:35 PM on February 6, 2007


I agree with alms, and I'll add a little:

Commercial programming projects are usually commissioned by people who are not in the programming trenches. In the case of ex-programmers, they aren't generally as familiar with the leading curve as enthusiasts are. (Ex: How many managers in well-established companies are going to insist on using Ruby for all projects?) In the case of management-trained project leaders who have rarely if ever touched programming, they can be "evangelized" but they're generally going to go with the safest choice for the business. In both these cases, you're going to find that older, well-worn languages are going to be preferred to their novel counterparts. And the niche languages of yesteryear usually don't make the cut, no matter how mature.

The other thing to keep in mind: a huge chunk of the computer programming marketplace deals with existing or deployed software projects. It is rarely a good idea to do a complete rewrite - even when technically sound, it's often not financially justifiable. (Obsolescence helps, as sometimes the existing codebase reaches a point where it becomes complete junk) And you may be working with a team of people who don't know your preferred language. This is why a lot of financial and embedded systems are still written in FORTRAN, COBOL, C, and other scary old languages. You won't find any startups using those languages. You also won't see Bank of America rewrite all their financial applications and ATM software in C# anytime soon.

The answer to your question is that many programming languages are marketable at all times. Each one carries risk and reward. Learning PHP (and knowing how to apply it to MySQL, AJAX) will probably get you the broadest range of fun jobs, many of them not paying too well. Ruby or Python may get you a job at a startup or a small application company, but you'll be paid poorly and there's a higher than normal likelihood that company may not exist in 3 years. Proficiency in C will keep you employed in boring, Office Space-like jobs. Knowing Java will probably get you the broadest market of jobs, most of them not too awful. (I'd guess that it is used - and requested - in many more new projects now than any C variant, to answer the original question)

If you're starting now and learning any discipline from scratch, I don't know what to tell you. Academically, forget the languages and learn the paradigms (procedural programming, functional programming, object-oriented programming). Economically, it's a volatile profession requiring huge amounts of brain energy, much of it wasted. It would be a different situation if hobbyists, communists), and third-world nationals were not constantly undermining the career plans of programming specialists. Every day is another language, another destitute outsourcing destination, another 16-year-old writing a GPL counterpart to your company's main commercial product. Everyone's a loss leader and innovator in this industry. When they say "you have to love it", they ain't kidding; if you want this industry to put bread on the table for the next 40 years, you won't be doing much else in your life.
posted by brianvan at 11:20 AM on February 7, 2007 [1 favorite]


This is why a lot of financial and embedded systems are still written in FORTRAN, COBOL, C, and other scary old languages. You won't find any startups using those languages. You also won't see Bank of America rewrite all their financial applications and ATM software in C# anytime soon.

This is why you can make a lot of money programming in Cobol. I know people who are making a lot of money programming in Lisp, because there is a small demand but an even smaller supply of highly competent Lisp programmers.
posted by alms at 5:12 PM on February 7, 2007


Cobol is scary? Boo!
(Former Cobol instructor)
posted by Goofyy at 7:54 AM on February 8, 2007


« Older I Have the Audacity   |   New TV for me Newer »
This thread is closed to new comments.