Which is better, C# or Java?

R

RayLopez99

I got into this argument with one of these open source developers the
other day--and this was a face-to-face conversation not an internet
flame war, so I had to be polite (bummer): which is better, C# or
Java?

His defense of Java (from memory): it is more popular (yes, I think
stats do say it has 30% mindshare as opposed to 15% mindshare for
C#); it is more scalable (that is, not locked into proprietary
stacks); it is more stable (that is, C# 3.0 may break C#2.0, at least
for corner cases); it is more "cross-platform" (though I would argue
who cares about Linux and Apple for the desktop, but I think he was
making the case that you can port it into a mobile phone OS like
Android easier).

Plus this guy likes Unix languages like Python, so he's one of those
old timers that lerned Unix when growing up.

So, which is better, C# or Java?

RL
 
R

RayLopez99

It totally depends what the target system/appliction is.

How long is a piece of string.

I was looking for a more definitive answer, like Java is better, so I
could defend it with C# is better, but thanks anyway. I personally
think the answer is C#, since I am familiar with C# and I do not want
to learn Java.

It's like asking the question: "which language is the best?". The
'comprehensive' answer, which I think you or somebody like you would
say, is "no language is better than another, and you should strive to
learn every language in every country you are living in". Fine and
dandy--right now I'm in Singapore--but as a practical matter you
cannot live long enough to learn every language, so the "real
answer" (I posit) is: ENGLISH. Spoken by nearly anybody who is
anybody world-wide. Lern it and you're: Done.

RL
 
C

Clogwog

RayLopez99 said:
I got into this argument with one of these open source developers the
other day--and this was a face-to-face conversation not an internet
flame war, so I had to be polite (bummer): which is better, C# or
Java?

His defense of Java (from memory): it is more popular (yes, I think
stats do say it has 30% mindshare as opposed to 15% mindshare for
C#); it is more scalable (that is, not locked into proprietary
stacks); it is more stable (that is, C# 3.0 may break C#2.0, at least
for corner cases); it is more "cross-platform" (though I would argue
who cares about Linux and Apple for the desktop, but I think he was
making the case that you can port it into a mobile phone OS like
Android easier).

Plus this guy likes Unix languages like Python, so he's one of those
old timers that lerned Unix when growing up.

So, which is better, C# or Java?

RL


http://forums.devshed.com/net-development-87/but-which-is-better-java-or-c-65293.html
 
A

Arne Vajhøj

I was looking for a more definitive answer, like Java is better, so I
could defend it with C# is better, but thanks anyway. I personally
think the answer is C#, since I am familiar with C# and I do not want
to learn Java.

It is very rare that you can say that language X is better than
language Y without any type of qualifications.

If you know C# better than Java then your C# code will better
than your Java code so pick C#.

Your unknown twin brother may know Java better than C# and make
the opposite decision.
It's like asking the question: "which language is the best?". The
'comprehensive' answer, which I think you or somebody like you would
say, is "no language is better than another, and you should strive to
learn every language in every country you are living in". Fine and
dandy--right now I'm in Singapore--but as a practical matter you
cannot live long enough to learn every language, so the "real
answer" (I posit) is: ENGLISH. Spoken by nearly anybody who is
anybody world-wide. Lern it and you're: Done.

Learning all languages may be impossible, but it is definite
possible to learn multiple languages.

Arne
 
A

Arne Vajhøj

I got into this argument with one of these open source developers the
other day--and this was a face-to-face conversation not an internet
flame war, so I had to be polite (bummer): which is better, C# or
Java?

His defense of Java (from memory): it is more popular (yes, I think
stats do say it has 30% mindshare as opposed to 15% mindshare for
C#); it is more scalable (that is, not locked into proprietary
stacks); it is more stable (that is, C# 3.0 may break C#2.0, at least
for corner cases); it is more "cross-platform" (though I would argue
who cares about Linux and Apple for the desktop, but I think he was
making the case that you can port it into a mobile phone OS like
Android easier).

Plus this guy likes Unix languages like Python, so he's one of those
old timers that lerned Unix when growing up.

If he likes Linux, Android etc. then Java is probably a better choice
for him (Mono is not that widely used).

If you happen to prefer Windows and Windows Phone then you should
pick C# (Java works fine on Windows but Java is not available on WP).

Arne

PS: I am not sure that I would call Python a "Unix language" - it works
fine on non-Unix OS'es including Windows.
 
R

Registered User

So, which is better, C# or Java?
Trying to answer this question is like trying to determine which form
of footwear is better : dress wing-tips or rubber boots. Neither one
is better than the other but there are situations where one is more
appropriate than the other. Fanboi crap is just that: crap.

regards
A.G.
 
N

Norman Peelman

I was looking for a more definitive answer, like Java is better, so I
could defend it with C# is better, but thanks anyway. I personally
think the answer is C#, since I am familiar with C# and I do not want
to learn Java.

So you were just trolling again looking for an argument... hmmm.
 
R

Registered User

Learning all languages may be impossible, but it is definite
possible to learn multiple languages.
One of the beauties of OO is the skills are transferable between
languages. OO is a high-level, perhaps the highest-level, design
pattern. Abstractly Java and C# are more the same than they are
different. The differences between the two languages are simply
implementation details.

An individual with good OO skills should have little difficulty
becoming fluent/competent with a new OO language.

regards
A.G.
 
M

Markus Schaber

Hallo,

RayLopez99 said:
I got into this argument with one of these open source developers the
other day--and this was a face-to-face conversation not an internet
flame war, so I had to be polite (bummer): which is better, C# or
Java?

C#, as a language, has caught up and now is in advance of Java, in
terms of language evolution.

But the language alone is not everything, you should not try to value
them in isolation.

For example, to get an IDE as powerful as Eclipse doped with some
free plugins, you need to spend a lot of money for VS and addons like
Resharper.

The standard libraries are equally huge and complete, but some areas
are better covered by .NET, others by java.

For windows only development, C# has easier deployment and is more
integrated. But for cross platform development, Java has advantages,
the non-windows implemementations for .NET (I know of Mono, Rotor and
DotGnu) are more or less behind, and will never catch up in some areas.
For servers, Java has more free infrastructure (jBoss, TomCat etc.) and
library you can profit from.
His defense of Java (from memory): it is more popular (yes, I think
stats do say it has 30% mindshare as opposed to 15% mindshare for
C#);

Popularity also depends on the purpose: Java is popular for teaching at
universities, server application development and android programming,
but it is far less popular for desktop applications, for example.
it is more scalable (that is, not locked into proprietary
stacks);

Scalability is not equal to proprietary stacks, AFAICS. But from my own
experience, some JVMs there scale much better on "big iron" than .NET.
it is more stable (that is, C# 3.0 may break C#2.0, at least
for corner cases);

..NET 2.0 and .NET 4.0 were incompatible (in corner cases) updates, .NET
3.0 and 3.5 are not incompatible, but .NET 4 allows parallel execution
with .NET 2.0 in the same process. And the binary compatibility back to
Java 1.0 comes at some cost, there are reasons why other programming
languages do the same as .NET and take the pain of incompatible updates
(e. G. python 3, Perl 6).
it is more "cross-platform" (though I would argue
who cares about Linux and Apple for the desktop, but I think he was
making the case that you can port it into a mobile phone OS like
Android easier).

But the mobile java variants are rather different from desktop java.
The "old" java for phones is a horror to support, and android is its
complete own world (although a rather interesting one). And other
mobile OSes like iOS do not support java.
Plus this guy likes Unix languages like Python, so he's one of those
old timers that lerned Unix when growing up.

Python is not a "unix language", it supports Windows very well.
So, which is better, C# or Java?

Both. :)


Gruss,
Markus
 
A

Arne Vajhøj

One of the beauties of OO is the skills are transferable between
languages. OO is a high-level, perhaps the highest-level, design
pattern. Abstractly Java and C# are more the same than they are
different. The differences between the two languages are simply
implementation details.

An individual with good OO skills should have little difficulty
becoming fluent/competent with a new OO language.

Designing good software is the hard part of development.

It does take some time to learn the the features and the idioms of a
new language.

But a well designed program in slightly clumsy code is way way
better than a poorly designed program using all the tricks of
the language.

Arne
 
C

Chris Ahlstrom

Registered User wrote this copyrighted missive and expects royalties:
One of the beauties of OO is the skills are transferable between
languages. OO is a high-level, perhaps the highest-level, design
pattern. Abstractly Java and C# are more the same than they are
different. The differences between the two languages are simply
implementation details.

And, for better or worse, there are a tremendous amount of differences in
"implementation details" between the two languages.
An individual with good OO skills should have little difficulty
becoming fluent/competent with a new OO language.

Hey, you should try parsing error messages from Boost code! :)

--
Say many of cameras focused t'us,
Our middle-aged shots do us justice.
No justice, please, curse ye!
We really want mercy:
You see, 'tis the justice, disgusts us.
-- Thomas H. Hildebrandt
 
C

Chris Ahlstrom

Markus Schaber wrote this copyrighted missive and expects royalties:
.NET 2.0 and .NET 4.0 were incompatible (in corner cases) updates, .NET
3.0 and 3.5 are not incompatible, but .NET 4 allows parallel execution
with .NET 2.0 in the same process. And the binary compatibility back to
Java 1.0 comes at some cost, there are reasons why other programming
languages do the same as .NET and take the pain of incompatible updates
(e. G. python 3, Perl 6).

The churn in .NET is incredible.

Now you end up with at least four versions of .NET on any reasonably useful
Windows box.

I dunno, I still get a lot of mileage from C++ and a little bit of C.
 
A

Arne Vajhøj

Markus Schaber wrote this copyrighted missive and expects royalties:

The churn in .NET is incredible.

..NET versions have come out quite frequently.

But so did Java and PHP when they were younger.

What the heck even cfront managed to do 4 versions in 10 years
when C++ was young.
Now you end up with at least four versions of .NET on any reasonably useful
Windows box.

In reality you just have 2: 4.0 and the 3.5/3.0/2.0 combo.

Arne
 
C

Chris Ahlstrom

Arne Vajh?j wrote this copyrighted missive and expects royalties:
.NET versions have come out quite frequently.

But so did Java and PHP when they were younger.

Same for Python and Perl!
What the heck even cfront managed to do 4 versions in 10 years
when C++ was young.


In reality you just have 2: 4.0 and the 3.5/3.0/2.0 combo.

That's four right there, and I have machines that need 1.0 as well.
 
A

Arne Vajhøj

Arne Vajh?j wrote this copyrighted missive and expects royalties:

That's four right there

I only consider it two.

3.0 and 2.0 are part of 3.5.
and I have machines that need 1.0 as well.

It can happen.

But requiring 1.x is not that common.

Arne
 
J

JeffM

You can't compile either with Microsoft Word (y'know
the ONLY "serious" work that can be done with a computer
according to you), so it doesn't matter anyway.
Go back to your secretarial work
and don't let it bother your silly little head.

Registered said:
Trying to answer this question is like trying to determine
which form of footwear is better
Many will find that their bosses make the choice anyway.
Fanboi crap is just that: crap.
As is WinTroll crap. (Note the OP's cross-posting.)
Since this individual will never write a single line of code,
his asking the question is simply masturbatory.
 
R

RaZiel

I got into this argument with one of these open source developers the
other day--and this was a face-to-face conversation not an internet
flame war, so I had to be polite (bummer): which is better, C# or
Java?

His defense of Java (from memory): it is more popular (yes, I think
stats do say it has 30% mindshare as opposed to 15% mindshare for
C#); it is more scalable (that is, not locked into proprietary
stacks); it is more stable (that is, C# 3.0 may break C#2.0, at least
for corner cases); it is more "cross-platform" (though I would argue
who cares about Linux and Apple for the desktop, but I think he was
making the case that you can port it into a mobile phone OS like
Android easier).

Plus this guy likes Unix languages like Python, so he's one of those
old timers that lerned Unix when growing up.

So, which is better, C# or Java?

RL

Whichever language gets the job done.

In my opinion it's more about the libraries than the languages. Doing
COM with Java, just doesn't make sense. UNO API makes more sense in
Java. Android too, but some can be done in C++ (Android NDK). Win32 in
C/C++/C#/VB/Delphi, SwingX is just to restrictive. Preprocessing of
resources in Perl/Python (yes, even on Windows). XUL in Javascript.
Testing COM interfaces in VBS (one line only). Win32 system hooks
(keyboard, mouse) in C++. And so on...

Last I checked you could create Android projects in C# too. I wouldn't
recommend it though.

Today, it's much more valuable to have experience in more than just one
language. And know at least one scripting language. It will make you
much more efficient at solving a bigger range of problems. Let the
language committees care about the languages, and just hope there will
be a universal language some time in the future. Until then, be flexible
and don't waste your energy on dead-end discussions.

- RaZ
 
R

Registered User

Registered User wrote this copyrighted missive and expects royalties:


And, for better or worse, there are a tremendous amount of differences in
"implementation details" between the two languages.
The differences are more syntactic than semantic. With enough
abstraction each implemention detail gets pushed down far enough to
become just a few lines of code. OO design patterns are powerful
tools.
Hey, you should try parsing error messages from Boost code! :)

I am not familiar with these error message things you speak of :)

regards
A.G.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top