Damon has had a very steep development curve (mainly a reflection of its main developer's -- my -- learning curve). Damon0 was never released to the public, though EDS has used it commercially since 2008. Damon1 is a more object-oriented rewrite of Damon0 that sets the overall architecture of Damon -- how the methods are called and feed into each other. Damon1 is also doomed to be temporary. Damon2, for want of a better name, will be a complete rewrite of Damon1, emphasizing the following features:
- Multiple facets. Non-tabular (multi-faceted, multi-tensor) data designs.
- SPOTS. The data engine will be a form of graph database, data stored as a long array of "triples" somewhat along the lines of RDF. Tentatively called SPOTS (Subject Predicate Object Triples), it will store too-big-for-memory data persistently and access it through a uniform SPARQL-like query interface. Its goal is to open up mathematical algorithms that rely on data that may not fit nicely into a tabular schema, and also to support interoperability with the Semantic Web. While Damon2 will be rebuilt around it, SPOTS is a separate project and still in prototype mode. I expect to publish something in 2016, work permitting.
- Bcolz. SPOTS is built on bcolz and is intended to fill a niche in Continuum's Blaze ecosystem, which can be thought of as Pandas for big data.
- Subspaces. Damon2 will contain new mathematical innovations, especially in the area of multiple subspaces. Damon1 already does subspaces, but not very well. Damon2 will treat subspaces as first class entities.
- Extensibility. It will be easier to build new stuff onto Damon.
- MOMS. I'm often asked to run various psychometric procedures and models, including ones I don't like. Sometimes I use non-Python packages with nice GUIs, such as jMetrik. Sometimes I have to hunt around for tiny out-of-date programs. Sometimes I'm able to figure out the algorithm and write it myself. MOMS (Multiplatform Objective Measurement Suite) is intended to pull these psychometric tools into one place where they can be managed through Python.
It is expected that Damon2 will eventually replace Damon1 and not be backwards compatible. It's a big project, though, so don't hold your breath.