
Adam and Eve – Adobe's Cross-Platform GUI Libraries - earthicus
https://stlab.adobe.com/group__asl__overview.html
======
earthicus
I came across this in a talk by Sean Parent (once lead developer of
Photoshop). What caught my attention was his assertion that they were able to
reduce the GUI code of Photoshop by 600x, from a Million lines of code to less
than 2k. It uses a declarative UI, together with what they call the
'Propagator Model' which is an R&D project by Sean Parent & his academic
collaborators. An excerpt from one of their papers explains the new
ingredient:

> The combination of procedural and declarative program code has found success
> in, for example, GUI element layout. The most familiar example is perhaps
> HTML, CSS, and DOM combined with JavaScript. The QTk library [...], XAML
> [34], and XForms [5] serve as further examples. Some of these systems, along
> with rule-based systems such as Drools [27], Jess [11], and R++ [14], also
> support concisely specifying declarative rules for maintaining consistency
> across values in user interfaces. Property models are distinguished from
> these systems by not only providing the ability to create rules that assist
> introducing a valid result but also by providing an explicit model of the
> dependencies these rules create. Inspecting the state of the model enables
> generic algorithms (e.g., for widget enablement) for user interface.

[http://www.emarcus.org/papers/gpce2009-marcus.pdf](http://www.emarcus.org/papers/gpce2009-marcus.pdf)

