LINUX.ORG.RU

На чем создать кроссплатформенную программу?

 


1

3

Я хочу сделать программу, которая бы работала и на GNU/linux, и на windows. На qt. Ну и вот у меня возник вопрос, а на сколько позорно делать кроссплатформенную программу на пайтоне. Ну не на js и golang же. Только если конечно сделать версию проги под винду на шарпе.

Ответ на: комментарий от czan

Да я так посмотрел, а смысл делать на qt, если уже у пайтона pyside2 не поддерживается. А тогда получается что на винду только 10-11 получится сделать. Тогда только под линукс на qt. (тут кто-то писал про javafx, интересно, только джаву надо учить для этого)

enot_obrmot
() автор топика

на сколько позорно делать кроссплатформенную программу на пайтоне

Если не «числодробилка», то норм. Для змея есть Qt биндинги, так что сможешь Qt использовать.

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

числодробилка это что? ну я хочу создать аналог pidgin с интерфейсом как у телеги))) В целом я разберусь с протоколами, но вот gui прям боль.

enot_obrmot
() автор топика

Ну и вот у меня возник вопрос, а на сколько позорно делать кроссплатформенную программу на пайтоне.

Если не важна производительность, то пофиг.

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

что-то я подумал, а ведь я и не буду этим по факту пользоваться…. Никто уже в здравом уме не юзает эти протоколы, только в whataspp и всё

enot_obrmot
() автор топика
Ответ на: комментарий от enot_obrmot

Тогда напишите более быструю и лёгкую альтернативу VSCode на C++ и Qt.

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

Мессенджеры на питоне были, поэтому написать можно.

P.S. Если будешь писать Tox-клиент, то лучше форкни qTox.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от enot_obrmot

Ну так будут ныть что «ест много». Да и я сам не хочу веб приложение на электроне делать для этого.

На то, что много жрет будут ныть 1.5 пользователя. На то, что неудобно - 80%. Дальше думай сам.

Norgat ★★★★★
()

Python+Qt норм, но ты можешь запариться с опакечиванием под венду. А так, если производительность не проблема, то херли нет-то.

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

Да я так посмотрел, а смысл делать на qt, если уже у пайтона pyside2 не поддерживается.

Есть Pyside6 потому что.

hateyoufeel ★★★★★
()

Я вполне себе писал гуевую кросс-плтформу на Go. Хотя это и немного не тот стек для этого языка, и получается как-то по ощущениям кастрированно что ли… Но работает.

Zhbert ★★★★★
()

В чем вопрос, какие у тебя проблемы с Qt?

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

Можешь сделать форк клиента Telegram, он открыт.

MOPKOBKA ★★★★
()

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

А может всё таки не надо?

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

хернёй не майся, бери электрон и пиши гуй на реакте

peacelove
()

на сколько позорно делать кроссплатформенную программу на пайтоне

Не позорнее чем на js/электроне.

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

TclTk же. Будет открываться вообще на всем и 30 лет спустя.

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

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

Ну не на js и golang же.

Гребёте вместе плохое и хорошее, разберитесь с этим сначала.

Я хочу сделать программу, которая бы работала и на GNU/linux, и на windows. На qt.

Культи для кроссплатформенного UI это уже очень норм, если пропустить необходимость писать на крестах.

Так-то можно хоть на чём писать кроссплатформенно, были бы рантайм с графецкой и руки как руки, а не как грабли.

Bfgeshka ★★★★★
()

начинаешь с веба, потом пакуешь в электрон.

Если у тебя задача потратить три года своей жизни впустую, чтобы какой-то тролль с лора тебя не оскорблял, то можно конечно теребонькать Qt или что-то подобное, но если надо запустить и уже чтобы работало, то веб - самое передовое и безальтернативное.

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

увы, с яваскриптом оно не так. Сам то язык поддерживается десятилетиями, но вот фреймворки на нём - нет.

Мне пришлось переписывать с React Native на натив приложения, потому что жс-макаки задолбали одно и то же переписывать несколько раз в год, делая поддержку более дорогой чем разработку.

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

Есть еще GTK и реализации imGUI и наподобие. Но ИМХО — первые хорошо будут работать на линуксах и макоси, где поставить нужные либы можно одной командой без проблем, а с виндой надо будет повозиться с упаковкой нужных либ. Qt, помню, я раньше паковал просто сложив рядом с бинарником нужные dll. А вот imGUI и, например, Fyne выглядят топорно, потому что по сути рисуют все контролы прямо в окне с испольщованием OpenGL, что не дает особо разгуляться и вызывает ощущение какой-то кастрированости. Ну, для просто утилитки норм, а вот если что серьезное делать — я бы смотрел уже либо на Qt с С++, либо на Java и Swing.

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

А нафига переписывать? Я вот до сих пор делаю простенькие веб-аппки, если надо, на стареньком Vue 2, где можно подключить один скрипт к HTML, обвязать элементы и получить быстрое приложение. И пофиг, что оно уже не модно и так далее.

Я тут в какой-то из своих статей на Хабре для примера как раз сделал приложение на новом вью, причем сгенерил костяк приложеньки vue-cli что ли, как делал ровно год назад (и тогда это было вроде прям мейнстрим), но в комменты пришел какой-то хрен с «кококо, ты с какого года, щас так уже не делают». И я бы ему ответил в лучших традициях ЛОРа, мол, шел бы отсюда, кто тебя спрашивает, но не стал :)

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

начинаешь с веба, потом пакуешь в электрон.

А потом убиваешься ап стену, потому что задолбали своим электроном…

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

если пропустить необходимость писать на крестах.

Там же кресты уже не совсем кресты, слишком много Qt-специфичного…

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

Qt, помню, я раньше паковал просто сложив рядом с бинарником нужные dll

Вроде бы в mingw были статические либы Qt.

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

Электрон в принципе фиксит данную проблему так как там фиксированная версия жс, поэтому оно хоть через сто лет будет запускаться.

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

Возможно. Но это надо ставить mingw и так далее. А как показывает практика, пользователи винды не будут этого делать, им надо чтобы открыл, запустил и работает. Ну или запустил инсталлер, далее-далее, оно работает. Я делал как — запускал бинарник, он сразу кричит, что нет нужной либы. Просто брал дллку из Qt, установленного в систему, клал рядом. И так по всем либам. В итоге получался каталог с екзешником и нужным библиотеками рядом. Дальше это можно либо архивом разослать, либо упаковать в инсталлер, чтобы далее-далее. Юзеры были рады.

Попробовал как-то просто отдать бинарник с рекомендациями установить кьют — ну это было больно :)

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 1)
Ответ на: комментарий от Zhbert

Я делал как — запускал бинарник, он сразу кричит, что нет нужной либы. Просто брал дллку из Qt, установленного в систему, клал рядом

в Qt помнится в мануалах есть «how to deploy Qt app». Это чуть более правильный путь чем метод проб и ошибок :-)

вот Gtk деплоить это боль. Чтобы правильно работало нужен и ворох dll и какие-то внезапные ресурсы включая локали и в окружение что-то надо прописывать.

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

в Qt помнится в мануалах есть «how to deploy Qt app». Это чуть более правильный путь чем метод проб и ошибок :-)

Ну кто из нас читает документацию вовремя :)

вот Gtk деплоить это боль. Чтобы правильно работало нужен и ворох dll и какие-то внезапные ресурсы включая локали и в окружение что-то надо прописывать.

Я вот тоже что-то такое помню. Пытался как-то в PyGTK — на линуксе завелось буквально сразу. На винде я как-то долго собирал все нужное, чтобы заработало… А потом не смог быстро и беспроблемно передать это другим, потому что там реально как-то слишком дофига было телодвижений, чтобы взлетело.

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

Да кресты крестами, просто через рантайм свой. В UE то же самое.

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

В электроне вместо этого: https://ru.wikibooks.org/wiki/WxWidgets_Hello_World_в_Visual_C++_и_wxFormBuilder

будет

style="align: right; display:block"
и миллионы css строк нечеловеческого пердолинга в максимально извращённых формах.

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

Godot или Tcl/Tk

Upd: таки какие у вас проблемы с C++/Qt

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

Ну и вот у меня возник вопрос, а на сколько позорно делать кроссплатформенную программу на пайтоне.

Не то, чтобы позорно. Но те, кому захочется запустить твою программу на слабеньком железе, могут быть огорчены. (А слабое железо, на минуточку, это не только системник с помойки, но и современный бесшумный экологичный десктоп на Raspberry Pi.)

Поэтому я ратую за связку Qt/C++. Она поддерживает невероятный диапазон железа и операционных систем, особенно если версии Qt грамотно подбирать. :)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от enot_obrmot

А тогда получается что на винду только 10-11 получится сделать

Просто готовь исходники так, чтобы они собирались и на Qt 4.8, и на Qt 6.4 (я до шестёрки пока не дотянул, только собираюсь, но диапазон от 4.6 до 5.15 мой pet project поддерживает). Тогда виндосборка хоть на XP будет работать. А под линуксы взять Qt посвежее.

hobbit ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.