Дано: самописная, узкоспециализированная (это важно) CRM система, бекенд которой развернут в AWS Требования: написать десктопное приложение для ее работы. Приложение должно подключаться к SIP или WebRTC чтобы с него можно было звонить на мобильные номера через виртуальную АТС. Решение должно быть кроссплатформенным (win, mac, linux) , в идеале чтобы часть функционала была переносима на мобилки. Вопрос: на чем сделать GUI? Рассматриваю три варианта: - Java + Swing UI --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не знаю как развернуть CI/CD, средняя стоимость разработки - Qt/QML --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не люблю С++ и С, высокая стоимость разработки - Electron + VueJS --- кроссплатформенность, меньше затрат в человеко-часах на разработку. Одну и ту же кодовую базу можно портировать под мобилки с помощью Cordova. Минусы: нет визуального редактора промышленного качества (или же есть но он стоит денег). На слабых машинах может тупить. в работу ВОЗМОЖНО пойдут девайсы типа RaspberyPI
FAQ - Почему не C# ? - Я его не знаю. Пишу исключительно под никсами и винды у меня под рукой нет. Тем более приложение должно быть максимально кроссплатформенным
- О GTK слышал? - Слышал, но не хочу)
- Почему бы не использовать "Х" - Потому что я не знаю "Х" и учить буду долго.
- Почему бы не использовать браузер? - Такие требования.
>>1225697 FX мертв, swing тоже. FX удалят из jdk, когда осенью выйдет java 11. Swing пока что оставляют просто потому, что очень много древнего легаси софта написано на свинге. Вообще, гуи на джаве и шарпе уже лет 6-8 никак не развиваются. Если хочешь что-то современное, бери qt (есть pyqt для питона), либо электрон. Остальное все либо умерло, либо помирает.
>>1225726 > есть pyqt для питона Пистон я не учил. Но думаю разберусь. Привязка будет работать в Qt creator? Или там нужно огороды городить? Как pyqt работает с сетью? Мне нужно посылать http запросы и обрабатывать json ответы от апишки. Плюс есть ли литература по настройке CI/CD для всего этого? Електрон версия у меня есть, но во фронтенд я не умею сильно. Придется все же пердолить VueJS. Хочется сделать ход Е2-Е4 и сравнить обе технологии.
>>1225752 > 90% гуйни под линукс написано на qt и gtk. А ещё там wayland надвигается Ну на джаве тоже гуйня есть. Поэтому у меня в списке qt, java, electron. Осталось лишь выбрать стул.
>>1225646 (OP) Алсо столкнулся с проблемой webrtc в Qt. Через webview сначала хотел завести но понял что это так не работает. А мутить SIP у меня терпения не хватит. Открыл исходники Ring, ахуел, и закрыл. Есть у кого идеи?
>>1225646 (OP) >- Electron + VueJS > Минусы: нет визуального редактора промышленного качества Я тоже в верстку хуево могу, но есть же всякие либы компонентов типа MaterialUI, SemanticUI и прочего шлака, который позволяет высирать единообразные интерфейсы практически с 0% кастомизации компонентов.
>>1229106 Можно считать, что за пределами плюсов и питона культей не существует. Упоротостьство последних вообще заслуживает памятника и постановки на учет, сомневаюсь, что такие препараты вообще законны. Всё-таки язык без ABI да ещё и при отсутствии всякой интроспекции - это тебе не шутки.
Не знаю что за поехавший писал про то что JavaFx мертв. 2.0 версия вполне себе современная, уделывает Swing на раз. UI описывается через xml, есть тула для дизайнинга форм (SceneBuilder). В нагрузку рекомендую взять еще либу ControlsFX с доп контролами которых нет в стандартной поставке. Оракл рекомендует юзать именно JavaFx, в противовес свингу. К 11 жаве правда JavaFx уберут из JDK, но с целью сокращения релизных циклов, другими словами в виде отдельной либы JavaFx сможет развиваться быстрее нежели в составе JDK. CI/CD реализуется так. Maven/Gradle в качестве сборщика. Тестовые/продовые сборки выполняешь через Jenkins/TeamCity. Там же можно реализовать деплой в продакшн окружение - плагинов хоть жопой жуй. К сборкам в Jenkins/TeamCity можно прикрутить пул/мерж реквесты гитхаба или гитлаба - будет тебе еще и кодревью (если для тебя актуально). К слову есть еще проект Gluon который позволяет писать кросплатформенные JavaFx приложения не только под десктопн но и на мобильники.
>>1231391 Нет компонентов. И не будет. Тормозные таблицы, если это можно назвать таблицами. Крайне неэффективная модель взаимодействия с данными. Нет нормального дизайнера - сравни JForm Designer и ту хуйню, о которой ты говоришь. И т.д. И т.п.
>уделывает Swing на раз В каком месте, лол?
>2.0 версия Ты даже не знаешь номера актуальной версии. Кому я всё это пишу, вообще.
>>1231396 >Ты даже не знаешь номера актуальной версии Ну блять, я не стал прогугливать номер с точностью до билда. Основной поинт был в том что вторая версия куда жизнеспособнее по сравнению с первой.
>В каком месте, лол? Ок, тут нужно приводить аргументы что ведет нас к затяжному спору. Я опробовал оба фреймворка. В JavaFx мне понравилось именно что отделение UI представления в xml, которого нет в свинге. JForm Designer все равно сгенерирует тебе java код которые криворукие макаки будут править под себя (мы же тут про многолетнюю промышленную разработку говорим а не про одиночный проект?). В легаси проекте где был свинг никакой wysiwyg редактор вообще прикручен не был от чего работа с построением новой формы (или правкой старой) превращалась в еблю - внес правку в java код, компилишь и запускаешь дабы проверить результат.
В JavaFx есть некий протоCSS. В противовес свингу, UI на JavaFx не представляет из себя мутанта оставшегося где-то в девяностых - а так зачастую выглядят все десктопные приложения промышленных систем.
Модель данных - ок, она специфичная. Однако в ней прослеживается концепт используемый в том же ангуляре - связывание данных с формой производится через биндинг, для этого во всех компонентах повсеместно присутствуют так называемые property. Не стану спорить об удобстве реализации именно в JavaFx.
Компоненты? Есть сторонние библиотеки. Даже решения на свинге не обходятся без компонентов из дополнительных либ.
>Вот и я нет Почему ты говоришь за меня? Если стартует новые проект, где в требованиях указано что нужно десктопное решение на Java то я без колебаний выберу JavaFx.
>>1231488 >Компоненты? Есть сторонние библиотеки. Компоненты - это и есть сторонние библиотеки. Ну, то-есть, их нет.
>В JavaFx мне понравилось ... Да, там много ништяков. Особенно, с точки зрения человека, далёкого от суровой практики.
Ты попробуй сделать на этом говне не хелловорлд, а реальный проект для энтерпрайза. Или хотя-бы программу для биржевой торговли их на свинге пишут, почему-то.
Или IDE напиши. Спроси у чуваков из JetBrains, почему они делают свои IDE на свинге, который остался где-то в 90-х. Может у них денег мало или ума?
>>1231391 Оп на связи. Мне нравится как ты расписал по CI/CD! У нас вся команда в ужасе, девопс в отпуске а проект надо допиливать. Нашли джависта, сидит сейчас пилит. Я же пока что бек латаю)) Вопрос по существу: джавист попросил найти инфу по webrtc на джаве. Это вообще реально или все же придется писать костыль?
>>1232251 Какой конкретно стек тебя интересует в WebRTC? В целом, с WebRTC все плохо вне браузеров. На Go есть какие-то более-менее рабочие реализации, но это всё.
Рекомендую IUP. Легковесный, кроссплатформенный (запиливают даже веб-бекенд и под мобилки), использует родные наборы виджетов, написан на сишке (а не на язычке без ABI, как у некоторых).
>>1232393 Короче, есть астериск развернутый в AWS. К нему подходит сип-транк от местного ОпСоСа. И я понятия не имею какой стек заюзать и что с этим делать. Астериск общается по средству сокетов и вебртц. Мы с джавистом сидим в ахуе уже какой день, ПМ разъяренно бьет хуем нам полбу и обещает подвесить за гениталии. Тестеровщик сошел с ума и предлагает все перехуячить на электроне как было задуманно. Девопс вернулся из отпуска, охуел от всего этого и с кроваво-красными глазами сидит вместе с нами гуглит что можно сделать.
Ах да забыл У нас же макет есть всего этого чуда-юда от в рот не ебатца дизигнера хуева который нарисовал UI, потом после пиздюлей от начальства переосмыслил все и сделал UX. Ну вы поняли. Что само по себе пиздец. Так что всякие поделия меня не интересуют. Клиенту нужно чтобы его ховно выглядело как конфетка обернутая свистелками и перделками. Сука бесит
>>1233334 Поменьше эмоций. Какие варианты обдумывали? Если бек на Джаве, а с ртц проще работать из ЖС, то не думали сколхозить солюшен с использованием Rhino?
Однозначно Electron! Абсолютная кроссплатформенность без каких-либо зависимостей. Не требуется компиляция. Плюс доступ ко всем прелестям Node.js (Функции работы с сетью, поддержка всевозможных типов данных, огромный инструментарий для интеграции с другими приложениями, безобразно огромный склад с готовыми модулями). Исчерпывающая документация. Только Vue.js не советую. Это фреймворк для разработчиков, плотно сидящих на веб-разработке, он не дает ни какого GUI, лишь помогает держать структуру проекта. Если речь о написании одного единственного приложения, идеально подойдет Webix. Там большой набор всевозможных кнопок и прочих контроллеров, есть даже онлайновый визуальный редактор интерфейса, и на "'Электроне работает будто для него и создавался.
Ну и да, добавлю, WebRTC и вот это все в Электроне само собой поддерживается хорошо как нигде, ибо гугл хром. А так же, ни коим образом это дело не тормозит. Приложения на основе Node.js в прямом смысле работают быстрее, чем то же самое написанное на C++ за счет всяких сборок мусора и прочих оптимизаций. Причем даже низкоуровневые задачи, специфичные для C++, на Node.js решаются в разы проще и эфективнее. Из коробки доступно всё, от работы с потоками, сетями и файлами до обработки бинарных данных и криптографии https://nodejs.org/dist/latest-v10.x/docs/api/
>>1233359 Бек у нас на ноде да да. По сути там одна CRM которая занимается лишь тем что принимает и обрабатывает статистику звонков пользователей. Еще есть астериск через который операторы звонят. Ты имеешь ввиду движок для JS Rhino?
Требования: написать десктопное приложение для ее работы. Приложение должно подключаться к SIP или WebRTC чтобы с него можно было звонить на мобильные номера через виртуальную АТС. Решение должно быть кроссплатформенным (win, mac, linux) , в идеале чтобы часть функционала была переносима на мобилки.
Вопрос: на чем сделать GUI?
Рассматриваю три варианта:
- Java + Swing UI --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не знаю как развернуть CI/CD, средняя стоимость разработки
- Qt/QML --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не люблю С++ и С, высокая стоимость разработки
- Electron + VueJS --- кроссплатформенность, меньше затрат в человеко-часах на разработку. Одну и ту же кодовую базу можно портировать под мобилки с помощью Cordova. Минусы: нет визуального редактора промышленного качества (или же есть но он стоит денег). На слабых машинах может тупить. в работу ВОЗМОЖНО пойдут девайсы типа RaspberyPI
FAQ
- Почему не C# ?
- Я его не знаю. Пишу исключительно под никсами и винды у меня под рукой нет. Тем более приложение должно быть максимально кроссплатформенным
- О GTK слышал?
- Слышал, но не хочу)
- Почему бы не использовать "Х"
- Потому что я не знаю "Х" и учить буду долго.
- Почему бы не использовать браузер?
- Такие требования.
- Оп - хуй
- Сам знаю