Eden

What is Eden

Eden is a Python library that, amidst other things, makes available to the application developer the central classes Node and View.

Nodes

Nodes are lightweight data containers, just like variables. The special thing about nodes is that their values functionally depend upon each other. Programming application logic and data manipulation boils down to defining these dependencies. In other words: programming in Eden is functional, declarative programming. But since the underlying language is Python, this mixes well with algorithmic, imperative programming.

Views

Views are a thin wrapper around the controls of a GUI library, in this case WinForms. The special thing about views is that they connect to nodes. This means that the views implicitly behave according to the observer pattern. Views have dynamic layout management specified in code, rather than a fixed, pre-drawn layout.

Some experiences

Using Eden in everyday practice has proven a pleasure.

Using Eden

Eden has been in use for over a year now by four people working on two engineering projects. Both resulting applications involve dozens of modules, most of them with dozens of nodes, some nodes carrying many megabytes of data. A characteristic of both projects is that requirements rapidly evolved during the project. With Eden it proved remarkably easy to follow the changing requirements. In spite of the fact that requirements changed frequently and deeply, application structure has remained lean and clean.

Learning Eden

Although the tutorial examples are simple for anyone to comprehend, they by far don't cover all the features. Moreover they are too small to reveal issues of overall program organisation. Using Eden in an effective way for a non-trivial app has a steep (but short) learing curve. It has proven feasible to get a "fresh" developer upto speed in a few days of side by side tutoring.

What is the status of Eden

The code is suitable for serious development. The API is largely stabilized, although still bound to grow. A hypertext tutorial with embedded working examples is present, but incomplete. Narrative and reference documentation are currently sorely lacking.

What are the system requirements to develop and run Eden applications

Eden-0.1-beta-1 works best with IronPython 1.0, Python 2.5, DotNet 2.0 and Windows XP.