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:<p>> 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.<p><a href="http://www.emarcus.org/papers/gpce2009-marcus.pdf" rel="nofollow">http://www.emarcus.org/papers/gpce2009-marcus.pdf</a>