Skip to main content

Nonstop Mega Mix

Posted by editor on December 15, 2005 at 9:22 AM PST

Who says Java doesn't have mixins?

OK, I'll admit it - I went to an ApacheCon session on Ruby yesterday, to see what the big deal is. There's syntactic sugar, sure, but there are some interesting liberties taken with the ideas of object oriented programming.

One of the neat ones is mixins, which offer a way to bring some commonly-used functionality to many parts of your code. There isn't really a straightforward Java analogy for this - you can use an interface to declare that many classes share a similar capability, but you can't use it to actually share the implementation between classes (indeed, it's a good thing that classes can implement the interface in different ways).

One analogy you could make is that a mixin resembles a cross-cutting concern in aspect-oriented programming, because in both cases, you're trying to put the same code in many different places.

Mohan Radhakrishnan takes this a big step further in

In today's Feature Article, by explicitly using AOP to deliver mixins in Java. In Writing Mixins using AspectJ, he uses the concept of event-notification code, something that many classes will have to support, yet most will do in pretty much the same way. In the article, he offers three progressively simpler versions of supplying common event-notification code: an AOP version without mixins, one with mixins, and one that uses J2SE 5.0 annotations to declare AOP join points.

James Gosling shares his Adventures in internationalization in today's Weblogs.

"I spent a good chunk of last week fussing with how rocky internationalization support can be... Enough software failed to handle these [cases] that it was pretty awkward. I won't name names, but I did file bug reports."

Eitan Suez has had
An Epiphany:
"Epiphany is to Gnome what Camino is to MacOSX: a web browser that uses Gecko but its UI uses the Gnome and GTK APIs for a user interface. Epiphany was designed to fit in on a Gnome desktop. Indeed, it is the endorsed web browser for Gnome."

In Handling Type Codes in Your Domain Models, Jacob Hookom writes:
"With complex enterprise systems, we often times find ourselves with lots of 'flags' or 'types' within our database tables. Utilizing Hibernate's UserType facility, we can handle these types in such a way that will carry extra behavior and information within your domain models. "

In Projects and
the JDK Community spotlights JVM performance: "Record setting Weblogic 9 set the world records running on Sun's Hotspot JVM. David Dagastine blog has more examples of Sun Hotspot JVM performance leadership. SOOOOO how does JRocket work with a Java Client? Kirill Grouchnikov gives a hint by yelling out show me the money."

The 65th issue of the JavaTools Community Newsletter features news from a number of projects, a list of new community projects, a tip for using Eclipse perspectives, and a call for JavaPolis attendees to meet community leaders Fabiane Bizinella Nardon and Daniel López, who are attending this week's conference.

In today's Forums,
mayhem appeals for a performance improvement in
Re: EA based lock removal in Mustang-b63!:
"Of course, it's understandable that you don't have enough time/resources to implement stack allocation for the Mustang release. But still, IMHO it's probably the most important optimization missing in Hotspot to make Java performance competitive with C/C++ in certain areas (for example scientific and game programming). Another potential benefit of stack allocation is improved performance of iterators and "closure expressions", which can also aid implementation of other, more functionally oriented programming languages in the JVM."

From the Mobicents project, ivelin notes
Google Talk Voice opening up
: "The google team seems to be delivering on their promise to document and standardize the XMPP voice extensions: and Any takers for a Jingle RA and JCC provider?"

In Also in
Java Today
the JDC Tech Tip Variable "Arity" Methods introduces J2SE 5.0's support for "varags methods", which allows a method to take a variable number of arguments. "Prior to JDK 5.0, if you wanted to pass an arbitrary set of arguments to a method, you needed to pass an array of objects. Furthermore, you couldn't use variable argument lists with methods such as the format method of the MessageFormat class or the new to JDK 5.0 printf method of PrintStream to add additional arguments for each formatting string present... JDK 5.0 adds a varargs facility that's a lot more flexible."

BusinessWeek claims Java's hold on the enterprise is slipping in Java? It's So Nineties, wondering "can it possibly be that Java -- once the hippest of hip software -- has become a legacy technology, as old and out of style as IBM's (IBM) mainframe computers and SAP's corporate applications? Mounting evidence points to yes." Javalobby founder Rick Ross' commentary criticizes the article's selection of evidence and sources, calling it "a grab bag of potshots at Java from people who have a clear and obvious interest in trying to gain something at Java's expense. "

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

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.

Who says Java doesn't have mixins?