ЯП для кросплатформенной разработки?

Сейчас занимаюсь написание десктопных приложений на фреймворке Qt (С++). И начал сталкиваться с проблемой портирования ПО под старые версии Linux, а именно под архивные дистрибутивы debian 7 и ему подобные.
Процесс портирования под разные ОС как и написание программ на С++ занимает много времени. В связи с этим решил попробывать что то новое.
Основные требования к языку:
1) Многопоточность
2) Наличие ментодов для работы с битами и байтами
3) Наличие удобных методов для работы с сетью
4) GUI библиотеки или встроеный(очень гибкий в настройке)
5) Относительно не сложная сборка в static
6) Относительно большое комьюнити

В идеале написать один раз, собрать на одной машине (Linux) и запустить на всех.
  • Вопрос задан
  • 3049 просмотров
Пригласить эксперта
Ответы на вопрос 10
Zoominger
@Zoominger
Сись админ
Пока всему, что вы описали, удовлетворяет Qt.
Ответ написан
kale
@kale
Посмотрите в сторону Go:
1) Многопоточность
есть из коробки на уровне языка
2) Наличие ментодов для работы с битами и байтами
отдельные пакеты
3) Наличие удобных методов для работы с сетью
пакеты в стандартной поставке
4) GUI библиотеки или встроеный(очень гибкий в настройке)
этого нет, но есть множество биндингов, в том числе к Qt
5) Относительно не сложная сборка в static
одна команда компилятору
6) Относительно большое комьюнити
уже да
В идеале написать один раз, собрать на одной машине (Linux) и запустить на всех.
Не уверен, но скорее всего да
Ответ написан
mindtester
@mindtester
делаю странные вещи..чаще на C#..иногда за деньги
1 - C# (.dotnet Core. через годика полтора-два, весь дотнет обещают снова сделать единым и кроссплатформенным). но GUI "из коробки" только под винду (и то релиз осенью, но беты доступны). но есть вещи типа https://github.com/ElectronNET/Electron.NET. учитывая что сам МС перевел даже скайп на "электрон" (не знаю точно какой), и таких примеров пугающе много.. это тренд. он мне не нравится ("электрон-based", сам C# и корка мне оч даже нравятся), но тренд есть. кстати? есть https://duckduckgo.com/?q=qt%23&t=ffab&ia=web (сам не трогал)

2 - java. и там есть кроссплатформенные GUI (но за подробностями не ко мне. скорее к гуглу)

3 - камни в чужие огороды - не советую тратить время на другие варианты ;))... если эти не милы - рубитесь в Qt на плюсах

ps ну или разве что, если вам не важна производительность, как уже сказано - python3. думаю найдется не мало оберток и к Qt (тем более если linux only)
Ответ написан
@beduin01
@yokotoka
Qt, очень хорошо бьется с вашим текущим опытом и ничему переучиваться не надо, только освоить новый инструмент.

Все остальные варианты тоже возможны, но то уже такое...
.NET с каким-нибудь UI-фреймворком типа Avalonia или вообще Unity
Python с какой-нибудь библиотекой UI, да тот же Qt и Pyinstaller.
Haxe - но там своя атмосфера, оно транслируется в другие языки, хотя какой-то UI там есть свой.
Javascript + Electron/React Native - но, боюсь, ваше чувство прекрасного после высокой эффективности по памяти и процу не даст рассматривать это всерьез.
Еще можно Java + UI и AOT-компилятор
Варианты типа Rust и Go тоже существуют, но там хз, как с биндингами к нормальным UI.

Если интересует именно скорость и удобство разработки, "мощность" готовых решений, то я бы взял питон и Qt или .NET/C# и кросс-платформенный UI. У того и другого есть коммьюнити.
Ответ написан
@stictt
просто рак
Из самых близких вам это C# и java , добавил бы еще python , но он не может в многопоточность, кто бы что не говорил.
Ответ написан
@fogree
Java или любой другой JVM язык по вкусу.
Сам я не пробовал, но если нужна AoT компиляция, то можно посмотреть на GraalVM или Kotlin Native.
Ответ написан
Radzhab
@Radzhab
В общем искал я в свое время такой же ЯП, который позволит кодить под все операционки.

Я базовый c# прогер. Думал - давай возьму-ка xamarin или mono. Это боль. Оно не кроссплатформенно. Оно не создано для этого. Avalonia и прочее - дичь.

Идём дальше - QT. Хороший, быстрый, но блин - это плюсы) После c# это сущий ад. Чтобы сделать простые операции нужно столько изворотов. Про компиляцию под разные ОС вообще молчу. Если у вас нет MacOs - у вас не получится его сбилдить под MacOs.

Electrons JS - визуально понравилось, но тут уже навыки js нужны.
В общем я остановился на JavaFx. Это бальзам на душу, это как c# только реальная кроссплатформенность.
Ответ написан
Ваш ответ на вопрос

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

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