Enaml: Pythonic, toolkit independent, declarative UIs
by Puneeth Chaganti (speaking)
- Software Development Tools
- Session type
- Technical level
The talk aims at introducing the audience to Enaml and help them get started with using Enaml and Traits for building GUI applications.
Enaml is a DSL for writing platform independent, declarative UIs. In a model-view-controller world, Enaml makes it very easy to develop the view and controller. Typically, the model is built with Traits, but it's model is framework agnostic and provides hooks for using custom model frameworks.
The DSL is a strict superset of Python and provides a simple Pythonic syntax for declaring a UI that binds and reacts to changes in the models. Enaml is dynamically executed and it lets you bind to arbitrary Python expressions. It uses a constraint based layout system which makes it possible to have layouts that are not typically possible with traditional UI toolkits. Enaml also supports asynchronous UIs which allow one to have multiple UIs connecting to the same model running in the same process or out of process. This, in theory, opens up the possibility for a web-based UI to be used to control a model.
Puneeth Chaganti is currently employed at Enthought and writes Python code for his bread and butter. He's not the author of Enaml, but has worked with it on a few small projects and is excited by and loves it's simplicity for developing GUIs.