Skip to main content

The Java Memory Model

Posted by daniel on April 14, 2004 at 5:00 AM PDT

Brian Goetz reports on the spec developers may never take the time to read - JSR 133.

Goetz provides an overview of the changes to the Java Memory Model in JSR 133 in Public Review
in java.net's featured articles. There's something about Brian's second paragraph. He tells you that the spec he is covering in this article is one you want want to read. Here's a condensed version of his words. "JSR 133 is probably one of the most important JSRs to come along in quite a while, despite the fact that it produced no code, no APIs, and no new language features. [It is ] a spec that most developers will never read, nor ever want to, because of its complexity. So why is it so important? Quite simply, it provides the foundation for (finally) delivering on Java's promise of being able to develop write-once, run-anywhere concurrent applications."

Kind of cool. For the most part, Goetz explains, volatile and final will do what you expect them too. He points out that "Many developers mistakenly assume that synchronization is simply a shorthand for "critical section" or "mutex". While mutual exclusion is one element of the semantics of synchronization, there are two additional elements -- visibility and ordering." In short, this article is a nice read about a spec you may never read.


In today's Weblogs , John Mitchell tries to stir up the pot with his post The Tar Pit of Programming. Thanks John for agreeing to help us work out the kinks in this new feature. John hopes "that you will join us in examining and discussing the fads, fallacies, dreams, and harsh realities of modern sofware development."

If John doesn't provoke you, how about Jack Shirazi's post titled We don't have any competitors. He writes " The statement 'We don't have any competitors' does NOT tell your potential customers that you have a fantastic new product which no-one has ever thought of. It tells potential customers that your product must be one they don't need. After all, if you have no competitors, the market must be so small that no-one else thinks it worthwhile to build a competing product."

Jeff Kesselman joins us with Faster, Better, Cheaper. That's what.. He is responding to Athomas Goldberg's entry and concludes that "Java IS good for game developers. It opens markets by reducing porting costs. It allows the developer to deliver more reliable code quicker. Most importantly It allows the developer to reduce the complexity of the game programming problem down to manageable units."


In
Also in Java Today
, Mark Eagle describes how to view your web application as being split into four layers: the presentation layer, the persistence layer, the business layer, and the domain model layer. In Wiring Your Web Application with Open Source Java, Eagle provides an example of using Struts in the presentation layer, Spring in the business layer, and Hibernate in the persistence layer.

Bill Venners interviews Luke Hohmann and the conversation turns to Entropy Reduction. Hohmann says that he can point to places in his software that are architected perfectly and other places that are just plain ugly because the software had to ship. What if, like David Quick suggests, you add shipping at a certain time as a feature along with the other features your software must have. This makes it easier to understand that you have "to do what is necessary to get that feature done too." Hohmann talks a lot about maintaining code from a very realistic perspective. " Why does software require tending? Things shift on you. Your database just upgraded, you have XML infrastructure to deal with, the customer wants a middleware option, and an operating system just changed. There's more shifting in software than people realize."


In today's Projects and Communities , the Java Desktop community is publishing previews for their popular Swing Sightings feature. First up is a look at Style Report Designer, "a visual report designer/tool to create XML/Javascript report templates that can be incorporated into J2EE based web serivces."

The NetBeans community has released NetBeans version 3.6 which features "a new windowing system, enhanced navigation and workflow, and Smart Brackets and Code Folding."


In today's java.net News Headlines
:

Registered users can submit news items for the href="http://today.java.net/today/news/">java.net News Page using
our news submission
form
. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
thejava.net
News RSS feed
.


Current and upcoming
Java Events
:

Registered users can submit event listings for the href="http://www.java.net/events">java.net Events Page using our href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the
Java
Today RSS feed
. All java.net members can subscribe to the email
updates for the site at the href="https://java-net.dev.java.net/servlets/ProjectMailingListList">
java-net Mailing Lists page. You must be logged in to subscribe
to
the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
java.net
it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.