Helma Logo
main list history
previous version  overview  next version

Version 10 by hannes on 14. April 2008, 19:11

Some vague feature ideas for Helma 1.7

=== New Persistence API implemented in JavaScript

Try to decouple helma.objectmodel from the rest of the framework, and start layering a javascript interface on top of it so it can be used in stand-alone/explicit fashion.

=== Alternative Session Implementations

Start using SessionManager to actually implement different session management schemes.

* db persistence
* client based persistence
* replication/load balancing

=== Allow skins to extend/inherit from each other

This is a very useful idea to take from *Django|http://www.djangoproject.com/documentation/templates/*. Extending This allows developers to create a skin would have base.html template with the same effect as partially overriding a skin from another repository: Some subkins may be overriddenshared XHtml boilerplate code, and let sub-templates fill in the others are inherited from the base skinactual content. 

What about syntax? The natural thing subskins feature *introduced in Helma 1.6|new skin features in helma 1.6* are a perfect fit for this. Extending a skin would have the same effect as partially overriding a skin from another repository: Some subkins may be to just use <code><% extends foo %></code>overridden, but that would clash with ordinary macros. Maybe borrow the # others are inherited from subskins and use <code><% #extends foo %></code>?the base skin.

What about syntax? Currently I sympathise with the idea to change subskin syntax from <code><% #subskinname %></code> to <code><% #subskin subskinname %></code> - in other words add a #subskin keyword. This would have two benefits: first it makes subskin syntax more self-explanatory, second it would make place for other "meta-macros" like <code><% #extends superskinname %></code>. Going further on this, it might be possible to implement an API for meta-macros (for lack of a better expression) that allow low level manipulation of skins, subskins and macros.

=== Library and Modules

* Extend and enhance helma.File.js and other modules
* Start removing core extensions in favor of modules?

=== Varargs Support for res.write() and consorts

Allow to pass 0..n arguments to res.write(), res.writeln(), res.debug() and similar methods. My proposal is to write out arguments separated by a single whitespace like print does in python.

=== More Ideas

* Provide full configurability when running Helma in embedded (tomcat) mode.
* Support *Jürg Lehni's rhino extensions|https://dev.scriptographer.com/*
* <strike>Support *JSAdapter|http://blogs.sun.com/sundararajan/entry/self_javascript_and_jsadapter*</strike> already in helma 1.6.2
* allow apps.properties extensions to be defined in app.properties (without the "appname." prefix)
* Rewrite helmadoc to rewrite with standard rhino (no more token patch)
* Drop helma.doc package, maybe in favour of jsdoc-toolkit, or get token parsing funcitonality accepted into rhino cvs.
* Debian/Ubuntu package for Helma