Skip to main content

This Sentence Will Ruin/Save Your Life

Posted by editor on August 28, 2008 at 7:15 AM PDT

invokedynamic makes its debut... now what?

First off, I'd like to thank O'Reilly editor Kevin Farnham for updating the front page and writing the editor's blog for the last three days while I've been unavailable. I think he did a great job finding items of interest from the community and the Java world at large, don't you? Thanks again for covering for me, dude.

For anyone who cares (and didn't see my "Chris has left the Atlanta, GA network" status on Facebook), I've moved to Grand Rapids, MI, and for the first couple days of the week, I was helping get our houseful of stuff on the moving truck, then driving 850 miles (1350 km) up here to an apartment, where I'll have to cool my heels for a few weeks until we can get into the new house.

Unfortunately, I can't get the apartment's cable modem and my new wifi router working together, so I'm writing this from the Panera Bread on 28th Street by Woodland Mall. If you're one of the many Java developers in Grand Rapids, stop by and look for the guy with the JavaOne backpack.

So anyways, while I was driving through the remnants of Hurricane Fay on Tuesday, I appear to have missed International Invokedynamic Day. The invokedynamic bytecode is something we've been talking about for a while as a crucial element of better supporting non-Java languages -- specifically dynamically-typed languages -- on the JVM. In fact, its formal definition as JSR 292 was green-lit by the JCP EC and an expert committee formed back in 2006. And now in 2008, it looks the bits are ready to go.

For perspective, Danny Coward marks International Invokedynamic Day by providing some history and details in the blog entry, Firing up the engines for multiple languages. "Engines
for dynamic languages have to create artificial interfaces or classes
just to do the form filling. Making them brittle, difficult to maintain
and slower than they could be. But not if href="">we modify the bytecode
to remove the need to fill out all the type information.
So back to the update: John has href="">prototyped
support for the modified bytecode in the HotSpot JVM!
What this means is that implementors of dynamic language engines are
now free to try this out and href="">prove
the theory."

It will be very interesting to see just what kinds of tangible benefits can be realized by this approach. Some of the scripting languages are already faster on the JVM than their statically-compiled equivalents, and with invokedynamic, this can presumably only get better for scripting language developers.

In Java Today,
The Aquarium has posted a Project SocialSite roundup. "Project SocialSite was announced at JavaOne back in May (presentation) and code was released earlier this month. Installing this social computing enabler is quite simple when following the install guide (even if you can be a little disturbed by the SSO feature enabled by default). If you'd like to follow the progress of this project, the SocialSite Group Blog is probably the one place to look."

Over on InfoQ, Brian Zimmer has written up a new article detailing some Scalability Worst Practices. "Over the course of building out a number of large, distributed systems I've had the opportunity to observe (and implement) some worst practices. Most of these worst practices start innocently enough, but if neglected they will jeopardize the growth and scalability of a system. A number of articles focus on best practices to ensure an easily maintainable and scalable system, but in this article I'll highlight some worst practices to avoid."

The latest JavaOne Community Corner Podcast is
j1-2k8-mtH09: Energy and CO2 Savings with Java EE 5/SE 6, Glassfish, Shoal, Groovy, SunSPOT and Java by Adam Bien. Intelligent heating control saves not only energy (30-50%), is environmentally friendly, but increases the living comfort as well. Alone the priotirization of energy sources: solar thermal collector, wood buring stove, main heater combining with the inclusion of the weather-forecasts, contributes considerably to the energy saving. This session describes the architecture of the GreenFire project, specifically: usage of JSR-223 (Scripting Integration) in Java EE 6 / 6 environment for the implementation of flexible rule systems, reporting, using EJB 3 timer service, Java EE compatible hardware integration, SunSPOT and sensor network integration, using Java FX together with Swing and EJB 3, sensor testing (with Junit and mocking), speech synthesizer integration (FreeTTS), management and monitoring of heating system over the internet, mobile device integration, and integration of multimedia center systems.

In today's Weblogs, Terrence Barr points out a legal rebuke to the Java-less iPhone in
Get real, Apple. "An Apple TV ad has been claiming that "all parts of the Internet are on the iPhone" ... well, not quite. Java is a major component of the Internet, used on thousands of web sites and available on close to 95% of the world's desktop computers - but not on the iPhone."

Jean-Francois Arcand discusses
Fronting GlassFish v3 with Apache httpd. "Finally, GlassFish v3 can now be fronted using Apache httpd via mod_jk and mod_proxy_ajp."

Finally, David Herron adds his voice to those wondering about the wisdom of browser-makers integrating JavaScript (and nothing else) in
Browser makers walled javascript garden. "Why JavaFX should be inlineable with HTML raises an interesting question in my mind. He's making a number of suggestions about JavaFX and many boil down to the power of "View Source" and perhaps JavaFX script code should be directly runnable as part of the source of a web page."

In today's Forums, mfernan80 wants better
Windows Mobile scrolling. "I'm testing LWUIT with Windows Mobile (Esmertec, J9 and PhoneME) and I see a very annoying behaviour when trying to scroll a Form or a drop-down long content. As I could see the only way to scroll is to 'drag-and-drop' with the pointer but no with scroll-bar. You can imagine how annying it is if many forms controls are painted on screen. Is there any way to solve this (that is, to only have scrolling via a side scroll bar)."

Another mobile developer, Ankit Shah, wants to inspect the ME graphics environment on the fly in
Get Device Screen Size - J2ME. "I am developing application for MIDP 2.0 based devices and and i would like to fetch mobile device screen size programmatically. Is there any way through which i can get device screen size/resolution?"

Finally, Dick Davies is working through some issues with
connection pool monitoring on a cluster. "I've got a 2 node GF2 cluster and I'm trying to enable connection pool monitoring on it (following which is a good howto). Because I'm on a cluster, the server instances use a different configuration (clustername-config) to the DAS (server-config). It looks like the admin webapp lets you enable JDBC monitoring for the clustername-config configuration, but you can only view things under 'server-config' (i.e. things on the DAS). I tried the commandline instead and had more luck."

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.

invokedynamic makes its debut... now what?