XULRUNNER подходит в качестве замены для других платформ C ++ для настольных приложений, таких как QT? - PullRequest
13 голосов
/ 14 апреля 2010

XulRunner / Gecko, кажется, действительно интересен для разработки приложений, интенсивно использующих GUI (с использованием широко используемых технологий, таких как HTML / CSS / SVG / XUL / Javascript). Но лежащий в основе C ++ APIS (XPCOM, NECKO, ...) выглядит таким старым и сложным. Более того, общее отсутствие документации / инструментов для разработки действительно пугает.

С другой стороны, QT имеет довольно хорошую платформу, хорошо документирована и поддерживается. Хотя пользовательский интерфейс действительно «традиционный».

Каков ваш опыт работы с XULRUNNER, особенно по сравнению с другими средами настольных приложений C ++, такими как QT / GTK / MFC ...? Чего не хватает? Что круто?

Дополнительный вопрос: если бы я хотел перенести существующее приложение MFC в кросс-платформенную среду настольных приложений C ++, было бы разумно использовать XULRUNNER вместо QT или GTK?

Ответы [ 5 ]

7 голосов
/ 22 июня 2010

Честно говоря, я просто не согласен с тем, что не так много приложений XULRunner ... есть масса, это лишь некоторые из тех, о которых Mozilla знает:

https://developer.mozilla.org/en/xulrunner_hall_of_fame

developer.mozilla.org / о / List_of_Mozilla-Based_Applications

Это, конечно, исключает самих Firefox и Thunderbird!

Наши собственные перечислены там www.redbacksystems.com/liaison/

Я работаю на этой платформе примерно с 2003 года, и мне это нравится, учитывая тот выбор, который я бы никогда сейчас не программировал ни на какой другой платформе.

С какой стати вы захотите писать в QT или GTK, если вы можете писать в простых стандартах JavaScript / ECMA, включая E4X, с исключительной поддержкой CSS и XML - включая XBL (хотя и 1.0), RDF, XML Templating, удаленное обновление , поддержка плагинов и расширений и т. д. и т. д. и т. п., и даже не включайте меня в гео-локацию или собственную поддержку SQL.

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

Для меня инструментарий Mozilla является платформой выбора без исключений.

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

6 голосов
/ 14 апреля 2010

Насколько я знаю, на самом деле не так много приложений, созданных с использованием XulRunner. И я должен знать, так как я был техническим руководителем одного из них, и мы пытались нанять опытных людей. Оглядываясь назад, это не удивляет меня. Наше решение использовать XulRunner было принято не разработчиком, вопреки моему совету. Многие вещи занимали вдвое больше времени, чем они бы использовали в wxWidgets, которые мы использовали раньше. Теперь я также использовал Qt в других проектах, и я должен сказать, что он даже лучше, чем wxWidgets. Поэтому я могу с достаточной степенью достоверности заявить, что Qt будет более чем в два раза эффективнее XulRunner, и, кроме того, у вас будет намного время для поиска опытных разработчиков.

Конечно, Javascript в XulRunner хорош. Но Qt также поставляется с QtScript, который оборачивает JavaScriptCore. И когда дело доходит до создания действительно богатых пользовательских интерфейсов - то есть, больше, чем просто стопка изображений - тогда HTML + SVG + CSS + JS просто не сокращают это. Они были разработаны, чтобы упростить простые вещи, а не сделать сложные вещи возможными. Просто посмотрите на новейшую функцию, видео. Решение HTML5: тег, и пусть некоторый код C ++ за кулисами делает настоящую работу. Несмотря на то, что видео представляет собой большой набор изображений, показываемых по одному.

Итак, проблема не столько в том, что чего-то не хватает. Просто развитие идет медленно, а результат медленный.

С другой стороны, механизм плагинов работает довольно хорошо.

Теперь все это применимо, если вы начинаете с нуля. Если у вас уже много кода MFC / C ++, придерживайтесь C ++ и отбросьте только часть MFC. Это означает, что Qt или, возможно, wxWidgets - очевидные победители.

2 голосов
/ 14 апреля 2010

Не думаю, что вы действительно захотите написать XUL-код на C ++. Назначение API-интерфейсов XPCOM и т. Д. Заключается в том, чтобы вы могли взаимодействовать с существующими библиотеками C или, если вам нужно написать материал для платформы, который требует вызова API-интерфейсов вне механизма javascript.

Если вы хотите написать кроссплатформенное приложение с графическим интерфейсом на javascript , хотя это может быть то, что вы ищете.

1 голос
/ 14 апреля 2010

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

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

0 голосов
/ 04 августа 2010

Кто-нибудь пробовал это?

XUL Viewer http://code.google.com/p/xulwin/

Это довольно удивительный проект.чистый код, несколько зависимостей (просто poco-basic и boost)

Woot!

...