[.net] C# Vs Java (Please no flaming)

Started by
103 comments, last by Washu 19 years, 5 months ago
Hi guys, just waondering wat language people prefer here out of C# and Java and why? Is C# and its .NET framework necessity almost like or identical to Java and its JVM necessity? Is Java sooo still widely used or will C# dominate it? Im just interested in this topic and those questions do not form any part of my opinion just idles thoughts Ive seen from some people. I personally prefer C#, I dont know why, but Im relatively new to C#. Thanks DarkStar UK
---------------------------------------------You Only Live Once - Don't be afriad to take chances.
Advertisement
Is C# and its .NET framework necessity almost like or identical to Java and its JVM necessity?

Yes.

Is Java sooo still widely used or will C# dominate it?

This is asking for flames... Gardner expects both to grab 50% of the new software projects... At the moment this is true in my experience. Chances are that most large companies will (have to) embrace both.

The choise between .NET and J2EE is primarily a choise between software vendors (MS <-> the rest)
MS: single vendor -> can be very inovative
MS: single vendor -> enormous lock-in
the rest: multiple vendors -> shop for the best/fitting solution
the rest: multiple vendors -> competing again themselves is crippling standards and progress

Just my 2c

Cheers
BTW: when you ask "just waondering wat language people prefer here out of C# and Java" my answer is C# but that because the language is newer and I like Visual Studio.

Comparing .NET to J2EE is something completely different but far more important than the language.

Cheers
C# is the 'finished' version of C++ for applications :)
Quote:Original post by Saruman
C# is the 'finished' version of C++ for applications :)


No, its VB with C syntax. Or, its twisted Java. Either way, its C++ for people who dont want to have to deal with the nitty-gritty. And the generics are still a joke (compared to C++ templates) so it isn't done yet.

Alternately, Java is called C++--, so C# is C++-=1. In other words, saying the same thing slightly differently.
-- Single player is masturbation.
[Everything below is my opinion. Nothing should be construed as fact. This is how I see things. Doesn't make my viewpoint correct. :)]

I can produce code in both Java and C#. C# is native to Windows and for a company producing corporate, in house, Windows based applications, is a no brainer.

Java works well, is very similar to C#. It isn't standardized (C# the language is a standard, at least) and is supported by Sun, who don't have a clear plan for the future for it, as far as I can see. Java is also hindered by the erratic numbering. What's 1.4 vs 1.5? JDK 5? What? J2EE 2? What the hell is that?

Java is much more supported in the open source arena. There's a ton of free applications for it (Eclipse, anyone?) and a ton of developer support and knowledge free for the taking.

The only difference between the two to me is who backs it and the library supporting it. The .NET BCL is fairly comprehensive and organized; I haven't worked with Java enough on large projects to comment. .NET got lost in the Microsoft marketing mechanism and confused a lot of people.

[References to Visual Basic are for Visual Basic 6, not VB.NET.] As far as C# vs. VB -- I find few similarities between them. There are some shared iterators, and C# is aimed at "ease of use", but that doesn't mean it's a bad language. If I can sit down and write code that can be read aloud and understand -- then I think that code is clear and easy to follow, debug, and write. Visual Basic was aimed at hiding all of the mechanisms from the programmer - abstracting away the complexity. C# doesn't do this -- I'd love to see the Reflection or Remoting namespace implemented in Visual Basic.

C++ code also doesn't fit that bill very often. C++ is like building a kit car -- yea, it's awesome, it's fun, it's got a LOT of power and flexibility -- but C++ isn't very handy when you just got handed an application that has to be done in two days and you're at ground zero.

I can develop in C#. I can code in C++. The difference is subtle, but important.

How'd I stray off into C++? *sigh*

..what we do will echo throughout eternity..
There was a thread on the mono list the last days where the question came up about why Ximian chose to go with .NET instead of building on Java. These are some of the points(edited for clarity):

Quote:
Almost every aspect of Mono/.NET is Java-like but better:
* P/Invoke vs JNI
* Reflection (Attributes vs. null)
* Remoting
* Value types are actually types
* The class library is (seems?) more complete (e.g. System.Web).
* Extremely easy web integration (mod_mono included, vs. Tomcat, etc.)
* CLS standard for cross-language compatibility.
* Focus on cross-language compatibility from day one.
* C# language is an updated and cleaner version of another OO language.

--AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.[Project site] [IRC channel] [Blog]
Quote:Original post by Pxtl
No, its VB with C syntax. Or, its twisted Java. Either way, its C++ for people who dont want to have to deal with the nitty-gritty.

He said no flames.
Quote:
And the generics are still a joke (compared to C++ templates) so it isn't done yet.

C# generics do not aspire towards being C++ templates, a mechanism widely regarded as horribly broken.
--AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.[Project site] [IRC channel] [Blog]
Quote:Original post by Pxtl
Quote:Original post by Saruman
C# is the 'finished' version of C++ for applications :)


No, its VB with C syntax. Or, its twisted Java. Either way, its C++ for people who dont want to have to deal with the nitty-gritty. And the generics are still a joke (compared to C++ templates) so it isn't done yet.


There is a reason I stated that.

List of components I am building for my base engine (it is being developed in unmanaged C++):

- Garbage Collection and memory management
- Events and delegates
- Properties and property lists

and the list could go on.. but no need to. These are for core system processes and are vitally important to an engine.. a hell of a lot more important than a graphics lib, input, etc. Why do you think these types of things were implemented in the C# language? Gee I wonder.. probably because they are some of the more needed patterns used by application programmers. The only reason I am still using unmanaged C++ instead of C# is for math really.

And trying to compare generics to the C++ broken template system? There isn't an experienced C++ developer that can say the template system was a good design choice.
Hey now, try and keep it civilized...

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

This topic is closed to new replies.

Advertisement