Дано: самописная, узкоспециализированная (это важно) CRM система, бекенд которой развернут в AWSТребования: написать десктопное приложение для ее работы. Приложение должно подключаться к SIP или WebRTC чтобы с него можно было звонить на мобильные номера через виртуальную АТС. Решение должно быть кроссплатформенным (win, mac, linux) , в идеале чтобы часть функционала была переносима на мобилки. Вопрос: на чем сделать GUI?Рассматриваю три варианта:- Java + Swing UI --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не знаю как развернуть CI/CD, средняя стоимость разработки- Qt/QML --- есть визуальный редактор для UI, кроссплатформенность. Минусы: я не люблю С++ и С, высокая стоимость разработки- Electron + VueJS --- кроссплатформенность, меньше затрат в человеко-часах на разработку. Одну и ту же кодовую базу можно портировать под мобилки с помощью Cordova. Минусы: нет визуального редактора промышленного качества (или же есть но он стоит денег). На слабых машинах может тупить. в работу ВОЗМОЖНО пойдут девайсы типа RaspberyPI FAQ- Почему не C# ?- Я его не знаю. Пишу исключительно под никсами и винды у меня под рукой нет. Тем более приложение должно быть максимально кроссплатформенным- О GTK слышал?- Слышал, но не хочу)- Почему бы не использовать "Х"- Потому что я не знаю "Х" и учить буду долго.- Почему бы не использовать браузер?- Такие требования.- Оп - хуй- Сам знаю
бамп
Бамп Java гуем
Сделай отдельный сервис к которому будут обращаться всякие гуи.
>>1225661Еще раз... Зачем еще один сервис?
Сейчас весы склоняются в сторону Java + Swing потому что там шикарный визуальный редактор. Что скажите?
>>1225661Тем более у меня там чисто бекенд с RESTFull API. Все общаются с помощью JSON
>>1225646 (OP)javafx
>>1225693Профиты? Плюсы, минусы. Говорят что сабж мертв. Пиздят?
>>1225646 (OP)lazarus?
>>1225697Хз но у меня при ресайзе окна с туду листом проц до предела грузится, а жавафх в это время нещадно высерает сотни метров в оперативку.
>>1225713> lazarus?Готов ли Pascal продакшена? Как его поддерживать? Есть ли CI/CD под него? Как у него с человеко-часами?
>>1225719А что по Swing можешь сказать? В ютабах все более чем приятно выглядит
>>1225713Надеюсь ты пошутил
>>1225697FX мертв, swing тоже.FX удалят из jdk, когда осенью выйдет java 11. Swing пока что оставляют просто потому, что очень много древнего легаси софта написано на свинге. Вообще, гуи на джаве и шарпе уже лет 6-8 никак не развиваются. Если хочешь что-то современное, бери qt (есть pyqt для питона), либо электрон. Остальное все либо умерло, либо помирает.
>>1225726> есть pyqt для питонаПистон я не учил. Но думаю разберусь. Привязка будет работать в Qt creator? Или там нужно огороды городить?Как pyqt работает с сетью? Мне нужно посылать http запросы и обрабатывать json ответы от апишки.Плюс есть ли литература по настройке CI/CD для всего этого?Електрон версия у меня есть, но во фронтенд я не умею сильно. Придется все же пердолить VueJS.Хочется сделать ход Е2-Е4 и сравнить обе технологии.
>>1225720С поддержкой непросто. Ведь паскаль вышел из моды.
>>1225750Тогда в топку. Нужен ынтерпрайз
>>1225646 (OP)> Пишу исключительно под никсами и винды у меня под рукой нет. Значит ты в курсе, что более 90% гуйни под линукс написано на qt и gtk. А ещё там wayland надвигается, поэтому выбор невелик https://wayland.freedesktop.org/toolkits.html
>>1225752> 90% гуйни под линукс написано на qt и gtk. А ещё там wayland надвигаетсяНу на джаве тоже гуйня есть. Поэтому у меня в списке qt, java, electron. Осталось лишь выбрать стул.
Swing для гуи, Spring как контейнер.
>>1225791Двачую этого.
>>1225756>Ну на джаве тоже гуйня есть. Пожалей пользователей
>>1225900Начал пилить на PyQT + QML. Мозги плавятся правда от пихона)
>>1225791Сервлеты для гуи, гласфиш как контейнер.фикс
Haskell для гуи, Coq как контейнер.
>>1226362До Хаски мне как пешком до китая. Спасибо
>>1225646 (OP)Алсо столкнулся с проблемой webrtc в Qt. Через webview сначала хотел завести но понял что это так не работает. А мутить SIP у меня терпения не хватит. Открыл исходники Ring, ахуел, и закрыл. Есть у кого идеи?
>>1225713>lazarusгодно .Есть ещё немецкий MSEGUI , немножко сложнее , но немецкий порядок , сам понимаешь .
>>1225646 (OP)> на чем сделать GUI?tkl
>>1225646 (OP)>- Electron + VueJS> Минусы: нет визуального редактора промышленного качестваЯ тоже в верстку хуево могу, но есть же всякие либы компонентов типа MaterialUI, SemanticUI и прочего шлака, который позволяет высирать единообразные интерфейсы практически с 0% кастомизации компонентов.
>>1225646 (OP)Java + QT/thread
>>1229070Кит и часы.> Java > GUIДолбоебище, блять.
>>1229090Дурачок, если бы ты хоть немного поизучал тему, то узнал, что биндинги для QT есть во многих языках.
>>1229106150Мб JRE + 100Мб Qt. Даже электронопараша будет меньше весить.
>>1225646 (OP)>Electron + VueJS >Electron + Marko
>>1229106Можно считать, что за пределами плюсов и питона культей не существует. Упоротостьство последних вообще заслуживает памятника и постановки на учет, сомневаюсь, что такие препараты вообще законны. Всё-таки язык без ABI да ещё и при отсутствии всякой интроспекции - это тебе не шутки.
Кордова - тормозное и глючное говно. Пиши на React Native.Он тоже тормозное и глючное говно, но не такое тормозное и глючное, как Кордова.
>>1229215Тащемта на 10 жаве можно собрать рантайм на 20 мб
>>1229218> Electron + MarkoМне по нраву! Спасибо!
>>1229315> Пиши на React Native.Сейчас мобилки для меня не главное. Главное сейчас десктоп. С мобилками потом, но за совет спасибо
>>1228475> годно .В каком году это было годно?
>>1229215В ТЗ от ОПа предельный размер рантайма не указан.>>1229241Это единственное решение, удовлетворяющее опа, ведь оп-хуй не хочет учиться:>Потому что я не знаю "Х" и учить буду долго.
>>1225646 (OP)можешь не благодарить Ultimate++
Не знаю что за поехавший писал про то что 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 версияТы даже не знаешь номера актуальной версии. Кому я всё это пишу, вообще.
>>1231391Ты бы сам-то стал пользоваться поделием на javafx? Вот и я нет. Даже tk предпочтительнее с его motif-подобным видом под иксами, чем это.
>>1231396>Ты даже не знаешь номера актуальной версииНу блять, я не стал прогугливать номер с точностью до билда. Основной поинт был в том что вторая версия куда жизнеспособнее по сравнению с первой.>В каком месте, лол?Ок, тут нужно приводить аргументы что ведет нас к затяжному спору. Я опробовал оба фреймворка. В JavaFx мне понравилось именно что отделение UI представления в xml, которого нет в свинге. JForm Designer все равно сгенерирует тебе java код которые криворукие макаки будут править под себя (мы же тут про многолетнюю промышленную разработку говорим а не про одиночный проект?). В легаси проекте где был свинг никакой wysiwyg редактор вообще прикручен не был от чего работа с построением новой формы (или правкой старой) превращалась в еблю - внес правку в java код, компилишь и запускаешь дабы проверить результат.В JavaFx есть некий протоCSS. В противовес свингу, UI на JavaFx не представляет из себя мутанта оставшегося где-то в девяностых - а так зачастую выглядят все десктопные приложения промышленных систем. Модель данных - ок, она специфичная. Однако в ней прослеживается концепт используемый в том же ангуляре - связывание данных с формой производится через биндинг, для этого во всех компонентах повсеместно присутствуют так называемые property. Не стану спорить об удобстве реализации именно в JavaFx.Компоненты? Есть сторонние библиотеки. Даже решения на свинге не обходятся без компонентов из дополнительных либ. >Вот и я нетПочему ты говоришь за меня? Если стартует новые проект, где в требованиях указано что нужно десктопное решение на Java то я без колебаний выберу JavaFx.
>>1231488>Компоненты? Есть сторонние библиотеки. Компоненты - это и есть сторонние библиотеки.Ну, то-есть, их нет.>В JavaFx мне понравилось ...Да, там много ништяков. Особенно, с точки зрения человека, далёкого от суровой практики.Ты попробуй сделать на этом говне не хелловорлд, а реальный проект для энтерпрайза. Или хотя-бы программу для биржевой торговли их на свинге пишут, почему-то.Или IDE напиши.Спроси у чуваков из JetBrains, почему они делают свои IDE на свинге, который остался где-то в 90-х. Может у них денег мало или ума?
>>1231612Потому что JavaFX не было когда IntelliJ писалась?
>>1231658Там весь гуй уже переписан многократно за последние почти 20 лет.Дело в том, что JavaFX - крайне неэффективная и непрактичная вещь для UI общего назначения (т.е. не медиа, не 3D и т.п.).Игрушка.Просто это не до всех и не сразу доходит.До Оракла, например, дошло поздновато, уже после того, как они включили его в JDK.
>>1231391Оп на связи. Мне нравится как ты расписал по CI/CD! У нас вся команда в ужасе, девопс в отпуске а проект надо допиливать. Нашли джависта, сидит сейчас пилит. Я же пока что бек латаю))Вопрос по существу: джавист попросил найти инфу по webrtc на джаве. Это вообще реально или все же придется писать костыль?
>>1232251Какой конкретно стек тебя интересует в WebRTC? В целом, с WebRTC все плохо вне браузеров. На Go есть какие-то более-менее рабочие реализации, но это всё.
Рекомендую IUP. Легковесный, кроссплатформенный (запиливают даже веб-бекенд и под мобилки), использует родные наборы виджетов, написан на сишке (а не на язычке без ABI, как у некоторых).
>>1232414https://ru.wikipedia.org/wiki/IUPhttp://webserver2.tecgraf.puc-rio.br/iup/
>>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?