why C# and not Java?

Started by
72 comments, last by Oluseyi 17 years, 8 months ago
Quote:Original post by Promit
The libraries are there. I've only told you that a half dozen times, as well as explaining the exact extents of mono support and linking you to the ISO standard for said libraries.

You're either an idiot, or a troll (or most likely both).


So, can you just open a VS project in Linux and run it?
Advertisement
I've never ever used C#, but I'm going to try it after hearing all this bitching, see what all the fuss is about!

This language war is pathetic, because you are arguing over the support libraries, not the benefits of the language as a programming tool. All programming languages have their advantages and disadvantages, arguing over libraries and how they are organised is not really going to help.

I think Swing is getting a bit too much abuse in this thread. Abuse AWT all you want, I hate it. But what is fundamentally wrong with Swing? I find it easy to throw together a GUI in swing that doesn't look too shabby, it's one of the easiest libraries I ever learnt to use.

There are also several commercial games written in JAVA, yes they might not be Quake 5 or Half Life 3, but they are still games.

You can use JAVA to make good quality games. You can use C# to make good quality games. You can use Python to make good quality games. You can use any programming language you like to create a good quality game, arguing over performance and libraries is pointless.


Quote:Original post by Anonymous Poster
So, can you just open a VS project in Linux and run it?
Yes, assuming you didn't use any Windows specific libraries. (That caveat should be kind of obvious.) I've done it a number of times.

As far as Swing goes, my objections are performance related. For simple things it's fine, but once you start getting more complex, dealing with things like listboxes with long amounts of content, etc, it starts to really grind. Maybe not horribly, depending on exactly what you're doing, but the GUI just gets really laggy. SWT, on the other hand, uses native widgets and is blazing fast. I can't understand why you'd use Swing instead of SWT, except maybe for distribution headaches. (Swing is already on any PC JVM, SWT needs to be deployed.)

[Edited by - Promit on September 2, 2006 11:36:42 AM]
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Promit
Yes, assuming you didn't use any Windows specific libraries. (That caveat should be kind of obvious.) I've done it a number of times.

Quote:Original post by Promit
The libraries are there. I've only told you that a half dozen times, as well as explaining the exact extents of mono support and linking you to the ISO standard for said libraries.


Could you please make up your mind? I know 100% of Java's libraries are there, so how can you call something that has a considerable amount of libraries tied to Windows "crossplatform"?

Can you build a GUI application using VS and run it on Linux?

.Net developers have a really strage notion of what is "crossplatform". The truth is, when it comes to crosplatform applications, Java is King.
Quote:Original post by Anonymous Poster
Can you build a GUI application using VS and run it on Linux?
Yes, but you can't use Microsoft's libraries. You'll need to use Gtk# instead, which is part of the Mono project.

Well, that's not entirely true. Mono has an incomplete implementation of System.Windows.Forms, which is a Microsoft specific library that they provide anyway. The most complex app I know of that has been ported is Paint.NET, which is about 100 KLOC with a fairly complex GUI. You're kind of treading on thin ice there though. Gtk# is pretty much guaranteed to be safe anywhere.

I'm not about to claim that C# supports as many or more platforms as Java. Things like the cell phone sector throw that to hell. But when it comes to desktop and server machines, I can develop GUI apps in C# that can be retargeted across Windows, Linux, Mac OSX, BSD, and Solaris, running on x86, PPC, and SPARC chips, with no particular fear of problems.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Promit
Yes, but you can't use Microsoft's libraries. You'll need to use Gtk# instead, which is part of the Mono project.


In other words, no. You need to use a library not specified in the "ISO standards". So your standards argument took yet another shot at the heart because it doesn't guarantee a minimum set of libraries for developing crossplatform applications.

Quote:Original post by Promit
Well, that's not entirely true. Mono has an incomplete implementation of System.Windows.Forms, which is a Microsoft specific library that they provide anyway. The most complex app I know of that has been ported is Paint.NET, which is about 100 KLOC with a fairly complex GUI. You're kind of treading on thin ice there though. Gtk# is pretty much guaranteed to be safe anywhere.


Pay attention to the words: "incomplete" and "treading on ice". Do you have any hope that it will ever be completed?

Just like the Wine project? Forever not running Windows applications properly? Do you really think an "open sore" project can keep up to date with Microsoft and its thousands of programmers?

Mono is the kind of project for people like you to argue that "it's crossplatform" when in fact all Microsoft wants is to keep it one step behind, so Windows will always be the best .Net platform around.

Quote:Original post by Promit
I'm not about to claim that C# supports as many or more platforms as Java. Things like the cell phone sector throw that to hell. But when it comes to desktop and server machines, I can develop GUI apps in C# that can be retargeted across Windows, Linux, Mac OSX, BSD, and Solaris, running on x86, PPC, and SPARC chips, with no particular fear of problems.


How many "server" applications do you know that run on Unix and are made in .Net? Mono is flaky, only a student would use it for things like that.

Now it would be funny to see GTK applications on the Mac, to be loathed by every Mac user. At least Swing has the System Look And Feel, and the JVM on the Mac is made by Apple itself.

Give up dotNet users.
Quote:Original post by Anonymous Poster
Give up dotNet users.

FEAR

Quote:
How many "server" applications do you know that run on Unix and are made in .Net?

UNCERTAINTY

Quote:
Do you really think an "open sore" project can keep up to date with Microsoft and its thousands of programmers?

DOUBT

mmmmmmmmmmmmmm I can smell some Slashdot just reeking off this thread.

You sound like an old friend of mine that was a really great C/ASM application programmer but was dead against using 'slow' object oriented languages and wouldn't move to C++. Unfortunately he doens't work as a developer anymore and is employed by a lawncare service, which hey I'm not going to criticize what he does... it's just funny because you sound exactly the same heh :)

Also the 'thousands of programmers' working at Microsoft (working on C# and the framework)? Buddy do you know how many people are on the C# team? The .NET team? VS.NET team? The original MDX 'team'? XNA team? Seriously do you really think that 'thousands' of programmers work on these things? I think you need to go read the book 'The Mythical Man Month' and get some insight into how software engineering actually works.
At least Mono folks are working on it, unlike all the JVM implementations that are already done but still inconsistant with each other.

I've actually done multiplatform QA on a shipping enterprise java app. Crossplatform Java just isn't there in practice. Sure, it might compile and run everywhere, but does it run well? Does it run correctly? Does it toss random exceptions when encountering different platform niceties? Does the UI actually not look like trash next to native?

But frankly it's all moot. The OP question was specifically for Gamedev, where cross platform requirements are different.
Quote:Original post by Saruman
Also the 'thousands of programmers' working at Microsoft (working on C# and the framework)? Buddy do you know how many people are on the C# team? The .NET team? VS.NET team? The original MDX 'team'? XNA team? Seriously do you really think that 'thousands' of programmers work on these things? I think you need to go read the book 'The Mythical Man Month' and get some insight into how software engineering actually works.


And do you? So you answer a question with other question?

As fas I know you can't make any firm affirmations either. So your Mono "open sore" project is entirely based on faith? Would you base your business in faith?



Quote:Original post by Telastyn
At least Mono folks are working on it, unlike all the JVM implementations that are already done but still inconsistant with each other.


Faith.

Quote:Original post by Telastyn
I've actually done multiplatform QA on a shipping enterprise java app. Crossplatform Java just isn't there in practice. Sure, it might compile and run everywhere, but does it run well? Does it run correctly? Does it toss random exceptions when encountering different platform niceties? Does the UI actually not look like trash next to native?


And how would .Net avoid such "problems" you have found? The UI will only look like trash if the developer is incompetent.

Quote:Original post by Telastyn
But frankly it's all moot. The OP question was specifically for Gamedev, where cross platform requirements are different.


Where .Net can't still be called crossplatform either.

This topic is closed to new replies.

Advertisement