Comments 73
User Agent: Mozilla/5.0 (Linux x86_64) AppleWebKit/604.1 (KHTML, like Gecko) JavaFX/9 Safari/604.1
Насколько я помню Oracle, сама рекомендует для desktop приложений тащить свою jre, есть даже ужатые варианты.
При старте браузер-edition получаю такое сообщение
Приложения на платформе можно найти здесь: www.cuba-platform.com/case-studies
Ссылка на вопрос в техподдержку
Как это связано с ценой разработки?
А это гуано (Java + Electron) надо выкидывать сразу же.
уж поверьте, для написания свинг приложений не требуются какие-то особенные квалифицированные кадры, достаточно обычных людей с руками из плеч.
А веб разработчикам не только нравится, они и сделают быстрее и качественнее.
А эклипс, который судя по комментариям, тут кое-кому не нравится — вы никогда не видели, как именно его можно кастомизировать? Какой-нибудь dbeaver, для примера?
На мой взгляд, все что тут понаписано, вполне себе имеет право на жизнь, вот только не надо при этом бездоказательно критиковать родные для Java технологии. Прежде чем это делать, нужно все-таки показать что-то, близкое к эклипсу/идее по масштабам и расширяемости.
Ну т.е., при всех их реальных недостатках, на swing и на javaFX реально пишутся и широко используются вполне себе хорошие продукты. Если при этом взять тот же котлин, или груви, то это получается еще и достаточно просто. И честно говоря, то что при этом у JavaFX немного недо-CSS, всех использующих реально волнует в последнюю очередь.
Чаще всего дополнительное оборудование используется в enterprise приложениях: банках, ERP, бухучете и т.д.
И
Кроме того, есть задачи, которые плохо могут быть решены в web. Главная из них — независимость от серверов и сети.
В компаниях намертво фиксируется окружение для приложения: для IBM/Lotus Notes автоматически устанавливается приватная JRE от IBM, для SAP R/3 ставится JRE от SAP, для 1С Торговли, которая надёжно работает только под 1С 7.7.25 ставится именно эта платформа и так далее. Нет никакой проблемы в том, чтобы запустить даже старинное приложение на AWT, не говоря уж о SWING, в современном enterprise.
В статье описываются проблемы:
- сложно сделать GUI, так как SWING, JavaFX не развиваются.
- Нет возможности поставить на клиента нужную версию JRE.
Так вот, я хотел сказать, что проблем с GUI, на самом деле, нет, так как в тех компаниях, где я работал, на всех клиентских и серверных компьютерах ПО ставилось скриптами, и для каждого приложения была жёстко зафиксирована платформа: для клиента Lotus Notes — приватная JRE от IBM, для клиентской части SAP — JRE от SAP, а для каких-то своих приложений (наподобие JPassword safe, SQuirreL SQL client, и, собственноб Ecipse — JRE от Oracle.
Просто перед развёртыванием ПО у клиента надо прописать нужную версию JRE в требованиях к среде выполнения вашего ПО.
Это вы совсем мимо. В нашем приложении весь Electron (вместе с Node.js) потребляет 100 MB памяти. Это не браузер, в котором юзер себе открывает сотни вкладок. Это движок рендеринга страниц, который управляется разработчиком.
Но почему в нем мессенджер жрет ресурсов, как Idea с открытым проектом?
На 95% бред, а не статья.
на данный момент, немного слабовато сделаны некоторые компоненты(притом по мелочам).
а так всё очень достойно.
btw: а разве вид «как на электроне» — это хорошо?
цель, как правило, непугать юзера нестандартным внешним видом, а выглядить как остальной гуй.
есть вроде — HTMLEditor, StyledTextArea, RichTextFX, TextFlow умеет картинки всякие и прочее, ну и WebView никто не мешает заюзать
WebView
Будто в вебе есть нормальный RTE.
Ну, вы в курсе, что StyledTextArea/TextFlow не позволяет пользователю скопировать текст в буфер обмена? Кому оно такое нужно?
HTMLEditor убог для таких целей.
WebView? Шутите? Тащить за собой полноценный Web-движок ради 10 строк текста? Иметь на форме 5 WebView одновременно?
И при всё при этом он плохо подходит — сложно контролировать, сложно управлять прокрутками и т.п.
Вот потому десктопные программы на Java и ненавидят.
Не совсем понятен мотив использования электрона. У вас уже есть одна зависимость в системе — JVM, и наличие зависимости от браузера уже не принципиально. Сделайте Jetty + Vaadin и открывайте при запуске страницу в system default browser. Ваш электрон в минималке займет лишние 100Mb. Если попытаетесь заэмбеддить jre, то это еще плюсом 180мб, а если все скомпилируете AOT, то будет около 250мб. Итого 350мб для простого "хелло ворлд", что может быть и оправдано для девтулзы, но для простого нативного клиента — вряд ли.
Далее, так ли принципиальна зависимость от джавы? Для клиентских технологий есть куча приблуд для джавы: JSweet, GWT, TeaVM, вплоть до полной JVM на JS: CheerpJ.
Ну и по способу деплоймента: зачем бандлить электрон и установщик и почему бы не сделать Chrome Application, распространяемую через Chrome Store?
А статье указано что SWT не развивается, а как он должен развиваться? Это прослойка для вызова нативных UI функций операционной системы. Если что то появляется в ос, то соответственно появляется в библиотеке. Никто не обещал что будет 100500 компонентов для рисования супер модного UI как в вебе.
Блеск и нищета Java для настольных систем