As a Spyce user, it helps to understand the broad design goals of this tool.
Spyce is designed to be:
Feature poor: The philosophy behind the design of Spyce is only
to include features that particularly enhance its functionality over the
wealth that is already available from within Python. One can readily import
and use Python modules for many functions, and there is no need to recode
large bodies of functionality.
Small: There is an active push keep Spyce small, especially the
core engine. The engine currently stands at 5000 lines of code -- tiny
compared to PHP or Zope, etc. The standard modules comprise another
2000 lines.
Modular: Spyce is built to be extended with Spyce modules and
active tags that provide additional functionality over the core engine
capabilities and standard Python modules. New features in the core engine
and language are rationalised against the option of creating a new module or
a new tag library. Standard Spyce modules and tag libraries are those that
are considered useful in a general setting and are included in the default
Spyce distribution. Users and third-parties are encouraged to develop their
own Spyce modules.
Intuitive: Obey user expectations.
Convenient: Using Spyce should be made as efficient as possible.
This, for example, is the reason behind the choice of [[ as delimeters over alternatives such as <? (php) and <% (jsp).
Note that ASP/JSP-style delimeters are supported as well! Functions and
modules are also designed with as many defaults as possible.
Single-purpose: To be the best, most versatile, wildly-popular
Python-based dynamic HTML engine. Nothing more; nothing less.
Fast:Performance is
important. It is expected that Spyce will perform comparably with any other
dynamic, scripting solutions available. Of paramount importance, however, is
clean design and syntax, and high degree of modularity and usability. The
philosophy is to build and tweak only when necessary and only for
significant performance gains, tested empirically.