Helma Logo
main list history
previous version  overview  next version

Version 1 by hannes on 11. May 2008, 21:10

It is quite obvious for anybody familiar with Helma 1 that NG is quite different in many fundamental ways. This article highligts some of the  differences, and explains the reasoning behind these changes. I've grouped the changes into two groups: the big, obvious ones, and the smaller, not so visible ones.

= Obvious Changes

=== More Javascript, Less Java


=== The Helma Shell


=== No HopObjects at the Core


= Non-Obvious Changes

=== Non-accumulative Repository Chain

Like Helma 1, Helma NG is based on the concept of a list of repositories from which code and other resources are read. In fact, the repository package (contributed to Helma by Daniel Ruthardt) is one of the few larger packages of code Helma NG shares with its predecessor. However, Helma NG treats the repository path quite differently than Helma 1. Helma 1 in many cases treated the repository path in an accumulative way, meaning that things later on in the path could add to things defined in front of them. This was true for all kinds of properties files, scripts and skins. Helma NG, on the other hand, uses a more conservative approach: The first resource found in the repository path is used, and once the resource is found the search is terminated.

The reasoning behind this change is mostly to reduce complexity. Adding to one logical reource in several places can have terrible effects on clarity. By defining one thing in one place we hope to faciltate separation of concerns and improved molularity.