![]() |
|
Reasons to like or hate Java, C# and C++ |
Archon
Member #4,195
January 2004
![]() |
I know this resembles this thread but I'd trying to ask in a more pratical and controlled manner. What would be the benefits of each language compared to each other for: And other questions? |
Simon Parzer
Member #3,330
March 2003
![]() |
Comparison between C++, C# and Java? Quote: 1) Games
C++ wins, because the generated code is super fast, and there are tons of nice multimedia libraries for it. Quote: 2) Business software Here's C++ the looser, because it lacks productivity compared to Java and C#. C# is better than Java for business applications because the resulting applications look better, run faster and are more usable. Quote: 3) Anything else Nothing of the three. Use a combination of LISP and Python. Quote:
And other questions? C# gets stronger and better right now, Java will die eventually. Quote: 5) The interests of businesses? (ie, will business support C# or Java more?) C#, because it's better and it's by Microsoft. Seriously: Companies that switch from C++ to C# usually gain 50% productivity or so. Don't know about Java though. Quote: 6) Whether any deficiencies of one language could be made up by the speed of development or ease of the other? (eg, VB vs those strange languages recently posted) I find C# easier than VB. VB just teaches you bad programming habits. Quote: 7) Availability and completeness of APIs?
C++ has the most complete API, I would say, because you can get just any library for it. On the other hand you can't compare the C++ STL with a .NET framework class library. |
Archon
Member #4,195
January 2004
![]() |
Quote: C# is on the way to change that (WinFX, DirectX) But then wouldn't it "lose" by not being portable? Quote: And Java, ... well it's too slow. Isn't it picking up speed as I think Marcello swears by it... Maybe Java would transfer into a JIT software like C# and speed up? Quote: C# gets stronger and better right now, Java will die eventually. It's not that I doubt your words, but do you have evidence or sources? See, Java would not be my choice of language if it is and will always be too slow for software - but I just thought I had hints that Java was improving and would be a feasible language to do anything with... I really like C#'s syntax and semantics, but it just lacks the hardware-related libraries (DirectX and OpenGL bindings are supposed to be incomplete at the moment) and .NET 3 is coming out soon and Mono/.GNU are behind - I probably wouldn't consider C# if it wasn't cross platform... At least, not for games. But I feel 'loyal' to C++ and it has the speed but I find it frustrating sometimes. |
A J
Member #3,025
December 2002
![]() |
i just hate the people that post daft questions. ___________________________ |
Indeterminatus
Member #737
November 2000
![]() |
Claiming that "Java is slow" is like saying that "driving is slow". The language has no impact on speed whatsoever, it's the cars, erm, the VM. Not all implementations are utilizing JIT compiling, afaik, like VMs on PDAs and mobile phones, but some already do. I don't think that any of those languages will die any time soon (say, the next 20 years or so). However, I lack the experience in industry, so I cannot back that up. Having said that, don't trust any wild assumptions on the topic. A C++ dude most likely will answer in favor of C++, a Java dude in favor of Java, a C# dude in favor of C#, a programmer probably in favor of whichever language allows for the richest set of nifty tricks, and an engineer in favor of whichever technology allows for the most efficient development. Finding a person experienced enough to be able to fairly compare will be difficult, and given that all human beings are subjective in nature, even then the resulting advice would have to be taken with a grain of salt. To put it in a nutshell: I cannot add positively to the discussion. Ignore my post. Bleh. _______________________________ |
Felipe Maia
Member #6,190
September 2005
![]() |
Java is still a child. C# is a Java clone. Business software already uses both of them, because they have pre-built stuff, because OO programing on them are hundreds of time easier than on C++, because they're easily compilable, hence easy to make little changes, updates. |
BAF
Member #2,981
December 2002
![]() |
.Net is by far the best multipurpose library I've ever seen (except for that it's not portable). C# is nice too, and it inherits it. You want a nice sockets API? .Net. You want a native, good-looking, easy to use GUI? .Net. You want X? You can probably find it in .Net. |
Marcello
Member #1,860
January 2002
![]() |
BAF: what does .NET have over Java's standard libraries? One of the wins Java has over C#/.NET is it's been around a bit longer and there's a huge wealth of libraries (many open source) available already. Plus you have stuff like applets and web start if you're dealing with that... C# has the advantage of being designed for Windows, so its programs will feel more like native windows programs than Java programs will. I think with much of game programming going into hardware (IE graphics), the "slowness" of Java or C# is much less of an issue. Most people these days aren't going to be writing games that are cpu-limited, or they're just using the wrong data structures. Obvious advantages of Java/C# over C++ is ease of development, and for businesses that's a definite win. Also potentially more stable/reliable by design (garbage collection etc). You can have less experienced (and thus cheaper) programmers developing in Java/C# and still get the job done (I'm dumb! @ thedailywtf.com though). Definitely for web applications C++ is just stupid these days. You need something that can be dynamically compiled/reloaded easily/on the fly. I will probably try to develop my next game in Java, if only as a self-challenge and to see how reasonable it is (there are a few java game libraries out there, but I haven't really played with them much), but my guess is it's at least feasible now. (Freaking nonstop crashes and system incompatibility with c++/openlayer kinda pissed me off of using C++.) Marcello |
Kitty Cat
Member #2,815
October 2002
![]() |
Java is resource hungry. If you have a program in Java, and an otherwise-identical program in C-something, the Java version will put more strain on your system. This will always be true until they can get Java programs to run without a JRE. That's where Java loses, in my mind. I also prefer a language that does what I say, instead of what it thinks I mean (eg. implicit safety checks, opt-out garbage collection, etc). -- |
Archon
Member #4,195
January 2004
![]() |
Would you (ie, any of you) install Mono, .GNU or .NET if someone programmed a freeware game or would you all expect native binaries? [edit] |
Marcello
Member #1,860
January 2002
![]() |
No, because I already have it? Marcello |
CGamesPlay
Member #2,559
July 2002
![]() |
Quote: (except for that it's not portable) ...and... Quote: Would you (ie, any of you) install Mono, .GNU or .NET if someone programmed a freeware game or would you all expect native binaries? So pretty much download this file, extract to its own folder, and double click on ltln.exe (or run mono ltln.exe). If you properly installed the Tao framework (you can get binaries for that at http://www.taoframework.com), you will get a working application. It uses OpenGL through C#, and that particular binary was compiled from Linux. It works in Windows, too, I promise. -- Ryan Patterson - <http://cgamesplay.com/> |
Archon
Member #4,195
January 2004
![]() |
I'm going to go look at Tao too... CGamesPlay is good as persuasion. I'll be able to test it out and program a small game as a test -- though it won't be using Allegro. If I remember, I'll give out cookies just before this thread closes itself. |
CGamesPlay
Member #2,559
July 2002
![]() |
The nice thing about all of this is that someone can make a C# wrapper for OpenLayer, and then we will all be one big happy family. I'm still deciding whether or not I want to write the wrapper. I want to, but then again so far I have just taken OpenGL commands straight from OpenLayer's source and it has worked fine In conclusion, how much of Allegro does OpenLayer really encapsulate? If writing a wrapper for OpenLayer would actually involve writing a wrapper for Allegro also, then I'm not interested. But if it's possible to get all of Allegro hidden under OpenLayer, then writing a wrapper would be a breeze (relatively). -- Ryan Patterson - <http://cgamesplay.com/> |
Fladimir da Gorf
Member #1,565
October 2001
![]() |
Quote: In conclusion, how much of Allegro does OpenLayer really encapsulate? The AllegroGLDriver class has all of it, and it's not that much after all. You could actually write your own SDLDriver, for example, and use that instead. I've been thinking about "porting" OpenLayer to Java myself, maybe the C# version would be similiar? OpenLayer has reached a random SVN version number ;) | Online manual | Installation video!| MSVC projects now possible with cmake | Now alvailable as a Dev-C++ Devpack! (Thanks to Kotori) |
Marcello
Member #1,860
January 2002
![]() |
PORT IT TO JAVA! :-D Marcello |
CGamesPlay
Member #2,559
July 2002
![]() |
C# would be remarkably similar. For C libraries, it involves making a single static class with static methods for all the functions. For a C# wrapper, we would actually use classes to wrap the classes, with perhaps a static ol class for holding global constants. [append] Oh, does OpenLayer use a DLL or static library? It needs to be a static library if it is to be compatible with "platform invoke", which is the technology used to make these wrappers. -- Ryan Patterson - <http://cgamesplay.com/> |
Simon Parzer
Member #3,330
March 2003
![]() |
I've made bad experiences with mono. I once installed it on my system, including a bunch of applications that use it (Tomboy, Beagle, Banshee, ...). Every three boots or so I encountered 100% CPU usage, which always was one of these mono apps running in some endless loop. (I think it was mono itself, because it happened with every mono application now and then). |
Felipe Maia
Member #6,190
September 2005
![]() |
Quote: PORT IT TO JAVA! :-D Seconded |
CGamesPlay
Member #2,559
July 2002
![]() |
Quote: I really hope that mono gets better and more complete in the future, but I believe this only starts to happen if Microsoft supports it with some developers (nothing against the mono hackers, but Microsoft devs have more knowledge about their own framework/system). Mono is developed by Novell, and Microsoft's framework is simply an API that is open to anyone. The language itself is a published spec also. What version of Mono were you using? Very recently (within this month, I think: http://www.go-mono.com/archive/1.1.16/) they have pushed a new version, featuring lots of bugfixes. -- Ryan Patterson - <http://cgamesplay.com/> |
Fladimir da Gorf
Member #1,565
October 2001
![]() |
Quote:
PORT IT TO JAVA! :-D
OK, I'd like to use it in Java myself, too, as nowadays I like Java a lot more than C++, so... I should just go and do it OpenLayer has reached a random SVN version number ;) | Online manual | Installation video!| MSVC projects now possible with cmake | Now alvailable as a Dev-C++ Devpack! (Thanks to Kotori) |
Marcello
Member #1,860
January 2002
![]() |
Will you use jogl? Marcello |
Billybob
Member #3,136
January 2003
|
These arguments are stupid. We're just comparing crap to more crap. Call me when someone develops a language/library/environment that actually works.
|
Felipe Maia
Member #6,190
September 2005
![]() |
Actually William, they both work, not high performance, but work very well. Eclipse is the best IDE I've ever seen, and it's java, and if you have enough memory (more than 512mb ram) it's perfect, better than any microsoft crappy shit |
Billybob
Member #3,136
January 2003
|
Well then you just haven't been coding long enough.
|
|
|