Jump to content
  • Advertisement
Sign in to follow this  
JMcClane

Future for Java

This topic is 4142 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have heard many complaints as to why Java is not a good programming language when it comes to games. Such as: -it is too slow -memory leaks -too high level -etc. I was wondering if there is any validity behind these arguments, mainly just looking for opinions. I have a small background in C languages but am more in depth with Java. I see that not many games are made with Java and I am just wondering if there might be a bigger future for the language or if I should aim my concentration elsewhere.

Share this post


Link to post
Share on other sites
Advertisement
Those arguments are not terribly valid. That said, there are other concerns (lack of game library support, jvm status on consoles, competition from C#/XNA) which will likely cause it to have a limited hold in games.

Share this post


Link to post
Share on other sites
Quote:
I see that not many games are made with Java and


Because games generally don't benefit from portability, and because most of AAA developers only want the latest greatest graphics features which require lowest possible hardware access. Consoles also don't benefit from Java due to too limited resources.

Memory leaks in Java is absurdity. The only thing closely related to that is holding references to objects for too long, and exhausting the heap. Leaks however can't occur at Java level, only at native layer or in JVM.

Too slow. This is completely uninformed and simply an ignorant comment by those who make it. Like all systems, it's a trade-off. Languages are never fast or slow.

Too high level. Please use assembly. And in the 17 years it will take you to code something, others will develop 17 billion lines of bug-free code. High-level = good. Unless you work in embedded software.

Java isn't used for games since it doesn't offer anything beneficial (mostly graphics and sound part). This is problem since Java is happy running scalable redundant server clusters, and those people have little use for displays.

Another part is that it's hard to find experienced Java game developers, since industry only seeks C++ gurus, and new breed of developers isn't emerging.

If Java offered solid DX/OGL bindings (serious, not the open source that they are now), it would become perfectly viable for game development.

Also, Runescape. About the same population size as WoW, running happily in Java in a browser. (queue the "it's not a good game lol Unreal 3 rox")

Quote:
I am just wondering if there might be a bigger future for the


What is future? Ability to find a job anywhere anytime? Then Java or .Net are the only ways to go these days. It's C++ that has very bleak future, since other tools have surpassed it in productivity by far. And C is a dead language, unless you go the embedded way.

Game development is a very tiny part of economy. Is that really the only future you see for yourself? For the next 40 years? Also, the online game servers are seeing increased adoption of Java due to its platform independence, reliability, ease of development and maturity.

Share this post


Link to post
Share on other sites
I'm not sure about the gaming industry and java... But I know for a fact that Java is here to stay for web based applications. I am a php programmer for a travel company we interface through java to connect to the cruise lines. They handle all of our backend processing which is nice... because then php only has to worry about simple logic... instead of worrying about all of the setup crap.
-durfy

Share this post


Link to post
Share on other sites
IMHO, it is impossibly hard to get DXD working in Java, and it is hard to get OpenGL running in Java as well. Almost any other solution does not use the GPU, but CPU instead, and CPU is not good at drawing images on the screen.

Share this post


Link to post
Share on other sites
Quote:

and CPU is not good at drawing images on the screen.

FWIW, the CPU is actually vastly superior in general at drawing images on the screen. It's just slower for the kinds of images that people often want in games.

Share this post


Link to post
Share on other sites
Whos to say java could not change their foundations... yes it would be a lot of work but if they could stand to make some money from it they certainly would. The way I see it every major update to a language makes more money... New versions of books can be written (with more or less the same info) New more expensive licenses must be purchased... Media attention = more people using their software = expansion = their language gets used more.
-durfy

Share this post


Link to post
Share on other sites
Quote:
Original post by Antheus
If Java offered solid DX/OGL bindings (serious, not the open source that they are now), it would become perfectly viable for game development.


What's wrong with LWJGL? All they are really doing is providing a bunch of JNI calls to the OpenGL functions of the same name; I'm not sure why that isn't "viable" or even how they should improve.

Share this post


Link to post
Share on other sites
Quote:
Too slow. This is completely uninformed and simply an ignorant comment by those who make it. Like all systems, it's a trade-off. Languages are never fast or slow.

No, but their implementations are. Since Java always runs on a virtual machine, it is necessarily slower than native languages. A native implementation of Java might get close to C++ in efficiency, but then you loose portability and you still have to deal with stuff like garbage collection.
Quote:
Too high level. Please use assembly. And in the 17 years it will take you to code something, others will develop 17 billion lines of bug-free code. High-level = good. Unless you work in embedded software.

Non sequiteur - and a strawman. Just because Java might be considered to be too high level there is no reason to conclude that everything except Assembler is too high level.

Still, I don't understand the "Java is too high level" argument. The only significant drawback of high-level languages is efficiency, so it's essentially the same as saying Java is too slow.
Quote:
Another part is that it's hard to find experienced Java game developers, since industry only seeks C++ gurus, and new breed of developers isn't emerging.

I'm sorry, what? There are plenty of extremely talented Java programmers around. Other parts of the computer industry make heavy use of Java for their applications which are no less complex than games, so the competence definitely exists. That these people have limited experience in games is a non-issue, as long as you can pay them enough to lure them into the business.
Quote:
Also, Runescape. About the same population size as WoW, running happily in Java in a browser. (queue the "it's not a good game lol Unreal 3 rox")

Apart from the networking, Runescape is an extremely trivial piece of software compared to commercial games today. You can't compare its graphics or feature set to even budget titles on the shelves. Your argument is similar to saying that since MUDs are popular, anything that's sufficient to construct a MUD is sufficient for other games. Obviously, that isn't true.
Quote:
What is future? Ability to find a job anywhere anytime? Then Java or .Net are the only ways to go these days. It's C++ that has very bleak future, since other tools have surpassed it in productivity by far. And C is a dead language, unless you go the embedded way.

This, however, I more or less agree with. Just like Assembler is almost never used today, there will eventually be a point where C++ is almost never used. There will always be a need for low-level languages, but the market will definitely shrink as more efficient high-level languages are developed.

Share this post


Link to post
Share on other sites
Quote:

I'm sorry, what? There are plenty of extremely talented Java programmers around. Other parts of the computer industry make heavy use of Java for their applications which are no less complex than games, so the competence definitely exists. That these people have limited experience in games is a non-issue, as long as you can pay them enough to lure them into the business.
I think he meant that a "new breed" of developers is not emerging within the games industry.

And he's right, for the most part.

Despite the glut of well-qualified developers knowing much more modern languages, the games industry wants C or C++, and is stubbornly resistant to change. Some of their reasons are based on FUD (things like Other Language X is "too slow," or "does not have enough control," and other forms of "we are already superior masturbation"). Some of the reasons are good (no implemented runtime environments or mature toolchains for consoles and other platforms, which is limiting from a business perspective, shortage of experience with those languages and tools among people already in the industry, et cetera). Things change very slowly for professional game developers, sadly.

Oh, and you probably can't pay them enough, as game developer salaries on average are less than non-game-developer salaries. I know I probably won't go back to working in games, because of the huge pay cut I'd likely have to take. Plus they'd make me write C++ again, because most of them just don't want to use anything else right now.

Quote:

there will eventually be a point where C++ is almost never used

The sooner we get there the happier I'll be.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!