[Bf-committers] Declarative UI Experiment

Lars Krueger lars_e_krueger at gmx.de
Mon Aug 9 12:04:04 CEST 2010

Hi, just a word of caution against the tide of positive feedback.

There are two quotes that come to the mind:

"Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of CommonLisp."
Philip Greenspun


"XML is like violence: if it doesn't solve your problem, you aren't using enough of it" (I forgot by whom, google didn't know it either).

The danger that I see is that this ends up as XML implementing "just some simple functions like tables from lists" or something and we end up with lisp-in-XML-in-python-in-C that is even more complicated than the problem we wanted solve.

If you really think end-users are overwhelmed by the complexity of fixing the GUI in python, why not make it easier for them using the tools we already have?

@Campbell: If you want it declarative, make a dictionary (or load it from a JSON file, if you must) and provide a function that renders said dictionary, as you suggested. You could provide a set of classes/methods/whatever to handle the most common cases.

@Reuben: Embedding scripts in XML is the first step towards doom. If you do so, you open a the proverbial can of worms, just than one worm bites the tail of worm in front of him. Your idea provides an option for Blender's own version of DLL hell: Missing dependencies in user UI descriptions. Your remark "Especially if you extend it to other areas (or create new name-spaces) where markup alone would be somewhat limiting." shows this danger even before the first XML file has been written.

@Roger: "No Python coding needed, just an XML editor (or text if you are hard-pressed)." Full-blown XML is a pain in the ass to edit in a text editor, even with emacs/vim and/or tons of plugins. Not everyone who want's to fix the GUI has an XML editor at hand. JSON is a partial solution as it is less verbose.

@Dan: Polling the RNA is a good idea. It could be provided as an additional abstraction. However, embedding scripts in the declaration is not a good idea, as already stated.

Just my two cents,

Dr. Lars Krueger

Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief!  
Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail

More information about the Bf-committers mailing list