Почему HTML, CSS и JavaScript не используются для настольных приложений? [закрыто]


17

HTML, CSS и JavaScript могут использоваться для создания красивых (и полезных) пользовательских интерфейсов (особенно сейчас у нас есть HTML5 и CSS3), и многие люди уже знают их. Хотя это все еще далеко за пределами моей досягаемости, насколько сложно может привести весь веб-инструмент в настольные приложения? Мы уже тестируем приложения на наших локальных серверах перед их размещением.

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

Почему это не делается?


15
Разве это не было объявлено как Windows 8?
ChrisF

извините, немного энтузиастов Windows, то, что я в точности запрашиваю, - это инфраструктура с открытым исходным кодом для разработки настольных приложений на основе БД, которая может подключаться к сети, и да, наконец, что-то новаторское из ms
kapv89

Почему бумага не используется для сборки автомобилей? (да, это плохое время-аналогия :))
Хайлем

@ChrisF Это когда-либо удавалось для Windows 8, или это было просто обман?
developerwjk

Ответы:


30

Adobe уже сделала это с Adobe Air , а Mozilla тоже с Prism . Google также попытался преодолеть разрыв между рабочим столом и сетью с помощью Google Gears .

Но в целом, веб-технологии не подходят для многих типов настольных приложений, вот несколько причин, почему:

  • Нет немедленного полного доступа к оборудованию.
  • Нет доступа к системе низкого уровня.
  • Нет легкодоступного доступа к файловой системе (технологии, которые я упомянул выше, позволяют вам получить доступ к fs, но для каждого из них есть свое собственное решение).
  • Производительность. Собственное скомпилированное приложение обычно быстрее, чем приложение Javascript.
  • Легко для конкурентов украсть исходный код
  • Нет библиотек для специальных задач. Ex. обработка изображений, кодирование звука, доступ к базе данных, сетевое программирование и т. д.

Чтобы быть справедливым, не все приложения нуждаются в полном оборудовании или низкоуровневом доступе. Языки ВМ, такие как Java, безусловно, хорошо работают без такого доступа
TheLQ

6
Ну, вы знаете много настольных Java-приложений?
Йони Ройт

Что касается javascript на Google v8, я прочитал его очень быстро (так же быстро, как java), я сам вижу разницу, когда запускаю тяжелую анимацию js в chrome и других браузерах. И с ростом API для html5, js realy приносит много полезного, за счет холста, вы можете выполнять обработку изображений и все ... так что я не думаю, что у js действительно есть такой плохой набор инструментов, как плюс, это скорее функциональный язык программирования (функции - это объекты первого класса)
kapv89

1
только что проверил призму (теперь WebRunner) и Google Gears, приятные вещи, чтобы повозиться, спасибо
kapv89

3
@YoniRoit: Eclipse, Vuze, система заказов моего фармацевта ...
Хайлем

2

Фреймворк, который приходит на ум, - это Adobe Air. Это позволяет веб-разработчикам использовать Javascript / HTML для разработки настольных приложений. Javascript / HTML сам по себе не подходит для настольных приложений, потому что часто настольному приложению часто требуется доступ к службам, предоставляемым операционной системой, например, открытие файлов, запуск других приложений и т. Д. Javascript сам по себе не разрешает доступ к таким службам. так что вам нужно что-то дополнительное, и фреймворки, такие как Adobe Air, предоставляют этот дополнительный клей.


1

Есть несколько способов сделать это сейчас. Существует платформа приложений Mozilla, которая часто используется веб-браузерами, такими как Firefox, но также используется, например, в ActiveState Komodo IDE .

Также есть Qt, который в Qt Quick имеет CSS и язык, похожий на Javascript.


хорошо, собираюсь заглянуть в каркас приложения Mozilla
kapv89

1

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

В c ++ мне нравится, что он не позволяет мне компилировать, если код не правильный (за исключением выявления проблем во время выполнения).

Кроме того, я не верю, что CSS и HTML играют вместе очень хорошо, например, использование float в CSS - в зависимости от вашего HTML-кода и использования - результат float будет иметь разные результаты - отсутствие согласованности по сравнению с использованием абсолютного позиционирования в win32. или отличные менеджеры компоновки Java Swing.


3
Валидаторы HTML и CSS, которые в основном будут выполнять то, что делает ваш компилятор C ++: проверки синтаксиса и проверки типов. Я считаю, что некоторые мощные IDE поставляются с такими валидаторами.
Арно Ле Блан

1
Что касается позиционирования, CSS также имеет абсолютное позиционирование, а HTML5 имеет гораздо больше, чем менеджеры компоновки Swing. Некоторые редакторы также позволяют вам разрабатывать графический интерфейс в стиле WYSIWYG.
Арно Ле Блан

0

Одна из основных причин заключается в том, что если вы не хотите, чтобы ваше приложение было легко украдено и скопировано, вам также необходимо создать приложение, содержащее WebControl, напрямую связанное с вашими файлами, упакованными каким-либо образом.
На самом деле, есть приложения, которые делают это. Титановый Appcelerator является одним. Я не рекомендую вам использовать его, потому что в последний раз, когда я смотрел на него, он был полон ошибок и плохо поддерживал. Вы должны будете провести собственное исследование того, стоит ли оно того.


0

Немного поздно, но если вы используете AsYouWish в Firefox (или создаете надстройки Firefox, если вы не против архивировать свои файлы и тестировать их инструментами), вы можете создавать приложения в HTML с правами рабочего стола. Если вы используете WebAppFind (в настоящее время только для Windows), вы также можете заставить файлы рабочего стола открываться с рабочего стола непосредственно в веб-приложение (без необходимости перетаскивания).

Отказ от ответственности: Эти дополнения (с открытым исходным кодом) были созданы мной.


1
Вы должны раскрыть свою принадлежность к продукту, который вы рекламируете.
Роб W

0

Вы можете использовать Javascript, HTML и CSS для создания приложений для Магазина Windows, Windows Phone и - я предполагаю - XBox через «Универсальные приложения». (Для ясности, начиная с Visual Studio, используя File | New Project ...)

Это использует вышеупомянутое, чтобы построить ваш UX и код приложения против реализации нативных API.

Естественно, вместо того, чтобы это воспринималось как попытка Microsoft открыть платформу для большего числа разработчиков, она воспринималась как осуждающая разработчика на C # и XAML - что, конечно, не так, но это не такая уж хорошая история ... несмотря на то, что это не обязательно какие-то настольные приложения, вопрос в которых они считают родными.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.