Fog Creek Software
Discussion Board




C++ or Java ?

Hello,
I am a software developer with about 6-7 years of development experience in the private sector. Most of that has been with C/C++ development in both Windows and Unix platforms. I did a little bit of Java but not much.

After a layoff, I recently took a position in a Govt agency where I am doing development with the following technologies : Java, JSP, Servlets and Weblogic.

My thinking was that learning these new skills would round off my skill set as I see a lot more posts with Java (or Java + C++) than C++ alone.

However I recently see some openings in a financial software company for C++ (MS shop only with MFC and VC++) which I could qualify for.

My current dilemma is this : Should I continue in the current position or should I try for the C++ opportunity at the private firm ?
On one hand, the salary at the private firm is obviously better than my current position. But I worry that I will then lose the chance to pick up Java and web-based technologies and make myself less marketable in the long-term.

What do you all think ? Do you see a contnuing bright future for C++ ? I appreciate your giving a response.

Thanks,
AS

Arti Shah
Tuesday, June 01, 2004

There are far more positions in Java/.NET than C++. On the flip side, there is dramatically more "qualified" applications for the former than the latter, and I've noticed a trend lately that the C++ are getting extremely lucrative (while the "struts Java programmer" is becoming a low paying position).

.
Tuesday, June 01, 2004

Pick whichever job is better, irrespective of the programming language.

AEB
Tuesday, June 01, 2004

Learn both.

Sassy
Tuesday, June 01, 2004

Java is the new VB, it's popular now, loads of jobs.
But C++ is not going anywhere.

Products tend to go though a few of phases.
1. Lets code like hell in (VB/Java) and get the thing out the door.
2. Product becomes successful.
3. Customers want scalability and multiple platforms.
4. Product get slowly re-written in C++.

Learn both, picking up Java is about knowing the API's rather than syntax. Don't listen to the C++ haters, just look at KDE, Adobe, Maya etc...

Craig
Tuesday, June 01, 2004

Stick with Java for now.
With your "6 to 7 years" of experience in C++, and with the next few years of Java, you will have credibility in both.

If you go to C++ now, I believe it is true you will miss the Java tide, and be stuck should C++ become a legacy language.  Certainly, most new technology development is focussed on Java at this time.

AllanL5
Tuesday, June 01, 2004

Government jobs have better benfits packages as well as retirement plans.

Andrew Burton
Tuesday, June 01, 2004

Why are financial firms demanding C++? Just curious.

Li-fan Chen
Tuesday, June 01, 2004

Go for the job with more moeny.  I wouldn't worry about shutting the door on Java experience.  C++ is going anywhere soon.  Besides me as a Java programmer, if I was going to hire a someone i would consider C++ experince with a little Java as an asset, not a liabilty. 

Bill Rushmore
Tuesday, June 01, 2004

"Why are financial firms demanding C++? Just curious."

Most likely because that's what their 10-year-old system was written in.

T. Norman
Tuesday, June 01, 2004

I work at a trading firm.  The traders do not like the applications written in Java; they don't like the time they take to load, or the non-native feel of swing.  Also, speed is of the essence.  Java is not slow, but its tough to beat c++ performance, at least in any language that doesn't make my brain leak out my ears.

Timothy Flechtner
Tuesday, June 01, 2004

>4. Product get slowly re-written in C++

Heh, places I've been are the exact reverse.  Replacing aging C++ systems with Java rewrites, often incorporating a web interface for an old thick client interface.

Chris Kessel
Tuesday, June 01, 2004

>>Why are financial firms demanding C++? Just curious.

Working with realtime data feeds and number crunching requires performance and C++ gives it. These are not enterprise IT CRM apps. These are for a trading desk handling a lot of money where speed and reliability is critical. The firm I work for got rid of java and use primarily C++.

Tom Vu
Tuesday, June 01, 2004

" These are not enterprise IT CRM apps. These are for a trading desk handling a lot of money where speed and reliability is critical. The firm I work for got rid of java and use primarily C++."

so much for don't worry about speed, Moore's law will cover your ass.

No matter how much computing power we have we will never abstract all computing away to a high level.  It's the need, the need for speed.  So, assembly, C and C++ are safe for the next 30 years.  We'll just learn not to turn them into such security holes. 

SNT the evolution of RMS
Tuesday, June 01, 2004

Which language you enjoy more should also be a consideration.

Julian
Wednesday, June 02, 2004

>> so much for don't worry about speed, Moore's law will cover your ass.

It's not about Moore's law at all.

A competitor could be writing the same thing in C++.

Speed-wise, that's a competitive advantage over Java/.NET, no matter what the state of the art is.

Alex
Wednesday, June 02, 2004

>> so much for don't worry about speed, Moore's law will cover your ass.

Thats what my boss thought about his wonderful VB server applications , just "throw more hardware at it mate!".
Now I get to re-engineer them in C++, he gets to pay me.

Craig
Wednesday, June 02, 2004

When it comes to developing business applications for a living, I believe that marketability is the most important consideration you need to be mindful of.

I vote for staying with the government job for now. IMO, having a year or two of PAID Java server programming experience on your resume will make you more marketable. In the future, if you can't find/obtain a corporate job developing enterprise apps in Java or C++ you should still look attractive to smaller companies due to your previous C++ programming language experience.

One Programmer's Opinion
Wednesday, June 02, 2004

Think not about learning Java or C++, but learning a vertical market: finance or government.

If you can handle C++ then learning Java won't be too much of a problem.  There is also a possibility that the financial company may start projects with java: and it will probably be real-time multi-threaded interesting java, rather than web-app boring java.

FG

Furious George
Wednesday, June 02, 2004

They both are bad

Billy Bob
Wednesday, June 02, 2004

Just remember, there are millions of people in the third world learning "marketable" technologies at a rapid rate.  Get in a position where your vertical market knowledge and ability to communicate with management and users on-site makes you difficult to replace by someone in a place with a drastically lower standard of living.

Finance may be a good place to establish those skills.  On the other hand, politics may make it more difficult to replace a government employee with someone working off-shore.

Jim Rankin
Wednesday, June 02, 2004

>> so much for don't worry about speed, Moore's law will cover your ass.

Moore's law doesn't help memory speed which is more bound by the speed of light than and high cost of delivering bandwidth to the CPU.

So actually, Moore's law excarebates the problem - by making the CPU faster, the memory becomes a more dominant fraction of the runtime.

So...you need to optimize for memory usage.  Oh wait -- that's hard to control on Java and other managed run-times.  Better stick with C++ for performance.  Moore's law won't save you.

emacsdude
Saturday, June 05, 2004

*  Recent Topics

*  Fog Creek Home