Какие функции должны быть у языка графического интерфейса на основе XML - PullRequest
0 голосов
/ 23 сентября 2008

Резюме для нетерпеливых:

То, что я хочу знать, это то, что вы хотите иметь на новом языке графического интерфейса. О кратких ответах, упоминающих $your_favorite_one; Я предполагаю, что вы имеете в виду, что такой язык должен выглядеть как $your_favorite_one. Это не полезно. Не поддавайтесь искушению.

Я думаю о дружественных для пользователя языках на основе XML, таких как XHTML (или HTML, хотя не XML они очень похожи), XUL, MXML и другие (в данном контексте «другие» означает, что я в курсе существование других языков и их реализаций, альтернативных их оригинальным, и цель упоминания только этих языков по имени состоит в том, чтобы дать представление о том, о чем я говорю, и я не чувствую упоминания каких-либо других, а также, В любом случае, я не вижу смысла пытаться составить исчерпывающий список.) У меня есть некоторые мнения о том, какие функции должен иметь такой язык;

  1. Язык должен быть «написан человеком» таким образом, чтобы среднестатистический разработчик мог уметь хорошо кодировать без постоянной ссылки на то, какие теги имеют какие свойства, что разрешено внутри чего. XHTML / HTML является лучшим в этом отношении.
  2. Должна быть хорошая коллекция встроенных элементов управления для общих задач. XHTML / HTML здесь просто отстой.
  3. Он должен быть в состоянии стилизоваться под css-подобный язык (с точки зрения функциональности). Должно быть легко отделить заботы о структуре и глазном леденце. Алгоритм компоновки этого объединенного целого должен быть простым и интуитивно понятным. Почему ад поплавок удаляет элемент из макета? Почему нет макета: не включено или что-то подобное вместо этого?

Я знаю, что даже не упоминаю очень важные соображения проектирования, такие как взаимодействие с механизмом рендеринга и другими языками общего назначения, привязка данных, строгое соответствие XML (возможность определять новые теги без пространств имен?), Но это те моменты, которые Я хотел бы спросить, что вы считаете важным для такого языка?

Ответы [ 4 ]

1 голос
/ 23 сентября 2008

Самый последний язык XML для GUI (не только для GUI на самом деле) называется XAML. В нем есть все эти конфеты: стили, определение макета, инициализация объектов и т. Д. Но писать боль - это более или менее большие файлы XAML. Автозаполнение помогает, но основная проблема - лес угловых скобок - не решена. Еще одна проблема с расширенными языками графического интерфейса на основе XML - они пытаются служить нескольким целям одновременно, но синтаксис XML подходит не для всех ситуаций. Например, XAML поддерживает привязку данных, но, черт возьми, я должен написать это в строке атрибута? Это функция первого класса и должна иметь надлежащую поддержку.

ИМО, все современные языки на основе XML ужасно сосут. Язык, предназначенный для людей , не должен заставлять пользователей писать тонны скобок или делать глубокие вложения тегов. Он должен быть удобным для пользователя , а не компьютерным дружественным. Я мечтаю иметь GUI-язык с Python-подобным синтаксисом.

В заключение хочу сказать:

Уважаемые авторы языков на основе XML, будьте гуманны, не создавайте другой язык на основе XML. Прочитайте хорошую книгу по предметно-ориентированным языкам и, пожалуйста, больше не заставляйте меня печатать символы <и>.

1 голос
/ 23 сентября 2008

Всегда найдется компромисс между способностью и простотой.

Лично я доволен возможностями WPF (который использует XAML) для разработки MS. Я не считаю его сложность препятствием для развития вообще.

Однако, если вы собираетесь нацелить свой инструментарий / язык на демографический, который требует более высокой степени простоты, вы могли бы избежать использования существующей структуры и предоставить конечному пользователю DSL , специфичный для их потребности.

Написание новой структуры для сообщества разработчиков в целом - гигантская задача, и я подозреваю, что вы обнаружите, что из-за широкого спектра необходимых функций вам придется иметь дело с большой степенью сложности в какой-то момент . Удачи.

0 голосов
/ 23 сентября 2008

Мне бы хотелось, чтобы было легко подключаться к любой базе данных, выполнять запросы, которые возвращают набор записей, и иметь возможность легко анализировать и повторять указанный набор записей для отображения его данных в графических элементах управления, например круговых диаграммах, гистограммах. , графики времени (например, опционы на акции), графики узлов с эффектами анимации, все это во время выполнения.

Простой захват событий мыши, для выполнения любых действий с ролловерами, мышиными мышами, мыши, щелчками мышью, перетаскиванием, управлением буфером обмена и т. Д. Хорошая возможность бесконечного масштабирования также была бы полезна.

Я не хочу устанавливать «источник данных», который устанавливает фиксированное соединение между некоторым столбцом в моем запросе SQL и некоторым отображаемым элементом во время разработки, я хочу выполнить любой запрос и показать элементы, привязанные к любому запросу поле, в любое время, во время выполнения. Я не хочу связывать источник данных и отображаемые элементы во время разработки.

Возможность стиля CSS для всего. Или что-то простое и легкое.

изменить размер и макет позаботился автоматически. Легкий доступ к локальным файлам, для анализа, воспроизведения, отображения. Простые классы для управления изображениями, поддержка прозрачности, изменения размера и т. Д. Основные и расширенные классы для рисования на экране: lineTo, прямоугольник, круг, анимация. Даже 3D.

Функциональность встроенных шрифтов. Я не хочу беспокоиться о том, "установит ли пользователь этот шрифт?" Также я не хочу беспокоиться о разрешении экрана или разрешении экрана.

Основные виджеты: древовидная структура и т. Д.

Хороший дизайнер. Я не хочу добавлять виджеты, пишущие код. Я хочу разместить их визуально на экране.

Также было бы хорошо, если бы он мог подключаться к библиотекам, созданным в C ++ или COM-объектах в целом.

0 голосов
/ 23 сентября 2008

Вы должны были указать, имеете ли вы в виду веб или полнофункциональный клиент, но в любом случае посмотрите на XAML / WPF. Если вы против MS, посмотрите на Moonlight, моно реализацию SilverLight.

...