General Question

archaeopteryx's avatar

Is there any real difference between Java and C#, in terms of capabilities and functionality?

Asked by archaeopteryx (1004points) May 25th, 2009
Observing members: 0 Composing members: 0

16 Answers

phoenyx's avatar

Java is better cross-platform. C# is better for windows development. C# has closures.

phoenyx googles

I came across these code examples and this wikipedia article which showed some good comparisons.

cwilbur's avatar

In the large, no. In the small, there are likely to be small differences in expressivity that really annoy the @#$% out of someone used to one or the other. And the available libraries are likely to differ.

And of course C# only works on Windows. I think that’s probably the biggest practical difference.

arturodiaz's avatar

One question, can’t C# work in linux and os x under mono?

archaeopteryx's avatar

@arturodiaz
True, but most of the Free Software Community are against mono.

arturodiaz's avatar

@archaeopteryx Free Software Community is against many things, I don’t see anything wrong with it. It is just a matter of personal philosophy.

archaeopteryx's avatar

@arturodiaz
Actually, no.
It’s a matter of Microsoft and Novell’s alliance in an attempt to exploit the Free Software community and eliminate any sort of competition.

It’s called EEE (Embrace, Extend and Extinguish).

noyesa's avatar

C# and Java are similar to the way they work, especially when you follow their lineage back to C, which was the first mainstream programming language that was more programmer-centric than it was compiler-centric. C and its extension C++ are both compiled languages. While Java and C# are part of a similar move to an intermediate bytecode language, the languages themselves are very different on the lowest level. The grammar and syntax is very similar, but both are part of totally different frameworks. C# is the poster-child language for the .NET framework, while Java has its own, eponymous framework. The Java framework is definitely more cross-platform than .NET, and rightfully so as Java was designed back when the Internet was starting to become popular and the need for a cross-platform application environment was clear. The .NET framework aims to boost application security and make code more portable between different Windows operating systems, so the target spread is quite different between the two platforms.

C# is a brand new language and is becoming the de facto standard for Windows software development, while Java is slowly (but surely) falling out of use as the dominant web programming language as dynamic languages like PHP, Ruby, and Python come into their own. Some popular Java projects like Groovy and JRuby have extended the relevance of the Java framework on this playing field by allowing veteran Java programmers to use the framework with dynamic languages, but I’m seeing a clear trend of Java programmers jumping to Ruby or Python.

cwilbur's avatar

@noyesa: C was “the first mainstream programming language that was more programmer-centric than it was compiler-centric.”

Er, you are aware that Lisp, Algol-68, COBOL, and FORTRAN all predate C, in some cases by a matter of decades?

archaeopteryx's avatar

@cwilbur

True. But for example, COBOL and FORTRAN were oriented around solving and representing complex mathematical problems, equations and algorithms. They were basically directed to mathematicians more than software engineers.

C was made for a certain purpose in mind, which is to be the main platform upon which the Unix kernel/operating system will be established.

noyesa's avatar

@cwilbur Well aware. Lisp dates back to the late 50s, and FORTRAN shortly thereafter. However, those languages were developed for very specific computational tasks, whereas C was developed to make programming more sensible to those programming on embedded chipsets in Assembly language, or other primitive languages, largely at the cost of compiler efficiency. FORTRAN is used to this day in supercomputer applications because it compiles very neatly and efficiently.

cwilbur's avatar

No, FORTRAN is used to this day in supercomputer applications because that’s what the engineers and scientists program in.

You need to sit down and read a good book on the history of programming languages. You’re so far off base on a lot of this stuff that you’re not even close enough to be called wrong.

noyesa's avatar

Ooookay. I’ll make sure I steer clear of trivia pissing contests with you in the future.

arturodiaz's avatar

Pascal rulz!

cwilbur's avatar

@noyesa: It’s not a trivia pissing contest; you made a glib tidy statement that’s patently false and unsupportable—and actively misleading—and when called on it, you babbled on in marketing-speak.

C is currently used for embedded chipsets; it was originally designed to abstract away the differences between the computers Unix was originally implemented on. Unix did not have a lot of official support, and computers were expensive, so Unix was built and rebuilt on several different architectures. The first versions of Unix were in assembly, and a pain to port. And @archaeopteryx got this right before you started babbling about embedded chipsets.

This is not trivia; this is history. And you really have two options: post correct information, or accept that someone is going to come by and correct you when you’re wrong.

noyesa's avatar

@cwilbur I never said you were wrong. You are not, however, the Fluther Dean of Admissions. I don’t have a problem with your knowledge, I have a problem with your condescension and ego for which there is not room in here for. Post something constructive rather than “look what I know” to me. I didn’t start this thread, and I don’t intend to muddy it up more than you and I already have. Have a little tact.

cwilbur's avatar

@noyesa: I started out tactful, and you continued to babble nonsense. I escalated to get the message across, and it appears I did.

If you post things that have only a vague resemblance to accurate information, I will say something about it, and I will probably not be tactful, because I value correct information far more than I value the feelings of people who are spreading false information—especially when they continue to spread false information after the first correction. Consider it an incentive to check your information before you post it.

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther