The Source for Java Technology Collaboration
User: Password:



Chris Adamson

Chris Adamson's Blog

New Platforms, No Java

Posted by invalidname on May 26, 2005 at 06:37 PM | Comments (23)

For a long time, J2SE supporters like myself have said that the big win of J2SE is not only that you "run everywhere" today, but that future Java-capable platforms could pick up and run your software on day one. This would be a great reason to write J2SE applications, and a great reason for platforms to build in Java support.

Well, three new platforms made their public debut last week:

And it's very likely that Java won't be on any of them.

These platforms will sell tens of millions of units world-wide. Indeed, Microsoft says it aims to reach one billion people with XBox Live. Any way you look at it, this is a huge, huge market to miss out on.

Pessimism? Sure, and grounded in experience. After all, Java for PlayStation 2 was promised and demo'ed at JavaOne 2001, yet it never shipped. Last year, the JavaOne keynote showed Java on the Infinium Phantom a vaporware console so loathed by the gaming community that Sun would probably be harmed by a well-known association with it.

Moreover, where are the apps that would make it worth it for the consoles to support Java? They largely don't exist. Granted, Puzzle Pirates is great. We all love Puzzle Pirates. But there needs to be a thousand applications like it to create an end-user need for Java, and we're about 999 applications short.

To channel Daniel's blog a little bit: how can it be that Apple can get the computer press (yes, us included) to practically wet themselves over a collection of calendars, stickies, stock charts and other mini-apps? Where is the J2SE community, which could do the same thing on a potentially infinite number of devices? Sadly, it seems we're all more interested in a pointless, self-destructive holy war over IDE's than in shipping anything anyone would ever use.

All of these platforms will have broadband network connections, and are talking about features like instant messaging, voice, and video chat. Who's providing those apps, not to mention the media browsers, streaming audio clients, personal organizers, etc.? Not us, apparently.

"Run everywhere" isn't very everywhere, is it? Some days it's just "Windows and maybe Linux or Mac." If J2SE isn't worth running on set-top boxes and game consoles, and if it's always behind or half-baked on Mac and Linux, is it ultimately just a "me too" way to write Windows applications?


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • it seems we're all more interested in a pointless, self-destructive holy war

    When you say, "we" you mean _you_ and perhaps a small handful of folks who strongly disagree about IDE issues in public. I'm disappointed that you would paint the entire Java developer community as a bunch of idiots, and it's shameful (again) that java.net is promoting this view against the very developer community it is trying to foster.
    They [quality Java applications] largely don't exist. or ...than in shipping anything anyone would ever use.
    You whine about the situation yet from what I can see you do nothing about it. Do you honestly feel you are "doing something about the problem" by whining from the sidelines and telling folks how incapable they are?

    Chris, it's true that there aren't enough great Java applications out there but the Java developer community is still in its teenage years. It feels like what you are doing is like telling your teenage son that all of his efforts at learning the guitar over the years has been a complete failure and that he should just quit. A much better approach would be to find constructive ways to help the Java developer community. I encourage you to do better (and to not make unbelievably stupid and offensive generalizations like you did in this blog).


    Posted by: markswanson on May 26, 2005 at 07:30 PM

  • Good alert Chris.

    Java is a great language to write software, be it transaction processing, or game logic. Give these platforms a good Java implementation (talk to Apple or IBM for their PowerPC JITCs) and a reasonably uniform interface to the graphics hardware (jogl?). Then you have the potential of building a single game (or other application) that can run on any of these 3 platforms.

    Now that's good ROI for console software developers.

    Posted by: terkans on May 27, 2005 at 05:10 AM

  • its likely that you are understating the problem

    if xbox succeeds the home computer in becoming the media/communication hub of the living room which people often say microsoft is positioning it as, then it will presumably support the CLR, with little motiviation for supporting the jvm

    its maybe reasonable to say forget the playstation and nintendo's revolution as these devices won't form part of the home computing infrastructure (?) - microsoft would have to be very complacent to let sony's advantages in the gaming market take over their advantage on the desktop

    Posted by: asjf on May 27, 2005 at 06:28 AM

  • Java is just not suited for gaming in general. So instead, let us focus on delivering Enterprise applications that are easier to design, develop and maintain with Java.

    It is a good point you make about missing out on this potentially large consumer market. But the cell phone and other mobile devices market is arguably larger and pervasive/worldwide - where Java does have a sizeable presence.

    Posted by: m0rph on May 27, 2005 at 06:46 AM

  • Apples and Oranges

    Microsoft, Nintendo and Sony are consumer electronic companies that develop and sell products. So is Apple.

    The Java community is... well... a community. We are not a company. We don't have a business plan, product managers, product marketing, etc. Our common interest is a set of tools that can be used to develop products... That's a far cry from a company whose primary interest is in selling products (developing them is a necessary evil).

    Sun is not a consumer electronics company. IBM is not a consumer electronics company. Until a consumer electronic company bets the farm on Java we are not going to see those wonderful devices that you crave.

    Open sourcing Java could help. Nokia has just developed a consumer-oriented mini-tablet with Linux. Perhaps if Java were distributable under the same terms as Linux we would have seen that device as a Java platform.

    The JNode project is another possibility. If someone like Nokia built a device using JNode instead of Linux, it might open up some really interesting possibilities.

    Returning to my original point... Consumer device manufacturers hold the keys... not the enthusiastic community of Java programmers.

    Posted by: johnreynolds on May 27, 2005 at 06:58 AM

  • I've long considered that there must be some kind of opportunity for Java on these platforms - especially as they begin to evolve towards general purpose media playing machines (games, videos, music, on-demand, and on-line). These devices have the power of a low spec computer, but with the user 'expectation' of a consumer device (ie. ability to handle failures, good compatability, etc.) which sits happily with Java given its design and history.

    I've often thought one good idea would be to try to revive the concept of the 'back bedroom' games programmer. Although professional games now have budgets running into the millions, there is still room for clever, witty and entertaining 'solo developer' amateur games - as shown by the demand for Flash and mobile gaming. With Java now dominant on high school / college programming courses, perhaps it is time to develop a games-orientated API in conjunction with one of these console manufacturers, allowing simple games to be written and shared on-line (for fun, not profit)? My vote goes to Sony, as they have previously tried to open both of their PS consoles up to back bedroom coders - although perhaps not in a form friendly to eager teenage wanna-be games writers...?

    If young programmers (and old ones, if we're brutally honest) get hooked by the idea of writing their own PS3 (or whichever) games, then this will bump Java's brand visibility up several notches, while giving Java that all-important 'cool' factor which will help ease its path onto other consumer devices - maybe even the almighty Windows desktop! It will also encourage a new generation of coders fluent in Java as their primary language, which can only be good for Java's continued success.

    Posted by: javakiddy on May 27, 2005 at 07:10 AM

  • I would love to see a browser for these consoles that supported applets, MIDlets, a well-secured WebStart, and perhaps something like WildTangent. That doesn't seem like it would be too difficult technically (especially for the Win2K derived 360). I doubt anybody would make such a thing, but I bet people would buy it if they did.

    Still, what's to keep game developers from using GCJ and Classpath to write a game with? Most commercial Java applications bundle their own JREs on the desktop now. AWT and Swing are the biggest holes in Classpath. Most game developers wouldn't use them if they were available anyway.

    Posted by: coxcu on May 27, 2005 at 07:43 AM

  • m0rph: Java is just not suited for gaming in general.
    Why is Java not suited to gaming?
    General perfomance is now on the same order of magnitude as C.
    Graphics perfomance is why these consoles come with special graphics hardware. Offload all graphics ops to it using a good api (OpenGL or equivalent).
    Is it that Java uses a garbage collector which might kick in and drop an animation frame? Games are much less likely to continually create and dispose of objects. And if a game needs that sort of structure, you'll have a little challenge to manage it yourself in such a way as not to interrupt the player.
    Any other reasons?

    Posted by: terkans on May 27, 2005 at 07:43 AM

  • We may at some stage see an unoffical implementation working its way to these consoles (perhaps when Harmony starts to come online), but I think the biggest obstacle to an official JVM would be the cost.

    Small developers aren't going to pay (you just know they wouldn't give it out for free, undermining their own native implemenations) Sony\Nintendo and certainly not MS to be able to use Java on their machines, and why should we? We don't have to pay any other manufacturer to use their implementations, be it enterprise, mobile or desktop.

    Posted by: aidan_walsh on May 27, 2005 at 08:05 AM

  • Java should be well suited to run on these devices. Sony probably had a hard time selling the big name game makers EA, etc... that Java would be useful when they already have spent the time to delveop gamming engines in C. Sad as the case may be, there may just not be a market for it.

    Has anyone from Sun or Sony commented on what happend to Java for PS2?

    Posted by: rabbe on May 27, 2005 at 08:32 AM

  • All the game consoles listed are design to make their respective manufacturers a whole boatload of money. They do this by selling licenses and making it extremely difficult for anyone to write software for their device who hasn't purchased an SDK, hardware kit, and a license to distribute it with. It is horribly expensive to write games for a console, but because of the numbers, it's also quite worth the risk. The manufacturers also sell their main hardware at a loss in order to make tons of money through unit sales of games via licensing. This makes it extremely hard for any reasonable competitor, even one running Linux (free), to sell a comparable console/set-top unit, especially with a lack of games available.

    The best shot we have at getting Java on the TV as a gaming platform is to make smaller and more entertainment-center-friendly PCs for a low price. A PC can still do more than the consoles, but note for much longer as the consoles are integrating more and more PC features. Next go-round after these you'll see all consoles having web-browsing, PVR, web-based office apps/email/etc, and basicly able to do 80% of what a PC is typically used for, which is the magic number, of course.

    As for Phantom, even if they release it I think it's going to bomb. It's also going to be proprietary and require licenses and going through them to distribute (online), so Joe Blow can't write code for it. So basicly I say ignore it and focus on PCs. That is, unless Sun or somebody else manages to create an inexpensive Java computer (ie, something like a Linux computer which has a Java desktop window manager with shared JVM(s) that can run Java programs like they were native apps to the OS) with a decent video card.

    Java 5 has made great strides in the performance arena as have some of the open-source libraries, and it's definitely time for game developers to start learning the tools for writing in Java. And Java 6 will be even better, and if they fix WebStart it will be a much more viable platform to distribute on. The Java game developer community is starting to come together, but it's got a ways to go before it hits it's stride and is producing shared benefits for both developers and users. I keep hoping that Sun will allow their games group to grow and give them some more budget to work with. An evangelist, a game server product, and a couple of developers isn't enough to drive the community.

    I agree, too much bandwidth is being spent on IDE wars and re-inventing the wheel in general in both Java and Linux camps. Some people just don't realize that there's bigger fish to fry. I'll also agree that OS-X and Linux support/distribution issues are priorities that Sun and the community need to put to bed because they've stayed up way too long and people are getting cranky.

    Posted by: gerryg on May 27, 2005 at 08:46 AM

  • Everyone can play
    I don't think anybody is left out of the software game when the new hardware arrives. Sony PS3 is based on new hardware called CELL produced by IBM. My understanding is that Sony is writing a new OS for CELL. Why wouldn't there be a JVM?

    CELL technology is different then the classical hardware model. CELL provides something similar to Java, however in a completely different way. While Java provides software based "virtual machine" which is the same on all platforms, CELL provides a hardware machine; the equivalent of Java's virtual machine is the Cells physical hardware. The ideas is to have as many CELL's as required for the problem space. For a mobile phone, that may be 1, for the PS3 it is 9, for a huge IT server?

    With IBM producing the hardware, that is intended to run on mobile devices to huge IT servers, why wouldn't there be a Java VM?

    By the way they already have Linux for the PS2 http://www.linuxdevcenter.com/pub/a/linux/2002/03/21/linuxps2.html

    Posted by: malcolmdavis on May 27, 2005 at 09:35 AM

  • gerryg : They do this by selling licenses and making it extremely difficult for anyone to write software for their device who hasn't purchased an SDK, hardware kit, and a license to distribute it with.

    Sony released a cut-down developer kit for the PlayStation called Yaroze (?), aimed at home users. They also released their own Linux PS2 implementation, complete with development libraries (minus sound and with limited memory card access) at cost-price. It seems that Sony understands the benfit of encouraging amateur programmers to work with their machine, and do not see their efforts are a threat to their professional game revenue stream.

    A number of high-ups in the console world have commented that user created/shared content may be the next big thing. Make your own levels, and game characters, then share them on-line. Why not extend this to making your own games? There's no way an amateur, even a team collaboration, can match the level of the professional games these days - so there's no real threat to the likes of EA, or indeed to Sony's licensing revenue.

    Posted by: javakiddy on May 27, 2005 at 09:45 AM

  • Mr. Adamson's claim that none of the three major next-generation gaming consoles will run Java is incorrect. Sony's Playstation 3 will use Blu-Ray as its optical media standard and all Blu-ray players will be Java enabled. Check out this quote from http://www.cardinal.fi/evolution.html.

    BLU-RAY AND JAVA
    Blu-ray…was developed to enable recording, rewriting and playback of high-definition video (HD). The format is also likely to become a standard for PC data storage and high-definition films in the future. Every Blu-ray Disc player will be equipped with a Java interpreter, making them capable of running discs authored for BD-Java mode.
    BD-Java will offer content providers almost unlimited functionality when creating interactive titles. The BD-J system will support basic Internet protocols like TCP/IP and HTTP. The Blu-ray player may connect to the disc publisher's web site to unlock certain content on the disc.

    Posted by: jteach on May 27, 2005 at 11:12 AM

  • jteach's comments on Blu-Ray are are interesting, and I wasn't aware of BD-J, but I'm not sure how far it gets you. From the description of BD-J on the Blu-Ray Association's page, BD-J is a J2ME profile that is primarily interested in providing the interactivity for Blu-Ray movies (like the various extras you find on DVD's today). There's no indication that this would be a general-purpose J2ME environment for Blu-Ray authors, or whether the PS3 would even expose the JVM outside of the movie-playing functionality.
    --Chris

    Posted by: invalidname on May 27, 2005 at 12:11 PM

  • Chris, I disagree. The BD-J environment sounds very complete. jteach, how would you recommend that an interested developer learn more about BD-J and stay up-to-date with its development?

    Posted by: coxcu on May 27, 2005 at 12:55 PM

  • Javakiddy - Cut-down doesn't cut it, so to speak. It's not a free license to distribute, either. There's a reason why there is no threat -- it's not really worthwhile attempting to use it for any kind of decent game. Shared content is a way of encouraging sales, and is not the same as writing new games, total-conversions, etc.

    I completely disagree that amateur programmers cannot make professional games. It's much harder, yes, and not common, but it can and does happen, even in 3D-shooter land (mostly with total conversions, but not exclusively so). Plus, there's plenty of "professional" shops that make very amateur games. If you consider "professional" to be top 10 in any given year, then yes, the odds are very low that a non-game company entity can do it. The last best example of one that beat the odds (that I can think of) is Counter-Strike. But as Chris mentiones, Puzzle Pirates came out of nowhere and did quite well, winning an "indie" award and making money, to boot.

    jteach - this sounds promising. If a Blu-Ray disc can boot it's own OS (not the one built into PS3) and load a full JVM, then that's a start, but there's still a requirement of getting drivers and interface libraries to talk to the hardware. A J2ME setup is not going to be enough to harness the full power of Cell or the PS3's GPU. If the PS3 would allow a linux distro designed for it (with OpenGL, OpenAL drivers, etc) to load and Sun/others could port a JVM to it, then we're talking.

    Posted by: gerryg on May 27, 2005 at 01:43 PM

  • I think there's no point waiting for somebody to create a VM for those consoles. We have to do it ourselves!! We need to submit a JSR. Let's start a JSR for a full-featured J2SE VM for game consoles. But even more important, we have to start the propaganda work in order to motivate people about Java on consoles. If we have a strong standard implementation of Java on PS3, for a start, then people (game developpers) will catch interest, after that it's up to GELC. But as I understand it, those platform will become more and more of a replacement for standard PCs, that means they will be in need for REAL APPLICATIONS, not just games; that's where Java can shine.
    Looking Glass, Netbeans, Eclipse, Jedit, Tomcat, JLayer, Beanshell, CMUSphinx (voice recognition API), FreeTTS( text-to-speech) - Imagine if all of those could run unmodified on PS3! What's really fantastic is that 99% of the job is already done!
    That's where Java engineers were really clever, not writing the VM in ultra-optimised assembly; Most of Java is actually written in Java, so all there is to do is to port the native parts, but we could ship sun or ibm or whoever's rt.jar without much change and use a core VM like there are quantities of on sourceforge.net (of course there is the licensing issue). It could even be written in dotNet for the matter.
    Now once the base VM is ready that's where all the interesting stuff begins. I've read that ps3 will support OpenGL ES ( as well as USB bluetooth dvd/blueray, so they do favor standards sometimes, not always proprietary technology). So we should get JOGL to support OGL ES, which shouldn't be unthinkable since it's supposed to be as subset of OpenGL. Then I know there is a beta version of Java2D done in JOGL, we should support that, so Swing will work, then AWT could be implemented in Swing (which would by the way fix all the lightweight/heavyweight issue). (Only) with this, quantities of apps will be able to run. Now if we get Java3D to be implemented on top of JOGL, then apps like Looking Glass would work too!
    We also need a good implementation of JavaComm which would include USB, bluetooth and more as needed. If I get to develop on my PS3 on day, I would like to write an app to rip songs from a cd and export them on my iPod through USB2.0 -- New opening, crossplatform drivers. I'm sure lots of young people like me would with better ideas would be seduced.
    The last thing that would be essential is a JMF (Java Media Framework). I know a project called fobs that uses ffmpeg (a great set of OSS codecs) to enhance the capabilities of JMF (like playing MPEG4 or h.264 (never tried)). And it was developped almost entirely by one person. If we really start caring about multimedia, we could really make it a huge business (Mpeg-J, BD-J, anyone?). Why does java.com use clipstream when they're the ones who created JMF? Probably because there is no lightweight implementation existing, it actually weights several MB's and it's not very performant. (I remember complaining about slow rendering). FFMPEG is written in C, so all the algorithmics could, in my dreams ;>, be ported to Java (which isn't slow for Math/IO). There should be a top notch java 1.5 /1.6+ only version of JMF. The problem with the current version is that it's made for 1.2+, it doesn't use nio, and lacks a lot of optimisation that could be done with 1.4, like using ByteBuffer instead of byte[] short[] or float[] to carry the data. With nio, going from shorts to bytes to any datatype is a piece of cake. Plus you can use MappedByteBuffer and all sorts of optimisation, which is really what multimedia coding is about. And instead of calling new String(...) as I saw in some parsing code, it could use other CharSequences (CharBuffer for example to avoid copying).

    The point is that, IMHO, there is a bright future for Java on consoles, which don't have the memory restrictions PS2 had. The question is, how is it going to happen. Are we going to write a default, best and brightest J2SE VM for consoles, with an ISO on java.com and all the instructions for any interested programmer to download, or is it going to be a so-so, nowhere-to-be-found, barely 1.2 compliant, half-illegal bootleg VM.
    In the end, Sony will need us, as Java needs those barils of new blood that will embrace it when they find a high quality VM that can harness those teraflops of horsepower readily loaded on their console. What we really need to do is make enough noise to convince Sun to use it's diplomatic prvileges to put pressure on Sony to include a VM that would be the best ever java. If this migration from desktop to media center/console is really to happen, the we should not let ourselves carry away. If starting now in one year we could have a great Mustang/6.0 VM for PS3, XBox360, truly crossplatform and clear of all vendor specific API.

    Just my 50c.

    Posted by: sat1196 on May 27, 2005 at 05:00 PM

  • I did try to port the Sun's KVM to PS2 Linux. I managed to get the code base compiled and linked. I even got a little helloworld out of it. Anything a bit more complicated and I get a segmentation fault. Something I haven't gotten around to debugging and fixing. If I read things correctly, the PS3 is going to have threads and its going to have a fair bit of storage and memory and I do think that the PS3 is going to have a reasonably open development platform given the development market they are aiming at (not just games but also media) at should result in a larger developer ecosystem.
    If this reality does pan out, this would represent a good opportunity to port one or more Sun VM to the PS3 under Sun's research license over here at a java.net's desktop or mobile communities.
    I am just praying that the Cell folks will release an open developer platform. Given that IBM is going to be using Cell for its next generation blades running Linux there is a good chance that the tool chain is going to be GNU based. Mind you IBM did release their own tool chaing for the G5. But I am sure that the folks over at GCC will release their wares for the cell platform. There is a good chance that IBM will release their JVM for this platform given that Websphere is Java based. The next basic requirement is going to be the availability of documentation. If PS2 Linux is anything to go by and Sony does start something simillar for PS3, then we will see good documents and a pretty good platform.
    Finally, in defence of Sony at least, They do have good Java support on their phones. Its just that their core customers on the PS2 or the PS3 are not asking for Java. By customers, I mean developer houses. Everybody thinks Java on the PS boxes would be cool but no body seems to want to put their money where their mouth is. In short I don't think there is money there. So its upto the Java community, especially the desktop and mobile communities over here at java.net to step up and do somthing. As for my self, I am just waiting to see what kind of toolchain Sony and/or IBM and Toshiba releases for the Cell. If its open, all that source code Sun is releasing for the mobile and desktop should in theory be portable to the Cell. That would be good thing.

    Posted by: suhail on May 28, 2005 at 01:20 AM

  • If Java is in its teens, then jBoxim is just a baby for 2 Months. Indeed, Sony's Bluray is a good opening for a tool and application like jboxim. What future holds for JVM in pervasive devices? IMHO, I say, absolutely promising!

    Posted by: densio on May 29, 2005 at 05:41 AM

  • If you have a minute to spare, jboxim is located in this page

    Posted by: densio on May 29, 2005 at 05:45 AM

  • There is a Kaffe port to PlayStation2-Linux. But no games publishers have overrun the Kaffe mailing lists since, since no games publisher in the console market really cares about running anything written in Java on their consoles, afaict.

    If you have a C compiler port to the console, which console manufacturers probably do, chances are that they can get any set of open source applications they may want to bundle with their console ported much faster than dealing with a full scale J2SE 1.5 JVM port including a hotspot-like jit engine, and the TCK certification of the resulting system.

    cheers,
    dalibor topic

    Posted by: robilad on May 29, 2005 at 12:29 PM

  • Java is a great way of programming games, but I am biased, having just spent 3 years writing
    a book
    about it :)

    The fact that Java can't be used on consoles is the main (perhaps the only) criticism against using Java for games programming. The guys in Sun's Game Technologies Group know this.

    My guess is that Sun is hoping that the convergence of game consoles with PCs will mean that the console makers will want to start supporting a wider range of tools. Of course, Java would be an ideal tool. I hope this will happen for the PS3.

    I think there's been a lack of motivation inside Sun at the management level to port Java to the current console world (i.e. to the PS2). It would require a lot of resources, and it's not clear what audience would be interested. Home programmers prefer the PC because of the wide range of tools, and there's a big market for PC games. Commercial console developers turn to cross-platform tools like Renderware and Gamebryo.

    - Andrew

    Posted by: andrewdavison on May 30, 2005 at 06:54 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds