There's an enormous number of technical and design problems at the heart of Java the language as well as the JVM. To cover these in a sane timeframe -- particularly to someone who is non-technical -- is something that is beyond me. Take my word for it that, as a programmer, there is a very, very long list of reasons to avoid Java. It took somewhere between fifteen and twenty years from the original incarnation of Java to something that was usable, and even now it's difficult and subtle to create a Java program that runs well everywhere. Normally Java programs run like shit, even the useful ones. Recent (~3 years ago to present, maybe 5 at a stretch) Java desktop VMs are generally fairly competent, but before that it was kind of a disaster. By the time Java was hitting its stride, most on the Windows front were wholeheartedly embracing .NET instead.
Java also does an incredibly poor job of integrating with existing code in other languages, which makes a commitment to it that much more dicey.
As for the HTML5/JS thing that so many think is about to take over: bullshit. Most of these apps are badly written and behave unpredictably across browsers and browser versions (Blogger wouldn't work in Chrome last week for me, FFS). They're not pleasant to use, don't do basic things apps are supposed to do, are much easier to write badly than well, and all that is assuming it's even a good idea to depend on a live internet connection for your tools.
What went wrong with Java?
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Most of these apps are badly written and behave unpredictably across browsers and browser versions (Blogger wouldn't work in Chrome last week for me, FFS). They're not pleasant to use, don't do basic things apps are supposed to do, are much easier to write badly than well, and all that is assuming it's even a good idea to depend on a live internet connection for your tools.
I find this is true of most software regardless of the technology it was built in.
[quote name='Promit' timestamp='1332639166' post='4925015']
Most of these apps are badly written and behave unpredictably across browsers and browser versions (Blogger wouldn't work in Chrome last week for me, FFS). They're not pleasant to use, don't do basic things apps are supposed to do, are much easier to write badly than well, and all that is assuming it's even a good idea to depend on a live internet connection for your tools.
I find this is true of most software regardless of the technology it was built in.
[/quote]
It would help if JS was actually intended for software engineering. What I see now is hacks upon hacks, and is taking decades to become useful. A good technology should not have to be hacked in clever ways to be useful; it should start out being clever and useful.
It feels to me like the browser install-base wars are responsible for holding back web tech for the past 15 years. It should have been so much more glorious than it is.
As a VM, I know it uses more memory than ''native'' running software. But with the amount of memory we have now days, is that even an issue?[/quote]
No, and it hasn't been for years now. The amount of memory that bad programmers use, though, has been steadily increasing across all languages.And even if the performance is lower, how does this impact games that are not FirstPersonShooters, racing or that require pin point precision?[/quote]
Intelligent algorithm and data structure selection, in addition to excellent design practices, will eliminate most of the perceived "penalty". Alot of people make the false assumption that because a class resides in java.* it is performant and meets all of their needs (who reads documentation anyway, right?). The reality is that many of the standard Java classes have a number of "gotchas" that need to be taken into consideration before use in an application such as a game.As I see it, most games don't require such real-time accuracy.[/quote]
Exactement. Number fudging is generally an excellent optimization anyway.And then we have Flash, same thing as Java.[/quote]
The difference here is that Java Applets are terrible. The kind of terrible Michael Jackson sang about in "Thriller".
Java on the desktop is a completely different experience than on the web. It bears worth mentioning that Oracle has done some work on providing a Java -> JS converter to allow Java to function in a post-HTML5 world; time will tell how well that works.
That said, there have been a large number of improvements made to applets in recent years; lately, almost all the ones I use actually work (!). Still, as much as I think Java is a reasonable language, applets are largely indefensible.Now, Java has better example of games, Wakfu(?), Spiral Knights, Minecraft, etc...Yet, there is more focus on Flash than on Java, as a gaming platform.[/quote]
Again, you're confusing - or blurring - web and desktop games. Java has always been a dubious (really, really dubious) contender for browser based play and generally required far more effort to work than firing up Flash. Once Flash became the de-facto standard for web media there was (and still, really, is) little reason to consider any other platform.Why has other technologies with the same weaknesses or worse, been used more than Java? And why do you not see Java as a worthwhile platform for gaming?[/quote]
There's a lot of reasons. One of the biggest problems for Java is that it has always been lacking on hardware support; Java was never backed by a "hardware vendor" and Sun never had enough clout to either find one or persuade anyone else to care. This means that Java support for devices like game controllers, joysticks, etc. is always extremely slow in coming, if it comes at all. Furthermore, Sun itself is no Microsoft - Java has always had to rely on the goodwill of others for a myriad of basic things and, frankly, it is only its success as a business (enterprise) platform that has kept it from drowning all these years. Licensing restrictions (read: Microsoft hates Java) mean that Java access to toys like Kinect will mostly likely never occur.
Also, it is important to consider the drawbacks of "write once, run anywhere" from a business perspective. Corporations like Apple and Microsoft can't lock people onto their platforms if any software application is capable of running regardless of location. Of course, the value of specific platforms has deflated significantly over the past decade due to the web, but there is still a hefty amount of cash to be made, particularly in the mobile market where hardware lock-in and branding still has a lot of pull. Again, Sun never had enough clout to muscle the "big guys" into letting Java in on the action and you can attribute Java's current spot in the sun to Google. Oracle did debut a Java app running on an iPhone (I believe? Too lazy to check) but we'll see how well Apple tolerates that.
Lastly, ignorance.Java also does an incredibly poor job of integrating with existing code in other languages[/quote]
If you don't mind my asking, how so? If you are referring to JNI, then yes. The first rule of JNI is that you don't talk about it.
However, I would be inclined to think that the large number of JVM languages - many of which were created to integrate with Java and, via the JVM, do so seamlessly - would indicate otherwise. Particularly when compared against any C/C++ ""scripting"" framework you'd care to name.
That said, one of the most glaring problems is the complete lack of a security framework. There's no way to manually (programmatically) construct a sandbox or implement an air-tight policy; only a handful (< 5 or so, iirc) languages support this explicitly.Unity, today, is orders of magnitude more portable that Java ever was.[/quote]
The two aren't comparable, for obvious reasons.As I have been using the Windows 8 Consumer Preview[/quote]
I have yet to find a compelling argument to upgrade from 7. Software made by people that don't understand the difference between a mobile device and a desktop is software I have no interest in. Which, frankly, is rather depressing because the WPF looks pretty reasonable.
Youtube has 800 million unique daily users. Youtube uses Flash. Which means no more and no less as "there is virtually no computer without Flash".
On the other hand, no website with 100+ million daily users requires Java to work (or, is there one?).
Result: Java loses.
On the other hand, no website with 100+ million daily users requires Java to work (or, is there one?).
Result: Java loses.
Sorry, flash is a pile of dog crap. There are no fewer than a dozen known resource leaks that Adobe has refused to fix. It might be the best pile of dog crap we have, but it's a bad bet to think that a maturing html5 and/or something like Dart aren't going to win versus Adobe's leadership.
(sorry, most of my month has been spent working around Flash quirks, resource leaks, and generally unreliable behavior for simple non-interactive video)
(sorry, most of my month has been spent working around Flash quirks, resource leaks, and generally unreliable behavior for simple non-interactive video)
I've had no problems running C++ games (including my own) on Windows 8. Maybe the ones you tried are just a problem
As I have been using the Windows 8 Consumer Preview, I realised that only Java, Flash and BYOND games are working on the OS that ''should support everything that Windows 7 did". What they all have in common? They run on Virtual Machines. All the other FTP MMO type games that I play broke, gave me a software crash or even a whole OS crash restart. Last of which Windows 8 treated well, on my perception. (Win8 found risk->Restart->Error log->SendtoWin)

I don't think it's a dislike of VMs - as you say, there's Flash, and another example gaining popularity for games is C#. I agree it does seem odd that Java has often been ignored for games and mainstream consumer apps (though I believe it's used quite for apps by businesses, e.g., banking).
When Vista came out, my XP games broke. Patch, ok. Win 7 came out, broke again. Patch, maybe ok.(Some games don't run well anymore)
And now with Win 8, game breaks again, even when Microsoft said that everything should work. I know its a Consumer Preview, but whats the guarantee that it will work when it ships? Or after? So in a sense, if I had a game, a Windows only game even. Id have to fix it up everytime an update came out. But with a VM, theoretically, I would not have to, and spend my time and resources on improving the game instead of fixing it.[/quote]Why did the XP games break on Vista? And then with Windows 7?
The main problem with Vista was the increased security because of software which tried to write somewhere where it shouldn't (and I believe MS had guidelines for this years earlier). Wouldn't a Java application doing the same thing also break, or is it done differently? (It's been a while since I last did Java.)Although I would note, surely that's still fragmentation - indeed, worse in that we've now got the fragmentation between "PC" Java, Android Java, and J2ME. (If you mean you could focus on just Android and have it standard, you could still focus one just one J2ME, e.g., Nokia's S40 - although that's only one manufacturer, it's so popular that I believe it still outsells Android...) But yes, this kind of issue does mean that Java's big advantage of "write once run anywhere" is somewhat lost. (Not that I think Java is bad, just noting that it still seems to be an issue.)
Meh. There's nothing wrong with Java. I've been using Java all the time to make mobile games and apps. Not just Android, we are talking about J2MEs here with 512KB memory and probably a processor that's as fast as your TI calculator. There's nothing wrong with it. The only downside about J2ME VMs is different phone manufacturers produce different VMs with different behaviors, but that's not even the case anymore with PC and Android.Although fastest growing isn't a useful metric, since it is relative to the size - plus I suspect that Android wins the fastest growth rate competition anyway
aye? Have you not been on the internet for ~3 years or so, flash is dying. Seems like every month theres another story about it being dropped eg since you mentioned MS
you obviously havent seen this story.
http://news.cnet.com...rowd-with-ie10/
the fastest growing OS today IOS, has never supported it etc.. The point being that when you look at the actual installed userbase, Flash is supported as standard on a wide range of browsers (not to mention that the trend seems to be to have Iphones and Ipads view sites as a proprietary non-portable custom exe, so they have to be catered for separately anyway).
And Iphones and Ipads can't run Java either, so surely it's irrelevant in a choice between those two anyway (unless they've finally added support for that?)back on topic, Im now an IOS developer but One of the great things with this apple PC was all my html/js/webgl game stuff (which I developed on a windows machine) it ran perfect first time, no farting around downloading this or changing that, it just worked ™ same with linux.
This is what We fantasied about 20 years ago and its a reality.
Then again javascript sucks (even moreso than actionscript)[/quote]Indeed it is great, and is a shame Apple are throwing a spanner in the works with their IOS devices by not supporting Java - and as I say, never mind applications, the problem now is that even something as basic and cross-platform as webpages are being replaced by platform specific executable "apps", required for every single site...OOI, have you tried Windows 8, and what do you mean about difference between mobile and dekstop? (I mean, personally I worry at the trend to make all our UIs look like dumbed down mobile phones - but to be fair, I think MS have done a good job, in that the desktop UI is still there beneath the flashy Metro thing, and the new start screen is something that I think works well for dekstops too - e.g., the fast way of launching applications by typing their name is still there, and that's not something you would really use on a phone.)
I have yet to find a compelling argument to upgrade from 7. Software made by people that don't understand the difference between a mobile device and a desktop is software I have no interest in. Which, frankly, is rather depressing because the WPF looks pretty reasonable.
http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux
Indeed it is great, and is a shame Apple are throwing a spanner in the works with their IOS devices by not supporting Java[/quote]
Apple, the company that redesigned the design itself. The most magical company that puts design first on everything from icons to connectors and everything in between.
Java's UI was designed in 1998. They don't want that prehistoric ugliness anywhere near their brand. it's like bringing a caveman to a banquet. Even in '98, Java UI was called hideous.Although fastest growing isn't a useful metric, since it is relative to the size - plus I suspect that Android wins the fastest growth rate competition anyway[/quote]
Maybe you don't realize just how fast iOS is growing.
With growth like this, mobile devices will soon sell more units than entire PC industry ever did in its existence. And iOS is only effectively sold in G20 countries, so only a relatively small portion of global market, albeit the most profitable one.now is that even something as basic and cross-platform as webpages[/quote]
Web pages aren't cross-platform... They aren't even cross-browser compatible. "Works best in Chrome", "IE6 not supported", "FF4.0 or higher needed" "Opera not supported".
Not even mentioning everything else, set-top boxes, TVs, 3 year old phones with Opera browser, ....
Unless you stick to HTML4 with no JavaScript, then web is anything but cross-platform. But since on PCs 98% of people use Windows or OSX + webkit based browser, it gives the impression web is portable.
Java has its niche on web services and applets. The reason why it never took off in games is because for most of its history it suffered from terrible overall performance, memory bloat and inconsistent performance. It still suffers from terrible memory bloat and inconsistent performance. It's overall performance is better now and is somewhat on par with most native languages so that's not an issue anymore.
With the advent of mobile Android OS, it's making inroads (for games), but that's only due to the lack of choices more so than any inherent merit of the language. Sure you can go native on Android but it's just not worth the time effort to get that tool chain working while so much of the Android API is still Java. Even then Google may be forced to drop Java eventually if Oracle keeps suing it..
-ddn
With the advent of mobile Android OS, it's making inroads (for games), but that's only due to the lack of choices more so than any inherent merit of the language. Sure you can go native on Android but it's just not worth the time effort to get that tool chain working while so much of the Android API is still Java. Even then Google may be forced to drop Java eventually if Oracle keeps suing it..
-ddn
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement