Attila Szegedi about Rhino, Helma and Server-Side Javascript, and scripting on the JVM in general

Attila mentions
Helma
as a "quite renowned" server-side framework when asked "What are some of the best usage patterns for embedding Javascript within Java applications?". The other example he highlights is
HtmlUnit
, which provides an API for the simulation of web browsers such as Firefox or Internet Explorer, modeling HTML pages on the server-side, even with quite complex AJAX functionality (He says "HttpUnit" instead of "HtmlUnit", but I always get those mixed up, too).

Of course, he also gets asked about
Rhino on Rails
and points out that Rhino is used in several projects within Google and that many of the currently most active Rhino contributors are now Google employees. By the way, since this interview was made,
Norris Boyd
, who is now one of these Google employees, has again taken over as maintainer of the Rhino Project.

This new version adds req.uri and req.actionHandler to better support continuation and callback functionality. It contains a new Rhino snapshot from 2008-02-05 with the default JS language version now set to 1.7 and added
support for JSAdapter
. Several bugs were fixed, including some related to starting and stopping applications, one that kept repositories from working when deploying Helma through Tomcat, and some related to debugging Helma applications:

Added req.uri and req.actionHandler to better support continuation and callback functionality.

Replaced Transactor thread with a ThreadLocal variable.

Fixed wrong classloader/rhino context when Application.init() was called from another app.

When prototypes use multiple parent mappings, the hopobject.href() method didn't work properly in 1.6.1.

Fixed manage app to show stopped apps that even if they are not using their default repository.

The onInit method of the root object was not called except when helma was first started.

Fixed a problem that kept repositories from working when deploying Helma through Tomcat.

Changed the way hopobject.getById is defined, so that its value is accessible when it is references without invoking the method.

Fixed a bug that prevented debugger windows from properly closing when an app was stopped from the manage app.

With sqlLog enabled, the logging code in helma.Database threw an exception.

Fixed a problem where the Debugger didn't display properties of current context on Mac OS X.

Leading/trailing whitespace in object names is now allowed.

In 1.6.1, there was a problem casting string values to OR-mapped tinyint(1) DB fields.

If you do not yet understand Javascript as a powerful programming language, this presentation will serve as a good introduction. It won't really make you see the power, but it will give you an idea where to go and look to find it.

Your email address:
The "Decentralize" Newsletter
Exchanging ideas for building a
decentralized fabric of society.
Making true democracy work on a larger
scale while decentralizing "everything",
benefiting from local diversity and
global synergies at the same time.
http://tinyletter.com/zumbrunn