Каковы альтернативы Open Source для WPF/XAML?

Если мы научились чему-либо из HTML/CSS, это означает, что декларативные языки (например, XML) хорошо описывают пользовательские интерфейсы, потому что:

  • Легко создавать препроцессоры кода, которые могут эффективно обрабатывать код.
  • Код находится в хорошо определенном хорошо структурированном (идеально) формате, поэтому его легко разобрать.
  • Технология эффективного анализа или сканирования исходного файла на основе XML уже существует.
  • Код сценария пользовательского интерфейса становится намного проще и понятнее.
  • Это достаточно просто, что дизайнеры могут сами разработать интерфейс.
  • Программисты сосать при создании пользовательских интерфейсов, поэтому их нужно сделать достаточно легко для дизайнеров.

Недавно я взглянул на мясо WPF-приложения (т.е. XAML), и он выглядит удивительно знакомым для стиля декларативного языка, используемого в HTML.

Текущее состояние разработки пользовательского интерфейса для настольных компьютеров в значительной степени дробное, в противном случае не было бы так много дублирования усилий в области проектирования графического пользовательского интерфейса (IE. GTK, XUL, Qt, Winforms, WPF и т.д.).

Существует 45 графических платформ только для Python

Что такое графический интерфейс с открытым исходным кодом, который представляет эти характеристики:

  • стандартизированы
  • независимая от платформы
  • декларативный язык разметки
  • язык агностик

WPF, или, более конкретно, XAML кажется довольно вероятным шагом в правильном направлении.

Update:

Большое спасибо за информацию, держите ее в курсе. Вот варианты, которые я собрал из комментариев и ответов.

GladeXML

XRC (XML-ресурс)

XML-форматы, которые либо не являются бесплатными, не кросс-платформенными, либо специфичными для языка

XUL

  • Редактор: любой основной текстовый редактор
  • Платформы ОС: любая ОС, работающая с браузером, поддерживающим XUL
  • Платформа GUI: двигатель Gecko?
  • Языки: С++, Python, Ruby как языки плагина, а не базовые языки.

Примечание. Я не уверен, что XUL заслуживает упоминания в этом списке, потому что это меньше, чем язык рабочего стола GUI, а также язык make-webapps-run-on-the-desktop. Кроме того, для запуска требуется браузер. IE, это "DHTML для рабочего стола".

CookSwing

XAML (Moonlight)

  • Редактор: MonoDevelop
  • ОС Платформы: только Linux и другие ОС на базе Unix/X11
  • Платформы GUI: GTK +
  • Языки:.NET

Примечание. XAML не является чистым форматом Open Source, поскольку Microsoft контролирует его условия использования, включая право изменять условия в любое время. Лунный свет не может быть законным для запуска на Windows или Mac. Кроме того, единственной платформой, которая освобождена от юридических действий, является Novell. См. это для полного описания того, что я имею в виду. XAML также не является стандартом ECMA, например С#, управляемым С++ и CLR.

Обновление: вопрос был изменен: "Есть ли альтернатива Open Source для WPF? потому что исходный вопрос был неправильным, и он сосал. Направление этого вопроса изменило направление, чтобы совместить его с новый вход. Мои извинения перед людьми, которые отреагировали, прежде чем они изменились.

Ответ 1

Qt разрабатывает QML, который очень похож на XAML, за исключением JSON. Он доступен как предварительный просмотр, созданный против текущей версии, и доступен в моментальных снимках следующей версии.

Вот небольшой фрагмент из http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}

Ответ 2

  • Веб отбирает большую часть паролей от настольных приложений, как есть.

    Я думаю, что большая причина в том, что все так сосредоточены на сети прямо сейчас. HTML5 будет квантовым шагом вперед в том, что может сделать Интернет. Благодаря быстрым интерпретаторам JavaScript и совместимым браузерам потребность в настольных программах со временем начнет ослабевать. Что лошадь, на которую Google делает ставку, и в гораздо меньшей степени, Apple.

  • Создание чего-то хорошего имело бы радикально разные реализации для каждой ОС, поэтому базовый инструментарий сам по себе не был бы очень переносимым.

    Если вы думаете об этом, Интернет является единственным действительно распространенным субстратом, на котором мы должны развивать такую ​​инфраструктуру кросс-платформенным способом. WPF невероятно отличается от архитектурной перспективы по сравнению с WinForms/прямым кодом WinAPI. Адаптация чего-то подобного к каждой ОС потребовала бы очень много разных сантехнических работ для каждой ОС, если бы у вас была молитва сделать что-то хорошее. (Не то, чтобы веб-приложения были очень быстрыми, заметьте, но они улучшаются).

  • Взгляд и чувство всегда будут проблемой.

    Чей внешний вид вы пользуетесь? Вы пытаетесь адаптировать пользовательский интерфейс к Chrome OS, чтобы он выглядел "родным", или вы делаете что-то вроде Swing несколько лет назад и разрабатываете приложения, которые выглядят совершенно отличными от всего, что там есть? (Ух, это был крушение поезда...) И если вы решите адаптировать интерфейс к каждой ОС, посмотрите и почувствуйте, что у вас могут быть разные проблемы измерения и дизайна.