ok, this is it:
java does not interpret at runtime, neither does C#.
most of the program is compiled before execution.
i wrote "most of" since some dependencies cannot be compiled before execution.
java does not compile some static dependencies, while c# does that.
so thats why c# should be faster than java, it doesnt interpret so much.
but on modern hardware, this is nothing to really worry about since you dont make "ultra-graphics" which run at 10fps even on modern graphics cards.
in my opinion, the garbage collection of C# is better than that of java.
this is why i prefer c#.
when i worked with eclipse (written in java), we had to restart our pcs because of memory issues (memory leaks)... but how could that be, if java had auto-garbage collection ?!? it just sucked.
why C# and not Java?
Quote:
I know this is going to offend some people but the truth of the matter is that Java (and the platform) has many issues that just make it a pain in the ass and verbose, it's just an unpleasant experience. No I don't mean it's difficult I mean the language (and platform) is borked. Before anyone tells me otherwise I have 3-4 years past experience with Java so I know what I’m talking about.
Seconded!
Some facts about Java:
1. Java programs are precompiled as the above post mentioned so there is no noticeable performance difference between C# and Java.
2. Eclipse gets a new version every 5-6 months. I currently working with eclipse and it is very stable. Eclipse also has more options which helps to eliminate extra code writing (auto generating code from interfaces, refactoring etc.) I have experience with Visual studio(s) (98 – 2005) and I prefer eclipse over it.
3. Java is not cheap. Bear in mind that along with the open source application servers (e.g. Jboss) there are quite a few vendors that also build application servers (ORACLE, BEA , IBM etc), which costs about 15K per CPU, and most of the J2EE (or JEE) development happens in those kind of servers. An estimation would be that a company to say hello to j2ee needs much more money than to .NET of course there are reason for it, better scalability, the out of the box “enterprise” nature of the J2EE and the fact that the target sector are large companies, banks etc.
4. There are OPENGL binding for java (JOGL, LWGL) specially lwgl supports input much like direct input. Which performs quite well an example the JMonkey engine (http://www.jmonkeyengine.com/) a free engine written in java with many special effects (HDR, Bloom, … )
Finally the only reason I see for not using java instead of c# for game development is that Microsoft has better marketing than Sun and made the .Net framework more appealing in the eyes of developers and most important that java is nightmare in configuration issues. It’s very hard for someone used on Microsoft’s development products to jump to Suns.
Sorry for my bad english.
1. Java programs are precompiled as the above post mentioned so there is no noticeable performance difference between C# and Java.
2. Eclipse gets a new version every 5-6 months. I currently working with eclipse and it is very stable. Eclipse also has more options which helps to eliminate extra code writing (auto generating code from interfaces, refactoring etc.) I have experience with Visual studio(s) (98 – 2005) and I prefer eclipse over it.
3. Java is not cheap. Bear in mind that along with the open source application servers (e.g. Jboss) there are quite a few vendors that also build application servers (ORACLE, BEA , IBM etc), which costs about 15K per CPU, and most of the J2EE (or JEE) development happens in those kind of servers. An estimation would be that a company to say hello to j2ee needs much more money than to .NET of course there are reason for it, better scalability, the out of the box “enterprise” nature of the J2EE and the fact that the target sector are large companies, banks etc.
4. There are OPENGL binding for java (JOGL, LWGL) specially lwgl supports input much like direct input. Which performs quite well an example the JMonkey engine (http://www.jmonkeyengine.com/) a free engine written in java with many special effects (HDR, Bloom, … )
Finally the only reason I see for not using java instead of c# for game development is that Microsoft has better marketing than Sun and made the .Net framework more appealing in the eyes of developers and most important that java is nightmare in configuration issues. It’s very hard for someone used on Microsoft’s development products to jump to Suns.
Sorry for my bad english.
I think most developers don't care about C# versus Java.
Developers should compare the platforms instead of the languages (.NET vs. J2EE)
Decision-makers should compare vendors (Microsoft vs. the Guys in Blue)
Enterprise organisations will use both (emotion vs. practical necessity)
(Don't get me wrong: I am not trying to kill a discussion but statements like "C# vs. Java" or "C# is faster" will get you nowhere when you do not define faster. Faster execution, faster development, faster running out of money, faster...)
Developers should compare the platforms instead of the languages (.NET vs. J2EE)
Decision-makers should compare vendors (Microsoft vs. the Guys in Blue)
Enterprise organisations will use both (emotion vs. practical necessity)
(Don't get me wrong: I am not trying to kill a discussion but statements like "C# vs. Java" or "C# is faster" will get you nowhere when you do not define faster. Faster execution, faster development, faster running out of money, faster...)
Quote:Original post by Anonymous Poster
we had to restart our pcs because of memory issues (memory leaks)... but how could that be, if java had auto-garbage collection ?!? it just sucked.
Quite easily. And it can happen just as easily with .NET. It all depends on how the application is programmed. If you are still holding references to objects that you no longer need, they will not be GC'd. This happens on both platforms.
When I was first learning Java I couldn't figure out why it was missing some data types (unsigned) and why no enumerations. C# has these. I am jumping on the C# bandwagon so as to develop on the Xbox 360. Being managed doesn't really bother me either, just something different. The biggest change is moving from the fixed function pipeling to programmable for the 3D stuff - but that is a good thing.
Just to throw my spare change in...
The .Net libraries are far better than those available for Java for doing single-user applications and games. I haven't kept up with the "enterprise" world much in the last few years, but from what I hear Java is still dominant in that sector over .Net. However, out of the box, the tools available for .Net languages are infinitely better than those available for Java.
.Net offers fully native widgets (widget libraries for Java are pretty much crap IME), a cohesive library where Java's libraries are typically disjoint and much less internally self-consistent, and so on. Java is older, but this is not necessarily an advantage. Programming languages aren't like wine; if you just ignore them, they get worse, not better.
Java's problem is that it has grown unevenly over the years, and is extremely inconsistent between versions and even in individual libraries within single versions. .Net has its quirks, of course, but they are much less severe since the framework is more or less a single effort rather than an organic growth over time. And, of course, there's Managed DirectX - no 3D API bindings for Java come remotely close to MDX.
The real kicker, though, is that the .Net languages (since 2.0) are far more powerful than Java. Anonymous delegates, higher-order functions, robust reflection support... these things make a huge difference when it comes to creating concise and elegant code. In general, the .Net languages offer vastly better options for solving problems than Java, and that will make another huge leap forward once 3.0 arrives. Of the .Net languages, C# has (subjectively speaking) the most comfortable syntax, since it eliminates a lot of the verbosity of VB.Net, even though the languages are functionally almost identical.
Java was a good idea, with a patchy-at-best implementation. .Net has now leap-frogged it, and is promising to go much further in a short amount of time. Looking towards the future, the stuff coming in 3.0 (and what that hints at for the future) is going to make .Net very powerfully appealing to more skilled programmers who can really take advantage of those language features. Java has a lot to catch up to, or it risks becoming irrelevant outside the enterprise niche.
The .Net libraries are far better than those available for Java for doing single-user applications and games. I haven't kept up with the "enterprise" world much in the last few years, but from what I hear Java is still dominant in that sector over .Net. However, out of the box, the tools available for .Net languages are infinitely better than those available for Java.
.Net offers fully native widgets (widget libraries for Java are pretty much crap IME), a cohesive library where Java's libraries are typically disjoint and much less internally self-consistent, and so on. Java is older, but this is not necessarily an advantage. Programming languages aren't like wine; if you just ignore them, they get worse, not better.
Java's problem is that it has grown unevenly over the years, and is extremely inconsistent between versions and even in individual libraries within single versions. .Net has its quirks, of course, but they are much less severe since the framework is more or less a single effort rather than an organic growth over time. And, of course, there's Managed DirectX - no 3D API bindings for Java come remotely close to MDX.
The real kicker, though, is that the .Net languages (since 2.0) are far more powerful than Java. Anonymous delegates, higher-order functions, robust reflection support... these things make a huge difference when it comes to creating concise and elegant code. In general, the .Net languages offer vastly better options for solving problems than Java, and that will make another huge leap forward once 3.0 arrives. Of the .Net languages, C# has (subjectively speaking) the most comfortable syntax, since it eliminates a lot of the verbosity of VB.Net, even though the languages are functionally almost identical.
Java was a good idea, with a patchy-at-best implementation. .Net has now leap-frogged it, and is promising to go much further in a short amount of time. Looking towards the future, the stuff coming in 3.0 (and what that hints at for the future) is going to make .Net very powerfully appealing to more skilled programmers who can really take advantage of those language features. Java has a lot to catch up to, or it risks becoming irrelevant outside the enterprise niche.
Note to self: Don't try to reason with religious fanatics.
[Edited by - LizardCPP on September 1, 2006 2:05:39 PM]
[Edited by - LizardCPP on September 1, 2006 2:05:39 PM]
My opinion is that it is a question of momentum and endurance.
Look at how quickly .NET has developed; especially XNA... support for XBox360 on PowerPC chips!!! Look at the 3rd party support that's hitting the market simutaneously:
- TorqueX -- http://www.garagegames.com/products/torque/x/
- Visual3D Architect .NET -- http://www.visual3d.net/Home/tabid/36/Default.aspx
- SUVA 3D Engine -- http://www.suva3d.com/index.html
In addition, development firms trust Microsoft's committment to .NET as a gaming platform. Check at the quotes from this article 2 years ago:
- http://www.secretlevel.com/main.php?page_type=item_pages&page=press_release&release=219&button_id=2
There's just no equivalent in the Java world to what's going on here.
Look at how quickly .NET has developed; especially XNA... support for XBox360 on PowerPC chips!!! Look at the 3rd party support that's hitting the market simutaneously:
- TorqueX -- http://www.garagegames.com/products/torque/x/
- Visual3D Architect .NET -- http://www.visual3d.net/Home/tabid/36/Default.aspx
- SUVA 3D Engine -- http://www.suva3d.com/index.html
In addition, development firms trust Microsoft's committment to .NET as a gaming platform. Check at the quotes from this article 2 years ago:
- http://www.secretlevel.com/main.php?page_type=item_pages&page=press_release&release=219&button_id=2
There's just no equivalent in the Java world to what's going on here.
Quote:Original post by LizardCPP
[snip quote]
What do you base this on?
[snip quote]
Swinglabs, check out SwingX.
Also when you have used a IDE like IntelliJ you relaise how bad Visual Studio is, and how much easier you're life can be.
Lizard
I base it on subjective experience. All of this is primarily subjective; if you're really committed to some language, you're going to love it no matter how bad the language actually sucks, and how much proof there is of that fact. (I usually cite Java as my canonical example of this phenomenon, but I realize that'd be a bit unfair. Let's pick on, say, Fortran or COBOL here.)
There is some objectivity though. As for games... please show me an existing, market-ready set of Java libraries I can use to create a simple 3D app over DirectX. It'd better take less than an hour, or C# will win. Actually, I'll be gracious and permit OGL too. Either way, if it takes more than an hour to get to a point where I've got 3D geometry moving on the screen and controlled by keyboard input, Java's libraries have lost. It's just one person's experience, but I'd lay down good money that MDX just plain creams anything Java's got.
As for fat-client apps... I've sat down with .Net and written entire applications in minutes; one of them I did for a friend and old coworker, and it was so successful that we're having lunch today to discuss selling it to other clients. I did a complete angle visualization tool in about 30 minutes in C# - and I barely know any C#.
By contrast, I spent two years trying (off and on) to pick up Java. Now, to be fair, I haven't done any UI work for a while now in Java, so I may be behind the times - but I do know that as of last time I checked (would have been 2004) there was no Java UI library that wasn't a steaming pile of feces. There certainly wasn't anything that could touch WinForms for rapid development. I learned WinForms in a matter of minutes, just tinkering around; I once spent three days trying to get a Java program's UI to do what I wanted, and ended up quitting due to the overwhelming urge to shoot myself in the head.
As for IntelliJ ... more subjectivity [smile] I'd rather be castrated with a rusty spoon. Twice.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement