На чем писать кроссплатформенное GUI приложение?

Добрый день.

Стоит задача написать gui приложение для работы с postgresql. Работать должно на win, linux, mac. Буду делать отдельно основную логику, отдельно gui. Взаимодействовать будут либо через IPC, либо в gui приложение логика будет подключаться как сторонняя библиотека (пока еще не знаю).

Собственно стоит вопрос на чем это писать?

Первое, что приходит в голову - Qt. Но с крестами не имел вообще никакого опыта работы(и не горю желанием начинать). Немного работал с java и побольше в C#. В идеале хотел бы писать на C#, но, на сколько я понимаю, с GUI на не win платформах все очень плохо. Что у java - не знаю. Любые варианты с javascript-ом для GUI не подходят в виду своей тормознутости и не нативного вида контролов.

Подскажите, есть ли вариант писать на чем-нибудь кроме Qt без боли?
  • Вопрос задан
  • 11853 просмотра
Решения вопроса 4
aparusov
@aparusov
Разработчик ПО, предприниматель
Да, C++ на порядок сложнее по сравнению Java и С#, хотя Qt многое упрощает.

Для кроссплатформенных офисных приложений хороша Java, - GUI на JavaFX или Swing, но не SWT (в нем много косяков, которые отнимают много времени). Если лучше знаешь C#, то на нем (язык посовременнее, фреймворк попроще будет) и сразу в MonoDevelop (так-как нужна кроссплатформенность).

С серверной частью (если трехзвенка) важно определиться на чем она должна работать (в какой ОС). Если тоже кроссплатформенная, то лучше все на java делать и разобраться с серверными технологиями Java: Spring или Servlet-контейнер или даже сервер Java EE. Использовать ORM (Hibernate, например). Но с этим стеком Java придется повозиться, - порог вхождения высокий, зато потом открываются богатые возможности (независимые от ОС! ).
Ответ написан
Комментировать
@zelan
Кратко обо мне не получится.
Если Java - то JavaFX (только он). Выглядеть будет везде одинаково. Если писал гуи ни WPF, то с ним разберешься быстро (много очень похожих вещей - xml, binding, mvc). Стилизовать компоненты можно с помощью css, большое количество хороших контролов, в интернете есть библиотеки с кастомными контролами.

Стартануть помогут:
графический редактор форм javafx
небольшой туториал (mvc, binding)
Ответ написан
Комментировать
@VZVZ
Reverse-Engineer, Software Developer, Architect
Сам по себе вопрос очень сомнителен.
А нужно ли оно вообще на всех перечисленных системах?
А почему везде должен работать один и тот же код? Может, достаточно сделать кроссплатформенной библиотеку, а GUI-оболочки написать под каждую ОС отдельно, на родных инструментах?

> Что у java - не знаю.
Очень сильно ЦП и ОЗУ грузит. GUI же у нее убог по виндовым меркам.

> на сколько я понимаю, с GUI на не win платформах все очень плохо
По меркам этих самых не win платформ - может и норм.
Xamarin в первую очередь под Mac заточен. Я про Xamarin.Mac. Потому что "официальный" стек Xcode+Swift+Cocoa напрямую - это тоже не подарок, совсем не то, что Winforms на винде.
Ну а на линуксе требования к гую вообще минимальны, такая уж это ОС.
Так что вариант: под винду гуй на Winforms, под остальные - на чем-то Xamarinовском.
Ответ написан
sfi0zy
@sfi0zy
Creative frontend developer
Для C# есть mono - свободный вариант .NET Framework (не то, чтобы во всем соответствовал ему, но работать можно). Работает, соответственно, и на Linux и на MacOS и на Windows. В местной IDE (MonoDevelop) можно создавать GUI в стиле drag&drop, как в старые времена на уроках информатики....

От себя хочу добавить мысль о такой штуке как Vala. Если вы не слышали, это такой язык (я бы сказал смесь C-C#-Javascript), есть сравнение c C# для быстрого перехода на нее, удобная работа с GTK+ - окошки, кнопочки - все, что нужно делается просто и быстро, и, чтобы совсем не горевать, все это транслируется в чистый си. Соответственно собирается под любую платформу, где будет работать GTK+.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
NeiroNx
@NeiroNx
Программист
На питоне пиши. А графический интерфейс на Qt или GTK - смотря какие виджеты нужны.
Ответ написан
Комментировать
Insaned
@Insaned
Lazarus
Ответ написан
Комментировать
@MechanicZelenyy
Kotlin JVM работает везде где есть java, для GUI иcпользуется Tornado FX --- обертка для Java FX, как бонус можно быстро развернуть web версию с помощью Koltin JS.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы