Пожалуйста, перечислите библиотеки программирования GUI, инструментарий, рамки, которые позволяют быстро писать графические приложения. Я имею в виду таким образом, что
- GUI описывается полностью в текстовом файле (код), читаемом человеком (и для человека)
 - код является кратким (1 или 2 строки кода на пару виджета/события), подходит для сценариев
 - Структура и работа графического интерфейса очевидна из кода (вложение виджетов и потока событий)
 - информация о том, как создать графический интерфейс, скрыта (например, mainloop, добавление прослушивателей событий и т.д.).
 - поддерживаются автоматические макеты (vbox, hbox и т.д.).
 
Как показывают ответы, это может быть определено как декларативное программирование графического интерфейса, но это не обязательно так. Любой подход в порядке, если он работает, прост в использовании и кратким.
Есть некоторые библиотеки GUI/инструментальные средства, подобные этому. Они перечислены ниже. Просьба распространить этот список, если отсутствует квалифицированный инструментарий. Укажите, является ли проект кроссплатформенным, зрелым, активным и приведите пример, если это возможно.
Пожалуйста, используйте эту вики, чтобы обсудить только проекты с открытым исходным кодом.
Это список до сих пор (в алфавитном порядке):
Fudgets
Fudgets - это библиотека Haskell. Платформа: Unix. Статус: экспериментальный, но все еще поддерживается. Пример:
  import Fudgets
  main = fudlogue (shellF "Hello" (labelF "Hello, world!" >+< quitButtonF))
Пример скриншотов Fudgets http://www.picamatic.com/show/2009/01/28/02/40/1883597_93x80.gif
GNUstep Renaissance
Renaissance позволяет описать GUI в простом XML. Платформы: OSX/GNUstep. Статус: часть GNUstep. Пример ниже:
<window title="Example">
  <vbox>
    <label font="big">
      Click the button below to quit the application
    </label>
    <button title="Quit" action="terminate:"/>
  </vbox>
</window> 
Пример скриншота Renaissance http://www.picamatic.com/show/2009/01/28/03/19/1884098_289x80.png
HTML
HTML-ориентированный графический интерфейс (HTML + JS). Кроссплатформенность, зрелая. Может использоваться полностью на стороне клиента.
Ищем хороший пример "helloworld".
JavaFX
JavaFX можно использовать для автономных (настольных) приложений, а также для веб-приложений. Не полностью кроссплатформенный, еще не полностью открытый источник. Статус: выпуск 1.0. Пример:
  Frame {
    content: Button {
      text: "Press Me"
      action: operation() {
         System.out.println("You pressed me");
      }
    }
    visible: true
  }
Необходим скриншот.
Phooey
Phooey - еще одна библиотека Haskell. Crossplatform (wxWidgets), план HTML + JS запланирован. Зрелый и активный. Пример (немного больше, чем helloworld):
  ui1 :: UI ()
  ui1 = title "Shopping List" $
        do a <- title "apples"  $ islider (0,10) 3
           b <- title "bananas" $ islider (0,10) 7
           title "total" $ showDisplay (liftA2 (+) a b)
Пример скриншота Phooey http://www.picamatic.com/show/2009/01/28/02/33/1883543_236x187.png
PythonCard
PythonCard описывает графический интерфейс в словаре Python. Кроссплатформенность (wxWidgets). Некоторые приложения используют его, но проект кажется заторможенным. Существует активная вилка.
Я пропустил пример PythonCard, потому что он слишком подробный для конкурса.
Пример скриншота PythonCard http://www.picamatic.com/show/2009/01/28/02/46/1883646_199x99.gif
Обувь
Обувь для Ruby. Платформы: Win/OSX/GTK+. Статус: Молодой, но активный. Минимальное приложение выглядит следующим образом:
  Shoes.app {
     @push = button "Push me"
     @note = para "Nothing pushed so far"
     @push.click {
        @note.replace "Aha! Click!"
     }
  }
Пример скриншотов для обуви http://www.picamatic.com/show/2009/01/28/03/14/1884011_227x71.png
Tcl/Tk
Tcl/Tk. Crossplatform (собственный набор виджета). Зрелый (возможно, даже датированный) и активный. Пример:
  #!/usr/bin/env wish
  button .hello -text "Hello, World!" -command { exit }
  pack .hello
  tkwait window .
Пример скриншота Tcl/Tk http://www.picamatic.com/show/2009/01/28/02/51/1883672_111x58.png
tekUI
tekUI для Lua (и C). Платформы: X11, DirectFB. Статус: Alpha (используется, но API все еще развивается). Пример:
  #/usr/bin/env lua
  ui = require "tek.ui"
  ui.Application:new {
    Children = {
      ui.Window:new  {
        Title = "Hello",
        Children = {
          ui.Text:new {
            Text = "_Hello, World!", Style = "button", Mode = "button",
          },
        },
      },
    },
  }:run()
tekUI helloworld screenshot http://www.picamatic.com/show/2009/01/28/03/01/1883821_290x55.png
Treethon
Treethon для Python. Он описывает GUI в файле YAML (Python в дереве YAML). Платформа: GTK+. Статус: работа в proress. Простое приложение выглядит следующим образом:
  _import: gtk
  view: gtk.Window()
  add:
      - view: gtk.Button('Hello World')
        on clicked: print view.get_label()
Еще неназванная библиотека Python Ричарда Джонса:
Этот еще не выпущен. Идея состоит в том, чтобы использовать контекстные менеджеры Python (with keyword) для структурирования GUI-кода. Подробнее см. блог Ричарда Джонса.
with gui.vertical:
    text = gui.label('hello!')
    items = gui.selection(['one', 'two', 'three'])
    with gui.button('click me!'):
        def on_click():
            text.value = items.value
            text.foreground = red
XUL
XUL + Javascript может использоваться для создания автономных настольных приложений с XULRunner и расширениями Mozilla. Зрелые, с открытым исходным кодом, кроссплатформенные.
  <?xml version="1.0"?>
  <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  <window id="main" title="My App" width="300" height="300"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <caption label="Hello World"/>
  </window>
Пример XUL helloworld http://www.picamatic.com/show/2009/01/28/03/27/1884209_228x108.png
Спасибо за вклад!