
Helma - and again server-side JavaScript

Helma Open Project- written in Java platform for running server-side applications in JavaScript. Version 1.7 is now supported, but with the development of the Rhino engine, which is responsible for interpreting JS in all projects of this kind, we expect that the second version will be supported. The platform also has a built-in web server, which is used by Jetty, and even its own object-oriented database (based on XML), which is transparently integrated into the platform and allows you to save and cache objects between sessions. There are also built-in debugging tools for applications, while everything is accessible through a web interface.
Helma applications themselves are an amazing mixture of static files, HTML, basic JavaScript code and other service files scattered in a dozen service directories according to a certain pattern. The approach is quite nontrivial and tries to mix some features from Java and .NET, but at first glance this is all confusing, so you have to deal with the structure of the files and their format, which is rather complicated. This is a significant minus of the platform, when compared with Aptana Jaxer.
But there are also positive differences. For example, Helma has its own framework (yes, exactly the same approach in the solution from Aptana), which, using the Helma Object Publisher module, allows you to display the interfaces of plug-in Java components in JavaScript applications. This will allow for some efforts to use many ready-made server components in Java, and this greatly expands the capabilities of applications. And, unlike the same solution from Aptana, we initially have access to some components that are very useful for developing serious solutions - the Apache Lucene search module, modules for working with databases, SSH, FTP, HTTP protocols, a module for working with mail, drawing graphs and charts, working with files and images, and several others. In principle, the integration of other modules should not be very complicated,
The platform also includes a complete environment for debugging applications without using additional applications - all operations (breakpoints, viewing the stack, step-by-step debugging) are carried out directly in the browser. In addition to the debugger, there is also an inspector for HopObjects (these are the main platform objects available in the application, some of them are an abstraction to the interfaces of the platform itself, some are the very Java components that are available in JavaScript through Helma Object Publisher), as well as a small , but a well-developed shell for working with SQL databases that connect via JDBC.

Unfortunately, there is no detailed description of the platform, although there is a lot of documentation for the developer, so I tried to figure out the general architecture using snippets of description in the examples, explored the distribution itself in other ways. Perhaps I missed something, didn’t talk about something in as much detail as it should have - but this is not so important and not the essence of this material. In some ways, the Helma platform is inferior to Jaxer - for example, in ease of deployment, in integration with other servers, but there are quite a few unique points that make this solution interesting for application development. Out of the box, many interesting features are available, more than in competing environments, and the presence of built-in powerful debugging tools allows you to use Helma as an environment for rapid prototyping and testing new ideas, then embodying them on a working platform. The choice, as always,
PS . Original post on my blog .