Navigation

RSS 2.0 New Entries Syndication Feed Atom 0.3 New Entries Syndication Feed

Show blog menu v

 

General

Use it

Documentation

Support

Sibling projects

RIFE powered

Valid XHTML 1.0 Transitional

Valid CSS!

Blogs : Latest entries

avatar
Frank Sommers : What Do You Look For in a Template Engine?

Frank Sommers of Artima has started a discussion about template engines and asks what you find important in them.

Template engines seem to be one of the most stagnant technologies in Java, many adopt the design that mixes content and logic but implement it differently (PHP, JSP, Velocity, Freemarker, ...). It's a good thing that Terrence Parr (of ANTLR fame) created StringTemplate which seems to move in a similar direction as what we've been doing with our template engine in RIFE. He acknowledges the push model that injects values and text into a template instance instead of pulling them in with an expression language. While I prefer our approach where there really is no logic in the template at all, I really appreciates what Terrence says in his docs:

Language theory supports my premise that even a minimal StringTemplate engine with only these features is very powerful--such an engine can generate the context-free languages (see Enforcing Strict Model-View Separation in Template Engines); e.g., most programming languages are context-free as are any XML pages whose form can be expressed with a DTD.

This goes back to a less-is-more philosophy where you build what is needed to comfortably use a technology in trivial and advanced situations, and nothing more. RIFE's template engine does the same. Instead of including a whole collection of additional features, we rely on you making a mental shift to adapt your development habits towards the new capabilities and characteristics of our template engine. In my case its not language theory, but rather lots of very complex HTML layouts and other uses of our template engine that gets me to say that our template engine is powerful enough to allow you to comfortably build anything you want, without compromising on context separation and reusability.

Have you ever tried out another template engine besides the classic pull model in anger? What did you think of it?

posted by Geert Bevin in RIFE on Jul 21, 2007 10:41 AM : 0 comments [permalink]
 
RIFE 1.6.1 released

There are no new features since release 1.6, this is a bugfix release.

Everyone using continuations is urged to upgrade to 1.6.1 due to performance regressions that crept into the previous release.

You can read the full changelog for more details.

This release can be downloaded from the downloads section, as usual.

posted by Geert Bevin in RIFE on Jul 14, 2007 11:40 PM : 0 comments [permalink]
 
RIFE 1.6 released

Below are the highlights:

  • Isolated continuations package with proper public API and separately downloadable jars
  • Byte-code instrumentation agent that can replace the classloader
  • Integration with Terracotta for continuations fail-over and scalability
  • ManyToOne and ManyToMany relationships in the GenericQueryManager with lazy-loading
  • Refactored authentication package for optimal pluggability
  • New template tags BA and C
  • Template tag syntaxes don't require quotes anymore
  • MVEL as blockvalue scripting language
  • JRuby support for implementing elements
  • Support for the H2 database
  • Support for Java 5.0 enum types
  • ReadQueryString and ReadQueryTemplate query builders
  • EXIT:PARAMSJS:name and SUBMISSION:PARAMSJS:name for increased spammer protection

Full documentation for the new features is being written and will be published in the RIFE wiki cookbook.

You can read the full changelog for more details.

This release can be downloaded from the downloads section, as usual.

posted by Geert Bevin in RIFE on Jul 2, 2007 3:25 PM : 0 comments [permalink]
 

 
 
 
Google
rifers.org web