• Quick note - the problem with Youtube videos not embedding on the forum appears to have been fixed, thanks to ZiprHead. If you do still see problems let me know.

what are the facts on java vs C# vs C++?

The original poster asked for some hard data, and all he got was more unsupported opinions in reply.

So, let me add mine. :D

C and C++ give you too much rope to hang yourself. It's too easy to write bad, leaky, unmaintainable code using them. They're fine if you have people who can write them well, and are willing to stay with the company and support the code, but that's almost never the case. Yes, you can certainly write bad Java, but it's not as easy.

(This is the point where I should mention that I won the International Obfuscated C Code Contest six times. Not because it's that relevant to my argument, but just because I bring it up every chance I can, for reasons that I'm still working out with my shrink.)

I saw Bjarne Stroustrop speak at a C++ World convention, and he was asked about the C++ vs Java question. His response was basically, "If you look at everything that C++ set out to achieve, well, it pretty much achieved it. If you look at what Java set out to achieve (security, etc) and compare it to how it actually did, well, it doesn't fare too well." Everyone nodded, myself included, but afterwards I thought about it. By that argument, might not COBOL be a better language?
 
But, what are the facts on these three different languages? Google gives me mostly flame wars and unsubstantiated opinions.
And why do you think the JREF forums are immune from flame wars and unsubstantiated opinions?

My opinion (substantiated only by my experience) is:

Java has the cleanest syntax and the best class library. However, for server side (J2EE) applications things get very complicated very quickly.

C# has an exceptionally good development environment (if you use Visual Studio) which makes it very quick and easy to build and deploy client and server applications. It's class library is limited in comparison to Java and, of course, it is effectively Windows only. It has some nice language features missing from Java.

C++ is a bloated monstrosity but it is still my first choice for anything where you cannot use a managed run time.
 
And why do you think the JREF forums are immune from flame wars and unsubstantiated opinions?
Hope?

Desperation?


that said, thanks for your comment, looking forward to dipping my hands in java in two days time.. But i have really come to enjoy C# a lot.

Hell, i even installed mono on my workstation.
 
People who are smart can learn any language, and interviewers for good jobs know this.
You must live in a different world than me - most of us go through recrutiment agencies who create an ignorance barrier between the candidate and the employer. I was once asked if I "had" BASIC. I listed all the various flavours of BASIC I had had experience with (which was many at the time) only to get the response "Pity, what we are looking for is someone who has ordinary BASIC. Thanks anyway, goodbye".

I have also been asked if I "know" milestones - (as though this were a new programming language) and was once turned down for a job because I didnt have "RUP" on my CV - this depite the fact that the top line of my summary reads "7 years experience using, implementing and training others in the Rational Unified Process".
 
Well, having programmed in IBM 1620 ForGo, Interdata asm, Z80 asm (TDL), RATFOR, SQL, masm, C++ (Whitesmith's on up), VB 2.0 to VB, C#, C++ under .net I think C++ is really the best workhorse language for efficient bit level coding of some complexity. Especially if you need control over data memory layout and are interfacing with ASM or device drivers. For quick and dirty, C# is quite good though VB has some advantages when hooking COM objects with variable argument lists. Under .net they are fairly easily combined and the MS 2005 dev tools have good debugging capability.

As I'm typing this I'm loading in another 7.5GB TaQ NYSE DVD to the server. I need to write some front end access components to hook an expected multi terabyte data set to a SQL server - or perhaps go directly to the data set. I'm leaning on doing it in C# though I need access through matlab, will probably use their COM hooks, so I need to test .NET COM interop for compatibility first.
 

Back
Top Bottom