Cytoscape 2.x is the result of several years of coding effort by many people, all with different visions of how to design systems. Unfortunately, all of this work was done without explicit design guidelines or standards. As a result the core code has become increasingly tightly coupled and interdependent, making it very hard to maintain and improve. Some of the problems with Cytoscape 2.x include:
- No well defined API.
- No well defined dependency structure resulting in a monolithic application.
- Plugins can’t expose APIs.
- No clearly defined event model.
- View tightly coupled to the model.
- Version numbers without clear semantics.
- Problems with conflicting plugin dependencies (libraries).
To address these problems we’ve introduced a few new technologies, produced a new API, and have substantially refactored Cytoscape.