Лучший выбор для программирования кросс-платформенного приложения?

Здравствуйте.



Вопрос не холивара ради — возникла необходимость по работе.

Сам я больше связан с веб-программированием, поэтому о программировании под ОС имею достаточно смутное представление.



Меня интересует наименее затратный по созданию и поддержке кросс-платформенного приложения под основные десктоп операционные системы (семейства Windows, Linux и MacOS). При этом хотелось бы иметь возможность сделать приложение максимально нативным в плане дизайна в каждой из операционных систем, чтобы не раздражать пользователя.



Выбираем между Java, C# и С++.



Суть приложения — клиентское приложение, которое обращается по HTTP к веб-серверу, формулируя определенные заголовки и тело, получает ответ и рисует данные как нужно. Нужно чтобы из коробки был доступен HTTP, работа с популярными кодеками (аудио/видео), возможность кэширования медиа-контента и текста, поддержка JSON (просто не в курсе, есть ли это из коробки где-то).



Большим плюсом языка было бы его легкое изучение. Человек будет пересаживаться на него c Delphi.
  • Вопрос задан
  • 12838 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 12
Wott
@Wott
Че вы все свое старье хвалите?
Javascript в браузере
Ответ написан
На C++ писал сто лет назад, на С# не пишу, поэтому скажу про Java.

Она соответствует вашим ожиданиям. В Java Swing (GUI библиотека) можно включать native look&feel. Так что приложение в каждой OS будет выглядеть как родное.

Для Java существует огромное количество свободных библиотек. Гуглите Apache Commons
Там есть поддержка очень многих полезных штук.

Для работы с мультимедиа гуглите Java Media Framework

Язык красивый и элегантный, хотя матёрые C++ программисты кинут в меня камень. И не один.
Ответ написан
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Советую Python + wxWidgets. Если не понравится ещё есть Qt + С++ || Python.
Медиа возможности в Python можно подключить разными библиотеками (ffmpeg, mplayer), достаточно просто.
Ответ написан
@xaoc80
Самое эффективное — Qt и C++.
1. Среда разработки и неплохая идет в комплекте, есть дизайнер формы
2. Довольно много готовых примеров и приложений в которых всегда можно посмотреть пример реализации
3. Бинды на Python и других языках
4. На C++ много готовых библиотек, которые можно использовать в своем приложении

Яву я тоже использую (Swing)
Но сейчас что-то серъезное пищут на Java2ee, а там, на мой взгляд довольно высокий порог вхождения
Ответ написан
rfq
@rfq
Программист
Вам ведь надо чтоб работало, причем человек этим займется неопытный. Поэтому вариант один — Java, так как больше ошибок будет выявлено на стадии компиляции. На питоне, js и плюсах новичок замучается отлаживать свой г-нокод. С# посложнее явы и не кроссплатформенный.

Насчет того, что на Java2ee высокий порог вхождения — замечание не к месту, так как приложение десктопное, и не требует ЕЕ.

Насчет ресурсов — ява по скорости сравнима с С++ и оставляет далеко позади питон, js и прочую динамическую братию. Повышенное потребление памяти заметно только если у вас много (миллионы) мелких объектов, и то по сравнению с с/с++, у динамических языков расход тот же. У вас объектов не так много и они крупные (вы ведь сказали — медиа).
Ответ написан
@megaalli66
Поддерживаю про JS + webSocket|ajax. Только как системные требования будут самые свежие билды браузеров, чтобы не пришлось изучать дзен костыления. Самый экономный и оптимальный вариант, при указанных требованиях, т.к. всё описанное уже есть. Про manifest только не забудьте.

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

Если что-то посерьезней, то прямо скажу — С++ и QT(QScript). Там вам и вебкит и все это есть. Но человеку, переходящему с делфи — плюсы будут сложноваты. Хотя мощных редакторов для QT выше крыши. Тем более для разработчика на delphi, будет удобно упростить работу с qtdesigner.

Касательно Java не спешите. При тех требованиях, которые вы описали, не самым лучшим вариантом было бы такого монстра использовать, в плане ресурсов.

Если будут еще какие-то требования к задачам — напишите. Тогда можно будет точнее дать совет.
Ответ написан
@XimikS
Самый легкий, и современный (на мой взгляд) — C#. Есть крутой WCF WCF. Но он не кроссплатформенный. Есть Mono конечно, но как оно на деле — не знаю.
C++ — тут либо Qt, либо wxWidgets. Qt, насколько я знаю не имеет нативный интерфейс, в отличие от wxWidgets. Но язык не самый простой, сами понимаете =)… правда, из лагеря плюсовиков то и дело доносятся возгласы, что Qt существенно облегчает работу.
Java — не знаю, честно, но давно не встречал приложения на нем написанные.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
На мсдн сейчас часто идут примеры одного и того же функцинала на с++, c# и vba.
Лично мне с# дался легче чем все С, С+, С++ вместе взятые. Но как с этим работать под маком и в линуксе… кхм…
Ответ написан
@hachik
Можно PureBasic использовать.
Он поддерживает платформы Windows, Linux, MacOS и AmigaOS. Как 32, так и 64 разрядные.
Ответ написан
Gorthauer87
@Gorthauer87
Программист

air хреново дружит с линуксом и прочими андроидами. Пока самый адекватный вариант - это Q.

Ответ написан
@mefutu
Если вам нравится c# с его сахаром и вам близок WPF + HTML, то могу посоветовать AvaloniaUI, проект поддерживает все платформы в том числе и android через (.net core/ mono) . Здесь лежит прекрасный доклад на эту тему https://youtube.com/watch?v=8qzqweimcFs

P.S проект находится в beta, но писать на нем GUI уже можно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы