Skip to main content

We're In This Together

Posted by editor on November 2, 2007 at 8:32 AM PDT

Is the primary audience for Java code actually other Java developers?

Jayson Falkner and his younger brother decided to use Java for a web-embedded game they'd set out to write:

My brother and I decided to try and make a viral video game. The sort of game that can suck hours away from your life. The type of game that passes the boring times at work. The type of game that normally seems to be coded in Flash/ActionScript....

The only problem is that neither of us knows how to code Flash/ActionScript. After some thought, we wondered if this was actually a problem. We do know how to code in Java, and Java does have applets. This page is to document our efforts and hopefully provide some information for other Java game programmers that want to use applets. What this blog won't provide is any information about how to make a fun game -- we're not even sure if we've done that ourselves.

The resulting game works for me on Firefox (but not Safari), and while I don't quite have the hang of it yet, it seems like it's got a sort of "Lemmings" feel to it: try to deploy the right kinds of characters to achieve an overall goal, even while potentially sacrificing some of those characters.

Jayson brings up a question in the title of his blog, Building a Java applet-based game -- why don't we see more of them?, that I don't think he ever fully addresses. With his guidance about their experience in the game, I think he implies that what holds up Java applet game development is challenges like getting good performance by double-buffering your graphics in a single BufferedImage, using anti-aliasing for your text, etc.

Good knowledge to have, but let's consider another hypothesis: you don't see a lot of games because Java developers, by their nature, don't choose to do end-user applications of any kind. It's a strange thing to say, but look at the top projects: by almost every metric (traffic, membership, commits, etc), the top projects are almost exclusively things that you build other Java apps with.

You might say that it's only appropriate for the most reusable code to be popular, but just thinking about it anecdotally, I find that when I look through new project announcements, they're overwhelmingly about libraries, and rarely about webapps or desktop apps that an end-user would directly interact with. For example, we have more object-relational frameworks than anyone could want -- we started with JDO and EJB and moved on to Hibernate and JPA and lots more like them -- yet every few weeks, I get a new announcement about a new ORM project starting up. Yet I think about typical desktop applications -- personal organizers, educational software, games -- and realize I almost never get pinged on that stuff.

Heck, I've done this. Every media open source project I've launched, starting with Jicyshout (streaming MP3 support for Java Media Framework... don't bother downloading it, I don't think it works anymore), has been a library. In fact, I've done mostly libraries that support other libraries. For all my big talk about end-user apps, you'd think I'd, you know, actually write one sometime.

So, is this just a curious behavior that's endemic to the Java community -- that we write code for one another instead of for real end-users? And if so, why? Is Java intrinsically a "navel gazing" technology? Do we seek the praise of our colleagues rather than the non-coding masses? What's our deal?

In light of this topic, the latest Poll asks "What kind of open-source project would you rather work on?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

Also in today's Weblogs, Roger Brinkley relates

36 hours in the life of the Mobile & Embedded Developer Days organizer.
"The last 36 hours have been quite a ride. Full of highs and lows and not much sleep. I'm still not sure if it's dream or reality but I think I remember that James Gosling is going to be our keynote speaker."

Meanwhile, Sean Sheedy, a candidate for the ME Executive Committe in the JCP Elections, takes a look at the
SE/EE Executive Committee Candidates.
"Being focused on Java ME, I found that after perusing the candidate list for the SE/EE EC on, I still was not sure who to vote for. So I put this together to be able to compare the candidates and understand their motivations for running for an EC seat."

In Java Today,

Eduardo Pelegri-Llopart asks for big thoughts in the Aquarium post ... And what do YOU want from GlassFish v3? "The first Technology Preview for GlassFish v3 was just a proof of concept but we are now working out the detailed plans for the second TP through the final release. John has posted a list of the main GF v3 Themes and started a Mail Thread. So far the feedback covers both developer and deployment topics; combined with the Modular Architecture, GFv3 will cover a lot of space. Please check out the wiki page and the mail thread and consider contributing."

The JavaWorld article XML Data Interchange in Java ME Applications discusses "how the Data Transfer Object design pattern is implemented in Java ME architectures and why you might want to use XML-based DTOs rather than Java beans for faster data interchange between tiers. Author Mario La Menza presents an example architecture that supports the use of XML-based DTOs and also introduces MockMe, a free tool for generating XML-based mock objects so you can test the presentation layer of your Java mobile applications without waiting for server-side data."

"With the open-source release of Sun Labs' Project Darkstar -- which offers Java technology-based infrastructure software designed for latency-critical, massively scaled online applications such as online games -- not only will development costs go down, but the technical challenges of scaling, load balancing, data consistency, and failure recovery currently faced by developers of multiplayer games will be radically reduced or even eliminated." The SDN gets an update on the project in Project Darkstar's New World of Online Games: A Conversation With Jeff Kesselman.

The discussion of GlassFish v3 features continues in today's Forums. In
Re: GlassFish V3 planning - What do *you* want in GlassFish V3?, wtff writes,
"I absolutely agree. However, the server doesn't need to be able to load classes dynamically. The proposed changes do not entail that it does. The server could still reload the whole application on each update. The improvement would still be that only the files get transmitted to the server that have been modified. The server could then assemble a new deployment based on the existing one and the modified Increment and then deploy this new, self-assembled application archive in the traditional way."

kohsuke explains GlassFish design decisions in
Re: Validataing incoming SOAP messages with Glassfish V2.
"IIRC, you are right that the current implementation is limited to doc/lit because we simply extract all schema definitions and pass that to the JAXP RI. But I think it's relatively straight-forward to expand this further into rpc/lit by synthesizing the schema fragment. I'm not sure why you consider this a design failure of JAXB, as the validation belongs to JAXP, and the rpc/lit semantics belongs to WSDL, thus JAX-WS. I think it would be rather pointless if these three technologies try to overlap with each other."

Finally Kleopatra tries to rein in some naming conventions in
Re: SwingX and third party LAFs.
"We still have some naming-convention violations (though we had an open issue about it, but can't find it right now) which bug: the use of "JX" for non-components. This applies for all component-specific YYAddOns and (eeekk!) JXDatePickerFormatter. I would suggest to rename (drop at least the J, maybe the X as well) to comply with conventions. Thoughts?"

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Is the primary audience for Java code actually other Java developers?