Подтвердить что ты не робот

Почему нет создателя CSS-подобного графического интерфейса

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

Когда-то я пришел из html/css/php-фона в огромные глубины разработки приложений. Я бродил по долинам Явы и изучал тайны С#. Я задохнулся от красоты Ruby, упал на упрямую простоту Bash и время от времени возвращался к моим старым друзьям HTML, CSS и PHP.

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

Я был в ловушке кошмара LayoutManagers, параметров док-станции и любых фол-существ, которые лгали за воротами java.swing и компаньонов.

В этот момент я почувствовал, что во мне развивается идея. Как сказал Кобб; Какой самый устойчивый паразит? Бактерии? Вирус? Кишечный червь? Идея. Устойчивый... сильно заразный. Как только идея овладела мозгом, ее почти невозможно искоренить. Идея, которая полностью сформирована - полностью понята - то, что палки; прямо где-то там. - Знаешь, эта любопытная идея.

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

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

Я просто не могу понять, почему создание GUI должно быть такой проблемой. Наверное, это потому, что я исхожу из другого фона и привык к стилю, подобному CSS, так что только я чувствую этот способ, но все же;

Разве никто не думал об этом? Было бы так сложно создать CSS-парсер для стилирования GUI? С теми же методами, что и в веб-разработке? Классы, идентификаторы, селектор и т.д. Какая большая трудность в создании этого?

Кто-нибудь чувствует то же, что и я?

Или (что было бы довольно emberassing) есть ли такой инструмент, и я был слишком глуп, чтобы найти его?

4b9b3361

Ответ 1

Mozilla XML-язык XUL использует CSS как инструмент для макета gui. У них есть статья " Skinnable XUL и CSS".:)

Ответ 2

Microsoft NET WPF (Windows Presentation Foundation) - это решение для создания графического интерфейса, похожее на HTML + CSS.

IMO, он гораздо более универсален, чем HTML, но все еще прост в использовании (и для создания читаемого графического интерфейса).

Определение макета так же просто:

<DockPanel>
    <Label Content="Dock Panel Layout Demo" 
    FontSize="15" FontWeight="Bold" Background="LightBlue"
    Foreground="Blue" DockPanel.Dock="Top"/>

    <Label Content="Footer" FontSize="15" FontWeight="Bold" 
           Background="LightGray"
           DockPanel.Dock="Bottom" />

    <Label Content="Left Pane" FontSize="15" FontWeight="Bold"
           Width="125" Background="Firebrick"
           DockPanel.Dock="Left"/>

   <Label Content="Content Pane" FontSize="15" FontWeight="Bold"
           Width="255"
           Background="Beige"/>

    <Label Content="Right Pane" FontSize="15" FontWeight="Bold"
           Width="125" Background="Khaki"
           DockPanel.Dock="Right"/>
</DockPanel>

И стили:

<Window.Resources>
    <Style x:Key="myStyle" TargetType="Button">
       <Setter Property="Background" Value="Orange" />
       <Setter Property="FontStyle" Value="Italic" />
       <Setter Property="Padding" Value="8,4" />
       <Setter Property="Margin" Value="4" />
    </Style>
</Window.Resources>

Ответ 3

В приложениях Qt вы можете использовать синтаксис типа CSS, называемый QSS.
Следующая версия также будет иметь "декларативный интерфейс", называемый QML.

WPF и Silverlight также используют декларативный язык на основе XML для своего интерфейса, называемый XAML.

Ответ 4

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

Теперь я использую в основном tcl/tk и python/wxpython, что делает разработку графического интерфейса довольно простой. Я вижу, как, если ваш первый вкус программирования GUI на рабочем столе - это java, вы сделали вывод, что вы это сделали. Я бы не желал программировать GUI для Java.

Ответ 5

"чистый, простой, простой CSS"

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

Истина гораздо больнее, чем вы думаете.

Я был бы бесконечно благодарен, чтобы никогда больше не использовать еще один "взлом коробки".

Ответ 6

Зачем беспокоиться, как только скоро HTML и Javascript станут универсальным и всеобъемлющим способом написания приложений, ориентированных на пользователя ^^

Кроме того, я действительно не использовал WPF, но, похоже, он использует "декларативный" метод построения пользовательского интерфейса в том, как вы описываете свои мечты, и он распространяется на Silverlight и всевозможные технологии Microsoft. Они не могут быть одинокими в этом подходе...

Ответ 7

Если вы не привязаны к java, WPF со своим XAML - это своего рода подход, который вы описываете, отделяя макет от логики, как CSS с HTML.