LINUX.ORG.RU

Кроссплатформенная разработка

 , ,


1

5

Подскажите, на чём писать крупное коммерческое ПО с GUI, чтобы быстро и дёшево и нативно на все десктопные ОС. Какие языки, компиляторы и библиотеки лучше использовать? Рассматриваю вариант взять за основу существующую разработку с github и прочих, но приходит понимание, что в миллионах строк чужого кода разобраться немногим легче, чем написать свои. Какие opensource-проекты можно рассматривать для коммерческой разработки? Где почитать про структуру этих проектов и варианты использования у себя? Буду благодарен за любые советы, если есть полезные мне ссылки - шлите и их.


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

JUCE

удваиваю, кстати. очень интересный тулкит.

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

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

Iron_Bug ★★★★★
()

wxWidgets советовали? У Qt вроде LGPL, коммерческую лицензию придется покупать для переноса на iOS.

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

насчёт «всех десктопных ОС» - это вообще недёшево и небыстро в любом раскладе.

Легко. Просто не надо велосипедить на своей сишечке, а взять Qt.

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

wxWidgets советовали? У Qt вроде LGPL, коммерческую лицензию придется покупать для переноса на iOS.

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

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

Я знаю. Но только в Си более-менее прилично умею. Это плохо, я знаю)

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

Я уже так делал. Тошнит до сих пор.

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

Человек просто не знает, что «написано однажды - работает везде» - это только такой рекламный слоган и больше ничего.

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

upd: требования ТСа рассмотрел не сразу =)

Сорри

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

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

Но зачем-то оно существует. P.S Сам не люблю Qt. Но иногда выбора нет.

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

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

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

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

в этом плане тонкий клиент в вебе - самое дешёвое решение. может, оно не такое круто выглядящее, но по крайней мере решает сразу половину проблем с поддержкой на разных непонятных платформах.

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

на большинстве платформ её таки нет.

Дай угадаю, это твоё большинство какой-нибудь окаменелый кал?

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

коммерческую лицензию придется покупать для переноса на iOS.

Это ещё зачем? LGPL позволяет линковать статически, если предоставишь фанатикам свободки объектные файлы для перелинковки.

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

Там плюсы уровня «Си с классами и через точку».

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

Да. Тщательно сделаннач копия седьмого. И все равно едет. Это каким упороиым психом надо быть, чтоб вместо сайзеров в css верстать десктоп.

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

И все равно едет

Едет, это с горки за верёвочку с попутным ветром? меня бесит, что оно разучилось работать напрямую с alsa-й Хрен с ними, со свистоперделками, я никогда на это внимания не обращаю. А за звук стыдно ойаипу. Чтоб поговорить надо втыкать USB звуковушку.

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

Это ещё зачем? LGPL позволяет линковать статически, если предоставишь фанатикам свободки объектные файлы для перелинковки.

В App Store вроде не принимали open-source ПО.

Meyer ★★★★★
()

Вобщем-то, никаких вариантов нет. GTK и Qt - единственные варианты хоть сколько-нибудь сносного кроссплатформенного UI, но и те откровенный кал. Особенно GTK, мне его кастомные FileDialog в кошмарах снятся до сих пор. Qt же тоже выглядит откровенно лажово, на уровне 10-летней давности, да и вообще от современных принципов построения UI он далек настолько же, насколько собственно C++ от современных принципов построения программных систем.

Electron советуют те, кто с ним, и с приложениями на нем, не работал особо, и не слышал отзывов пользователей(особенно о производительности, гыгы). Проще уж(и лучше) взять и сделать обычную энтерпрайзную веб-морду.

Java-GUI это ужас, как по виду, так и по юзабилити, по производительности, и по удобству использования программистом. Например IDEA от JetBrains, или Eclipse, итд, это закапывайте, GUI уровня Windows 2000 по всем параметрам, да еще и тормозит и жрет как не в себя.

Tk, wxWidgets - опять же привет 90е.

Да и вообще, зачем ходить за кроссплатформенностью, вот взять винду. Там не сказать чтобы есть какой-то некий look-and-feel, в последних то версиях. Есть некоторый более-менее стандартный вид UWP-приложений, но они далеки от словосочетания «энтерпрайз», это мелочи всякие и виджеты для «пуска».

Зато есть WPF, и это единственный вариант GUI под винду, вообще говоря. Если брать просто юзабилити и приятный летающий UI, то приложения с таковым будут написаны на WPF. Например, Visual Studio. Или другие продукты MS, которые либо используют закрытую вариацию WPF, либо же закрытый нативный фреймворк, являющийся либо бекпортом WPF, либо его предком(типа офиса). Сложность WPF в том, что у него никакого стандартного вида нет, там все на темплейтах и стилях, какие могут быть каковыми угодно. Но это означает, кстати, что его можно застайлить чтобы было и как под Metro/UWP(я так делал в энтерпрайзном проекте, вышло мило), и как под офис, и так далее.

Про Мак знаю мало, видимо там Cocoa наше все, это опять же исключает кроссплатформенность. Единственно знаю, что там нужно очень активно использовать специфические места этого API, в плане анимаций итд, чтобы приложение не выглядело инородным куском говна, как обычно выглядят «кроссплатформенные» приложения, забивающие болт на детали платформы.

Ну линукс - да на линуксе на UI всем насрать, по-моему.

Так что расклад следующий:

1) Винда - UI на WPF

2) Мак - UI на Cocoa

3) Линукс - дрочи как хочешь

Но дрочить я бы не рекомендовал, а рекомендовал бы сделать клиент как можно тоньше, и остальное вынести на сервер, или вообще в облако, а UI писать специфический для платформы.

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

В App Store вроде не принимали open-source ПО.

libsignal-protocol-c:

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

[libsignal-protocol-c] Update license to include «additional permission» for apple store:

Additional Permissions For Submission to Apple App Store: Provided that you are otherwise in compliance with the GPLv3 for each covered work you convey (including without limitation making the Corresponding Source available in compliance with Section 6 of the GPLv3), Open Whisper Systems also grants you the additional permission to convey through the Apple App Store non-source executable versions of the Program as incorporated into each applicable covered work as Executable Versions only under the Mozilla Public License version 2.0 (https://www.mozilla.org/en-US/MPL/2.0/).

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

У Qt вроде LGPL, коммерческую лицензию придется покупать для переноса на iOS.

А ничего, что iOS поддерживает динамическую линковку начиная с версии 8.0, которая вышла в 2014 году?

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

Qt же тоже выглядит откровенно лажово, на уровне 10-летней давности, да и вообще от современных принципов построения UI он далек настолько же, насколько собственно C++ от современных принципов построения программных систем.

Сложность WPF в том, что у него никакого стандартного вида нет, там все на темплейтах и стилях, какие могут быть каковыми угодно. Но это означает, кстати, что его можно застайлить чтобы было и как под Metro/UWP(я так делал в энтерпрайзном проекте, вышло мило), и как под офис, и так далее.

QML появился в 2009 году.

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

Тогда круто. Давно не имел с ней дело.

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

Вчера на амазоне книжку купил по wxvidgets. Давно мылился покурить эту штуку, да всё недосуг было.

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

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

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

У меня аллергия на чтение с экрана. Да и мозги слегка подпротухли. Решил немного проветриться. Заодно буржуйский подтянуть.

Deleted
()

если «быстро и дешево» - Qt
если собственный гуй - ну дык рисуй в 2D sdlом или на канвасе какого-нибудь веб-движка.
вообще «ведро» своего фреймворка можешь сделать независимым от гуя — будет пофиг какой гуй, нативный для платформы пристегнешь и все.

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

быстро и дёшево и нативно на все десктопные ОС

Выглядит как фантастика. Вариантов не слишком много, из реальных: Qt + биндинг к чему-то на чем можно быстро писать (на крестах будешь писать долго, тк язык не самый простой в итоге).

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

Java 8 (JDK, JRE) и Swing для десктопа; JavaEE 7 EJB 3.2, JPA 2.2 и JSF 2.3 для сервера. Среда программирования - NetBeans 8.2. Сервер приложений - WildFly 11.

Что там за операционная система - неважно. Всё это одинаково работает без танцев с бубном на Windows, Mac OS X, Linux и FreeBSD.

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

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

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

Поиск, да, и места много занимают. Если заниматься какой-нибудь из наук, то электронная библиотека может спасти отцов русской демократии.
Когда-то я начинал проект электронной библиотеки. Задумок было масса, но им уже не суждено реализоваться, всё в прошлом.

Сабжевая книжка это скорей исключение из правил. Техдоки обычно курю с монитора.

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

библиотеки нынче зажрались. у меня тут рядом школа. так они хотят, чтобы я им это всё принесла сама, а они будут выбирать, что им нужно. потому что у них список, и учебная программа и всякая фигня. ну, я решила, что не хотят - так хрен с ними. я в кладовку особо не лажу, мне они не мешают. раньше, когда квартиры снимала и переезжала, это был страшный гемор: грузчики таскали около 30 тяжеленных коробок с книгами и матерились :) сейчас мне не нужно переезжать и книги меня не так беспокоят. но я их накапливать не хочу.

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

так есть же какая-то библиотека Calibre (вроде так называется). там есть теги, можно хранить книги в разных каталогах, в разных форматах, синхронизировать с читалкой, сохранять места, где читаешь каждую книгу, и всё такое. вроде достаточно фич.

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

c мёртводеревными книгами легче книжное колесо билдить чем с электронными - да и маргиналии наносить легче .

и ещё - книги просто буквально дороже.

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

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

потому что в них нет поиска

В толковой книге алфавитный указатель жы есть, не? Работать с книгой прост уметь надо :)

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

Не, у меня по работе был проект библиотеки. Собсна, изначально было понятно, что это пустая трата времени =)

Зато постгрю выучил =) Так что не совсем зря.

библиотека Calibre

Кстати, спасибо. Потыкаю на досуге.

ЗЫ На амазон забрёл за новыми джинсами и за очередным диском блюза, и прикупил заодно чтиво по wxvidgets =)))

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