Background and History
var threadScope = new Object(); threadScope.__parent__ = null; threadScope.__proto__ = sharedScope;
The nice thing about this is that you basically get a new top level scope - the scope where top level stuff and variables missing a var declaration get allocated - but it inherits from the shared scope through the prototype chain. When you give each script its own top level scope, the need to hide and wrap things into artificial namespaces to keep them colliding with things from other files suddenly goes away.
This would have been good enough, but it was only when I realized that this also makes imported modules local to the importing code that I realized I had found the solution to the problems that had blocked Helma 2.
Thus, in mid April 2008 the old Helma 2 code was renamed to Helma NG to reflect the fundamental generational shift. The first release, Helma NG 0.1, was released on April 18 2008.