Quote: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.
And here we are...
Why does it need to be slower, when it's compiled into native code during run-time? Why are there benchmarks showing examples of logic that, in some cases, outperforms C++ (without assembly or hardware specific optimizations)?
If you write a for loop manipulating elements, the generated native code (during run-time) will do exactly the same thing as C++ compiled code.
It's not Java problem - it's algorithm problem. Java compiler is just as good as any. Of course, in C++, people write custom memory allocators, use aligned buffers, and who knows what. With exception of very very few places, these optimizations make no difference. And even in Java, you can handle them specifically, while spending 10 times less effort on everything else.
Quote: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.
Relative to what then? C++? .Net? Lisp? Haskell? It's no higher level than C++. Except that C++ has a ton of undefined behaviours and compiler-specific optimizations.
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.
Yes, and these experienced and knowledgeable developers are going to drop their $200/hour consultancy gigs to go work in the game development crunch for less than they got paid as junior developers? Nah...
Quote: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.
7+ million users, 1+ million paying. Developed with just about no budget (definitely not $100 million WoW cost). What does it matter, it's a game, it's making massive profit, it has massive userbase.
If anything, Runescape outperforms the popularity of 90% of MMORPG titles.
Runescape has, at this point, more paying customers than most AAA titles sell boxed copies. Do graphics matter then? The AAA polish? No. Make a fun game with no budget, and it'll be a hit.
Or are the only good games those that break Unreal 3 engine? These are blockbuster titles with 3 week life span. There's only a handful of AAA titles that managed to survive for several years. And how many more cost a ton to make, only to go straight to bargain bin?
Despite that, Java is unsuitable for AAA title development for the already established factors - lack of professional Graphics (and other multi-media) API. That is the only real factor holding it back.
In the times where AAA titles cost upwards of $10 million to develop, and in a ruthless market, business aspects are one of crucial factors in development. AAA Graphics are prohibitively expensive - and many games would benefit from using only a fraction of that budget, but emphasize gameplay.
But still, too many developers are busy coding their latest greatest graphic engine, only to produce a sub-par CS clone. If you want to compete in this market, you obviously need to use the same tools. But game development isn't AAA blockbuster graphics. At least, there's an incredible amount of money to be made outside of that market.