Olive should implement the maximum amount of secutity procedures without compromising efficiency.
Session and Access Control security should not be implemented in Core as these tasks are modularized in resource classes like modules and components or in the actual application controllers.
Olive applications should be as resource conscious as possible. It should scale well, but furthermore, it should be optimizable.
Olive achieves better performance by:
explicit initialization: olive only starts what it is told to
lazy instantiation: only loading files and instantiating objects when they are actually required
fast resource location: naming and storage rules help the application locate resources with the minimum number of operations
In the future Olive should also be able to “compile” parts of the application into optimized files and be ready to locate resources within this optimized filesystem structure.
Olive should facilitate and encourage:
fast prototyping through the implementation of logic in straight-forward
controllers
easy refactoring of prototypes into interchangeable resources like [doc:core:concept:module|modules]] and [doc:core:concept:component|components]]
use of abstraction layers for both model and output layers
design of atomic behaviours that can be reached from different contexts
expressive syntax in client code