Sign in to follow this  
MasterQ

Java is fast?

Recommended Posts

I read an article that said java is just as fast as C++ when it uses JIT compiling. It gave some tests and java actually outperformed C++. I've also noticed many video games like Runescape are being programmed in java. Will languages like java, C#, and VB.NET take over the game industry in the coming years? Now that the speed is just as fast as C++ there may no longer be any reason to use C++, just as there is no longer a need to write programs in assembly or machine language.

Share this post


Link to post
Share on other sites
Quote:
Original post by MasterQ
I read an article that said java is just as fast as C++ when it uses JIT compiling. It gave some tests and java actually outperformed C++.

I've also noticed many video games like Runescape are being programmed in java. Will languages like java, C#, and VB.NET take over the game industry in the coming years? Now that the speed is just as fast as C++ there may no longer be any reason to use C++, just as there is no longer a need to write programs in assembly or machine language.


I sure HOPE so. I wouldn't hold my breath tough. The games industry has an history of being late adopters and conservative in their choice of (software) technology.

[Edited by - jfclavette on April 16, 2006 6:11:47 PM]

Share this post


Link to post
Share on other sites
Many companies have their existing code bases written entirely in C++. That's why companies are able to crank out sequels so fast; code reuse. I've worked with C++, C#, and Java, and I hope that the later two eventually replace the first one as a standard, but as jfclavette said, don't wait up on it.

Share this post


Link to post
Share on other sites
Java is definitely fast for most modern desktop games. For example, here are some links to some great 3d games developed in Java:

http://www.runescape.com
http://www.bytonic.de/html/jake2.html
http://www.oddlabs.com/
http://www.megacorpsonline.com/
http://www.wurmonline.com/
http://www.flyingguns.com/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
What's more likely is that C/C++ will be here to stay, but will be supplemented by s'more useful libraries and some manner of scripting language (like perl/python/ruby). If you don't believe me, just look at all the current popular AAA game engines in use, like Unreal Engine or Half-Life's engine. The engine and "fast stuff" is written in C/C++ and a bit of assembly, and the gameplay and GUI code is in a scripting language. Pretty much everything but bottlenecks and deep engine stuff (graphics, physics, etc) can do without C/C++, and so we'll probably be seeing a steady rise in more abstract languages in the games world. Hey, if it worked for software outside the game industry, then it can work for us too. Increased productivity also means less unpaid overtime and fewer crunches!

Share this post


Link to post
Share on other sites
Quote:
Original post by MasterQ
I read an article that said java is just as fast as C++ when it uses JIT compiling. It gave some tests and java actually outperformed C++.

I've also noticed many video games like Runescape are being programmed in java. Will languages like java, C#, and VB.NET take over the game industry in the coming years? Now that the speed is just as fast as C++ there may no longer be any reason to use C++, just as there is no longer a need to write programs in assembly or machine language.


Interesting. Could you please post the article link that discussed this JIT compilation? I wasn't aware that Java supported JIT compilation. Are you sure you were not thinking of J#? I know IBM has redesigned the VM to employ this technique and that there are many projects on the web doing the same thing. Now, it has been some time since I last touched the language. Maybe the current installment of the Java runtime environment does use JIT compilation.

Share this post


Link to post
Share on other sites
I don't mean to be too presumptious, but if you set a C++ compiler to make optimizations like the JVM/JIT, I'm willing to bet you that Java will no longer be "faster than C++".
*Gets whacked*

Share this post


Link to post
Share on other sites
Java was never meant to be... fast... It was meant to be a flexible platform where you could execute the same application in any environment. In this, it succeeds quite well. If you need something to run anywhere, you write it in Java.

To use Java for anything else is going to be a painfull experience except for the most rudimentary applications. It's good for networking tasks. Limewire is proof of that. But I still haven't seen anything written fast in it. Why is netbeans so slow?

Share this post


Link to post
Share on other sites
Java was designed to be a cross-platform "programming language" that didn't have to use platform specific compilers/optimizers or anything. Hence the Java VM - which in my eyes makes Java more of a scripting language than a programming language which in turn is why it'll never be as fast as c/c++ etc.

As for the future of game programming i think C# will be the next big thing. Hell, not only the next big thing in the game industry, it's likely the new C.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Deception666
Quote:
Original post by MasterQ
I read an article that said java is just as fast as C++ when it uses JIT compiling. It gave some tests and java actually outperformed C++.

I've also noticed many video games like Runescape are being programmed in java. Will languages like java, C#, and VB.NET take over the game industry in the coming years? Now that the speed is just as fast as C++ there may no longer be any reason to use C++, just as there is no longer a need to write programs in assembly or machine language.


Interesting. Could you please post the article link that discussed this JIT compilation? I wasn't aware that Java supported JIT compilation. Are you sure you were not thinking of J#? I know IBM has redesigned the VM to employ this technique and that there are many projects on the web doing the same thing. Now, it has been some time since I last touched the language. Maybe the current installment of the Java runtime environment does use JIT compilation.


Where have you been, man? Java has had JIT compilers for a long time.

Share this post


Link to post
Share on other sites
Quote:
Original post by Deception666
Could you please post the article link that discussed this JIT compilation?




http://java.sys-con.com/read/45250.htm?CFID=388847&CFTOKEN=9460D898-B6BB-AC8B-3C74121E272A4D92

Share this post


Link to post
Share on other sites
For array operations Java is slower since it checks for a program accessing an array out of bounds while c++ doesn't check. I think in the future graphics code will still be written in c++ because it allows you to have the control you need to get the speed. But for everything else c++ is slower, personally I think that python is going to become more and more used in game development as a scripting language.

I have even heard of a model for designing programs where the entire thing is made in python then the functions that are really time critical are rewritten in c++. This allows you to get the fast development time with python but still get the speed you need with c++.

Share this post


Link to post
Share on other sites
Quote:
Original post by MasterQ
I read an article that said java is just as fast as C++ when it uses JIT compiling. It gave some tests and java actually outperformed C++.


You mean this garbage, that doesn't use any real world situations? Its common knowledge that C++ outperforms Java in real world situations. When you need speed use C++, when you need quick and dirty use Java.

Java isn't "slow", it's just slower than C++.

Quote:
Original post by MasterQ
I've also noticed many video games like Runescape are being programmed in java.


Notice Runescape is free. It's significantly harder to make a commercial game in Java.

Quote:
Original post by MasterQ
Will languages like java, C#, and VB.NET take over the game industry in the coming years?


Java: Never. Speed is Java's smallest problem as processors will someday be fast enough to where the difference in speed is minimal. Java is really easily reverse engineered.

C#: Doubt it. A proprietary language will never take over an entire industry so unless microsoft allows an open standard I don't see it happening.

VB: BASIC syntax makes a lot of people gag, that's why there's C#.

Quote:
Original post by MasterQ
just as there is no longer a need to write programs in assembly or machine language.


ASM is still widely used for optimizations. a 10% speed boost means more people will be able to user your app without having to upgrade.

C++ is here to stay. I doubt anybody is willing to make a bet that if C++ is still not the major language for commerical applications in the next few years they'll put a bullet in their head.

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
C#: Doubt it. A proprietary language will never take over an entire industry so unless microsoft allows an open standard I don't see it happening.



You mean an open standard like this, supportedy an open framework like this ?

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
C#: Doubt it. A proprietary language will never take over an entire industry so unless microsoft allows an open standard I don't see it happening.


Actually, C# is standardized, see here. And besides, since when has being an open standard had anything to do with success? Ever heard of DirectX?

Share this post


Link to post
Share on other sites
Ok an open standard that doesn't suck.

and by doesn't suck, I mean something where I can easily take a language's code and use it where ever I want.

Quote:
Original post by joanusdmentia
Ever heard of DirectX?


I've heard of marketing run amok.

DirectX depends on Window's success meaning if windows gets kicked off its current throne DirectX goes down with it. Where as non-proprietary technology like C++ can survive considering it doesn't depend on a company's success.

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
Ok an open standard that doesn't suck.

and by doesn't suck, I mean something where I can easily take a language's code and use it where ever I want.


You mean like, on Linux, Solaris, Mac OS X, Windows, and Unix ?

A nice prop of .NET over C++ is that you don't even have to care about the hardware at all !

I assure you that writing cross-platform games in C# is as easy as it gets. (Much easier than in C++ as it turns out in my experience, since you aren't as tied to the hardware as you are in C++.)

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
Quote:
Original post by jfclavette
You mean like, on Linux, Solaris, Mac OS X, Windows, and Unix ?


Mono is in it's infancy, and needs much more support.


Says who ? Works pretty damn well for me. Especially for games, which are probably the simplest form of software from an infrastructure perspective (Multiplayer non-withstanding)

Share this post


Link to post
Share on other sites
Quote:
Original post by jfclavette
Says who ? Works pretty damn well for me.


Says the industry. You can switch tools whenever you want, but companies can't afford to gamble.

DirectX, Java, you-name-it wheren't adopted overnight. A technology has to prove itself first.

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
Quote:
Original post by jfclavette
Says who ? Works pretty damn well for me.


Says the industry. You can switch tools whenever you want, but companies can't afford to gamble.

DirectX, Java, you-name-it wheren't adopted overnight. A technology has to prove itself first.


The same industry that just recently switched to C++ (and indeed not completely, as C is still widely used and assembly often rears its ugly head) ? I'll take another barometer thank you.

Plus, the industry don't give a crap about mono anyway. No one even use OpenGL anymore. They're already tied to Windows.

Share this post


Link to post
Share on other sites
Quote:
Original post by jfclavette
The same industry that just recently switched to C++ (and indeed not completely, as C is still widely used and assembly often rears its ugly head) ? I'll take another barometer thank you.


Which goes to show how resistant it is to change. C# isn't going to have a chance to stick it's foot in the door for years.

Share this post


Link to post
Share on other sites
Quote:
Original post by jfclavette
No one even use OpenGL anymore. They're already tied to Windows.


The DS, PSP, PS2, GC, Rev, and PS3 all use some form of OpenGL and don't use the windows operating system.

Share this post


Link to post
Share on other sites
Quote:
Original post by Lazy Foo
Quote:
Original post by jfclavette
No one even use OpenGL anymore. They're already tied to Windows.


The DS, PSP, PS2, GC, Rev, and PS3 all use some form of OpenGL and don't use the windows operating system.


Of course. I was talking about the PC.

Quote:
and it's not like OpenGL is underdeveloped and undersupported like Mono.


[lol] Of course not. That's why you have to use an extension for pretty much anything that doesn't have its roots back in the nineties and why the studios go trough the pain of converting their OpenGL code to D3D on the PC. The OpenGL review board is probably the most innefficient organization on the planet.

Meanwhile, I'd still like to see how Mono is underdevelopped.

Share this post


Link to post
Share on other sites
JIT code can outperform statically compiled code in certain situations specifically because there is runtime information present, even all the whole-program analysis in the world cant provide the sort of procedure-branch statistics that allow a hotspot compiler to optimize. I'm not sure how much this applies to game development, it really depends on the particular game's performance profile.

And Lazy Foo, you need to keep in mind this is website is populated mainly by hobbyists who do not have access to DS, PSP, PS2, GC, Rev, or PS3 devkits. Windows is the most common target platform, likely followed by linux. PC developers can take advantage of existing infrastructure (such as Java), whereas I'm supposing that a console developer is very limited and has to make a choice between additional systems programming or just getting to work on the game.

I can't honestly recommend Java for game development ... but I do recommend taking advantage of tools that increase productivity and if Java works for a developer, then it's all gravy. Java is not nearly slow enough to ignore it as a viable choice, doing so is by definition 'premature optimization'.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this