Dessy: Simpler, Faster

Dessy represents the future generation of Data Structure libraries. It doesn't just offer features over features, but shines with an astonishing overall simplicity: providing a new level of abstraction. Dessy is not as efficient as possible, but so efficient that developers don't need to think about efficiency in most of the cases.

The source code of imperative Dessy has not been finished, so that the above documents are all that I can provide right now. Functional Dessy, however, has complete source and documentation. You can directly go there, use it and study it.

Functional versus Imperative Data Structures

One of Dessy's new design principles is the combination of mutable (imperative) data structures with immutable (purely-functional) ones. Both can be implemented in an object-oriented language: for immutable data structure we just don't use procedures, only functions!

Functional Dessy contains the same functional data structures as the imperative variant. The structures use the same interfaces and specifications (thus a large part of the design) and also some of the same algorithms.

Since functional programming languages are optimized for functional programming, the implementation of immutable data structures in the purely functional language yields substantially simpler code. Consequently, Functional Dessy does not only serve as a library on its own, but it serves also as a working ground for the design of immutable data structures that can then be reimplemented in an oo language.