LINUX.ORG.RU

Desktop-приложение для Linux / OS X на чём написать?

 , , ,


2

2

Хочу написать GUI-приложение, да так, чтобы впоследствии было достаточно нетрудно его перенести на OS X, в идеале просто скомпилировать для этой платформы и оно заработало. Какой язык / стек выбрать?

Гуглёжь подсказывает C# в виде Xamarin, но неясно как это всё устроено. Electron + JS как-то неохота, JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги. Всякие FreePascal рассматривать вообще?

Java? Наверное, таки Java?

UPDATE: приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики. Данных будет немного, несколько тысяч записей. Веб-приложение тут не подойдет, база будет локально лежать у каждого юзера своя.

★★★★★

Java? Наверное, таки Java?

Да! JavaFX — твой выбор. Если хочешь пойти более трудным путем, то бери C++ и Qt

Deleted ()

Qt. И вопрос, если база у юзверя своя локальная, зачем постгрес? Не проще sqlite заюзать?

eagleivg ★★★★★ ()

Qt должно хватить. Приложение легко перекомпилируется на любую из 3-х платформ (Lin,Win,Mac). У C# на Linux плохая репутация.

DarthVadimius ★★ ()

несколько тысяч записей
Один локальный коннект
Пг с дефолтными настройками

Mate, you're doing it wrong!

Возьми SQLite, и хоть на телефоны переноси.

slaykovsky ★★★ ()

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

slaykovsky ★★★ ()
Ответ на: комментарий от GoNaX

Нет, у них свой фреймворк поверх AWT.

Deleted ()

qt с qml, очевидно же

invy ★★★★★ ()

JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги.

жаба и моно весят больше чем электрон.

waker ★★★★★ ()

Десктоп - значит нормальный кроссплатформенный красивый GUI. И кроме Qt 5 мне ничего не приходит. И с базой данных там будет сразу хорошо.

Я серьезно, не вижу смысла на десктопе ничего кроме Qt 5. Перенести просто скомпилировав? Точно Qt. Даже я, ставив хакинтош, без проблем компилял свой софт для OS X, просто нажимая build в Qt Creator для мака.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от DarthVadimius

У C# на Linux плохая репутация.

Пока еще не появился нормальный современный GUI-фреймворк с достойным редактором форм. Есть только убогий GTK#(2) или винформс без редактора.

Всё как-то слышится то там то сям про libui то Xwt, но где же уровень и качество?

I-Love-Microsoft ★★★★★ ()

Если java, хочется красиво и без тормозов большие таблицы (и готов мириться с некоторыми неудобствами swing) - то http://weblookandfeel.com/

alchemist ()

Если вы хотите, что бы версией для macOS пользовались, то придется писать нативную GUI. Иначе вашим приложением пользоваться будете вы и еще полтора с половиной человека.

andreyu ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

красивый GUI

Qt 5

Ты его на макоси видел? Впрочем, оно везде выглядит как говно.

Если плевать, как выглядит, пиши на python+Tk, в противном случае пиши гуй на какаве и гтк с одинаковым интерфейсом и линкуй родное на каждой платформе.

Freyr69 ★★★ ()
Ответ на: комментарий от Oxdeadbeef

Я не говорил что он должен быть нативно-выглядящим. Просто качественным красивым кроссплатформенным. Это Qt 5. Противоречия нет.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Freyr69

Ты его на макоси видел? Впрочем, оно везде выглядит как говно.

Во-первых выглядит не так уж плохо, а слабые моменты можно подправить. Во-вторых, есть что-то кроссплатформенное, что выглядит лучше?

CrossFire ★★★★★ ()
Ответ на: комментарий от CrossFire

есть что-то кроссплатформенное, что выглядит лучше?

Да все выглядит как говно, но не хуже культей. wx выглядит достаточно нативно, а слабые моменты можно подправить. Но зачем делать кроссплатформенное вырвиглазие, если можно сделать все аккуратно и нативно? А если плевать, как выглядит, можно брать хоть тк.

Freyr69 ★★★ ()
Ответ на: комментарий от Freyr69

Я, как маковод с четырехлетним стажем — скажу, что GTK и Java выглядят просто на порядок хуже, а wx отдельная печальная песня.

CrossFire ★★★★★ ()
Ответ на: комментарий от CrossFire

Меня еще интересует libui, которое быть может станет хорошей заменой GTK там где требуется к некоему языку прилепить GUI (в смысле, GUI-only). Для Python для Mono/C#. Не пробовал libui?

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Java? Наверное, таки Java?

JavaFX неплох. Может тянуть внутри себя JVM, так что на выходе получается бандл ещё меньший, чем при использовании Qt 5 с ICU.

EXL ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Не пробовал libui?

Меня не интересуют некие языки, С++ / Qt вполне устраивает.

CrossFire ★★★★★ ()

Можно ещё сделать так, как это сделал популярный плеер VLC:

Для GNU/Linux — Qt 5, для macOS — CocoaAPI. Но на Qt 5 под macOS писать не рекомендуется. Слишком большая разница между UX у программы на нативных API и программой на Qt.

Да и раздут Qt 5. Во времена Qt 4 ещё можно было понять: либа и исполнительный файл приложения < 10 МБ. А теперь там около 50 МБ всякого разного дерьма через macdeployqt притягивается. Ну и на кой грызть C++ (даже присахаренный Qt'ом) если можно взять тот же JavaFX и получить бандл с программой и JVM всего на 30 МБ? При этом работать программа на JavaFX будет примерно так же быстро, как и Qt-шная, но при этом: весит меньше, а скорость разработки — выше.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 2)

Программу на C, C++ или C#, GUI на GTK или Qt, билд-ферму на CentOS

ZenitharChampion ★★★★★ ()

Очевидный Qt, но на маке он не очень.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от EXL

Qt-предатель ^_^

JavaFX оно развивается еще? А формы там как делают? Я не против Java, для меня всё кроссплатформенное опенсорсное - гуд.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от EXL

При этом работать программа на JavaFX будет примерно так же быстро

Толсто!

весит меньше

Во-первых оценка размера завышена в несколько раз, во-вторых кого это вообще заботит? Люди качают приложения на электроне и не жужжат.

CrossFire ★★★★★ ()
Последнее исправление: CrossFire (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Qt-предатель ^_^

Чтобы фанатеть от GUI-тулкита нужно быть ушибленным на голову. Я говорю по делу: я всегда положительно отзывался о Qt, когда он был лёгким и быстрым. Но в Qt 5 они свернули куда-то не туда. Спасибо местному Поттерингу — Тьяго.

Так что какой смысл ковыряться с C++ и отлавливать сегфолты, когда на выходе получается куча зависимостей, которая суммарно по размеру больше чем JavaFX + JVM (!). И всё так же медленно работает.

C JavaFX можно быстренько и просто замутить такое: https://github.com/ZorgeR/DroidFlasher

Раздеплоить на все популярные системы:

http://wstaw.org/m/2016/10/10/Screenshot_20161010_173102.png

И оно будет просто работать.

Так что, сорян, ничего личного, но у Qt 5 сейчас как-то нет очевидных преимуществ. Раньше были значимые преимущества — легковесность и скорость. Но текущие разрабы всё это похерили. Они это сами и понимают, иначе не стали анонсировать бы Qt 5 Lite, а как здешние фанатики Qt упёрлись бы рогом и повторяли мантру «Qt 5 легковесный и быстрый, просто вы идиоты». Но они пока адекватны и понимают что Qt 5 стал монструозным и неповоротливым и надо что-то делать. Так что Qt 5 Lite, я думаю, можно будет дать шанс.

JavaFX оно развивается еще?

http://fxexperience.com/

А формы там как делают?

JavaFX Scene Builder

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Насколько я помню в JavaFX были проблемы с производительностью при отрисовке больших таблиц (тысячи строк). Уже поправили?

alchemist ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.