На чем пишутся современные десктопные приложения?

Вопрос который потянет за собой много дополнительных, поэтому постараюсь сразу задать некоторые условия.
  1. Я прекрасно понимаю, что десктоп сейчас далеко не самая популярная платформа
  2. Я прекрасно понимаю, что подобные вопросы должны также содержать описание конкретного приложения, исходя из чего и будут складываться подобные рекомендации. Возьмем в данном случае не высоконагруженное, а просто бизнес приложение, которое работает с базой данных и выполняет некоторые расчеты (как будто про 1С пишу). Например десктоп, который есть в ближайшей франшизе вейп-шопов или кофеен (Специально обращал внимание на чем там производится работа и увидел, что это десктопное приложение). Упрощая - для малого и среднего бизнеса
  3. Хочу также обратить внимание на специфику нашей страны. Очень часто слышу о скором повальном переходе муниципальных учреждений на линукс, а там и частники подтянутся (хотя возможно эта предпосылка ложная). Тогда отсюда исключается C#


Итого: два самых известных enterprise языка - c# и java не подходят, так как c# не будет/ будет плохо работать на линуксе, а java - "не подходит для десктопа" (в последнее время стал часто слышать это выражение), так как час javaFX уже прошел, а ничего нового вроде не появляется.
Так вот вопрос: на чем сейчас пишут современные десктопные приложения?
  • Вопрос задан
  • 2210 просмотров
Пригласить эксперта
Ответы на вопрос 11
dimonchik2013
@dimonchik2013
non progredi est regredi
на всем ), именнно ввиду непопулярности десктопа все размыто

прежде всего на Сшарпе - все просто: десктоп значит винда, винда значит либы, либы значит Сшарп - отличаются как раз малым размером (хехе),

потом Qt / GTK/ Tcl с их портами на куда придется и куда приестся - от PyQT (наверно, самому вмнеяемому для Питона но с хз какой лицензией - уже не слежу, что там отпустили попустили допустили, о! pyside ожил свежий!) до Tk портировнного на Go - как-то изучал дела с десктоп приложениями - сам Go с десктопом и был и плохо и остался плохо, но вот именно порты Tk там из известных продвинулись дальше всего

ну и Delphi конечно, если программистов найдете )) нет, не умер, но, думаю, дорог в поддержке )

если думаете с чего начинать - рекомендую PySide, мне кажется будет наименьше число разочарований и тормозов при создании желаемого
Ответ написан
Lapish72
@Lapish72
C# уже много лет спокойно работает на линуксе. На c# можно писать кроссплатформенный gui через:
1) Avalonia. Наследник WPF с исправлением болячек wpf(тех же стилей) и реактивностью по умолчанию.
2) UNO. Многообещающий проект, но лично мне не понравился. Слишком тяжеловесное решение и сложное. Avalonia проще и завелась сразу.
3) Maui. Официальное решение от Microsoft, но не под линукс. На github пилят отдельно под него поддержку.
4) Blazor/Electron.Net. Web app в виде десктопа.

JavaFX. Сугубо субъективное мнение, но это тихий ужас по сравнению с тем же WPF.

Для себя хочу изучить Dart и Flutter из-за быстрой перезагрузки(тот же wpf, а особеннно у blazor с этим проблемы) и 100% следования material guidline, т.к это все google. На Flutter ui пишется под все платформы и его практически не нужно будет подгонять.
Ответ написан
Комментировать
Deita
@Deita
Всё зависит от конкретной задачи, если писать мессенджер то на JS (Electron)
Если писать игру, то на С++
Там где не надо GUI я бы вообще писал на чистом С или Питоне
Переключатель раскладки клавиатуры на C#
Какая задача? Обычно пишут на чём могут, в десктопе нет такого понятия как "обычно" и "на чём обычно пишут", зависит от задачи. Под решение каждой задачи нужно подобрать язык программирования, универсального языка программирования не существует. Старайтесь выбрать такой, в котором большое комьюнити, если вы не будете работать в команде, то комьюнити которое сможет помочь на SO, GitHub; и тот язык который максимально подходит под вашу задачу. Если вы идёте писать десктопное приложение в команду, то на каком языке вам команда скажет, на том языке вы и будете писать. Если вы не знаете что учить, что бы найти работу, то идите в объявления, и смотрите требования. Предугадать станет ли Linux популярным на Десктопах или не станет легко, нет не станет. Не при каких обстоятельствах, доказать это достаточно легко, но это уже отдельный вопрос.

Задача первична. Конкретизируйте ваш вопрос, какую задачу следует решать в будущем. Иначе вы тут получите в ответах полную кашу, так как на десктопах люди пишут на всём, чём могут. И они вам сейчас перечислят все существующие языки, включая F# или Haskell с Питоном исходя из тех задач которые они решают.

Чем выше уровень языка - тем лучше, но вывезет ли он тягу. Зависит от задачи. Конкретизируйте ваш вопрос, что за задача перед вами стоит.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
java - "не подходит для десктопа"

На платформе Java (Groovy, Kotlin) написана среда разработки Jetbrains Idea.
Правда есть у меня подозрение что из библиотек там использован не Swing а SWT
но я уж не помню я слишком давно этот вопрос изучал. За много лет многое могло поменятся.
SWT не слишком кроссплатформенный.

На Java написан менеджер закачек Vuze (Azureus) и такая векторная рисовалка как Yed
которой я пользуюсь иногда.

Еще OracleDeveloper, Beaver, SOAP-UI, и много всяких тулов программисткого толка.

По поводу JavaFX но я честно говоря не видел чтоб кто-то
активно что-то графическое на нем разрабатывал. Скорее всего это была наивная попытка
исправить недостатки Swing. И сделать его ... более мультимедийным чтоли.

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

Для окон остается что-то очень хардовое типа Photoshop, 3dMax, AutoCad где можно грузить на 200%
клиентский CPU и ты реально будешь хотя-бы чувствовать пользу от такой отдачи.

Все где формочки и гриды - потеряло рентабельность. Его дешевле делать на вебе т.к. разработчик
веба стоит дешевле и внести резкое изменение в функционал очень легко.

Поэтому не звучит вопрос что на Java десктопы не пишут. А их щас реально уже НИ НА ЧЕМ не пишут.
Даже на С++. Реально только игры и редкие приложения типа там 1С или какие-то клиент-банки.
Ответ написан
nki
@nki
bezkart.ru готовая система лояльности
Для бизнеса оптимально написать на 1С.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
C++ с Qt
Ответ написан
Комментировать
@Dmtm
Android
kotlin и compose = все возможности явы и очень простое создание UI (если сравнивать со swing то наверное раз в 5 короче код получается)
но зачем? веб лучше
Ответ написан
Комментировать
@ignat2009
14 лет, изучаю C#
Сейчас в основном никто не использует Линукс
Мне самому 14 лет и я изучал с++ и перешёл на с# ради создания программ
Так что берите с# или java
Лучше c# потому что с# взаимствует у с++ эффективность и у java( точно не знаю что)
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Вы правильно написали про п. 2
Вам подойдет киоск мод и веб приложение.
Очень хорошо встанет какой нибудь фреймворк mobile first.
Бэкенд на выбор C#, Java, Python, PHP
OS: Linux, FreeBSD, Windows

В общем десктоп он для сильно других задач :)
Ответ написан
Комментировать
HemulGM
@HemulGM
Delphi Developer, сис. админ
Собственно я описал в одном из ответов в комментах свой ответ. Хорошим выбором для создания приложений под десктоп будет Delphi. Скорость создания интерфейсов в нем выше всех, скорость исполнения кода сравнивается с плюсами. Поддержка коммьюнити имеется, в частности есть и официальная поддержка и сторонняя. (SO, чаты в телеге, дискорд, в том числе официальные). Среда и язык регулярно обновляются (раз в 3 месяца патчи, обновы, крупные релизы каждые пол года-год). Имеется кроссплатформа под все основные ОС (Win/Linux/MaxOS/Android/iOS).
Ответ написан
@evgeniy_lm
Я прекрасно понимаю, что десктоп сейчас далеко не самая популярная платформа
Ни фига ти не понимаешь. Само собой большинство корпоративных решений уходит в клиент-сервер, но не потому что это "популярно", а потому, что это удобно поддерживать централизовано. С другой стороны это может требовать сложную сетевую структуру, так что такие решения не всегда оправданы. Часто суть системы требует наличие "толстого" клиента т.е. достаточно мощное десктопное приложение. Про какие-то мелкие утилиты узкой направленности я вообще молчу.

Например десктоп, который есть в ближайшей франшизе вейп-шопов или кофеен
Скорее всего это тот самый "толстый клиент"

Хочу также обратить внимание на специфику нашей страны.
Ой! А что случилось?

Очень часто слышу о скором повальном переходе муниципальных учреждений на линукс, а там и частники подтянутся (хотя возможно эта предпосылка ложная).
Совершенно верно "ваша страна" не Китай где из-за санкций Microsoft в начале 2000-x за год разработали и внедрили национальный Linux.

Тогда отсюда исключается C#
Не боись, тебе до пенсии хватит

Итого: два самых известных enterprise языка - c# и java не подходят, так как c# не будет/ будет плохо работать на линуксе, а java - "не подходит для десктопа" (в последнее время стал часто слышать это выражение), так как час javaFX уже прошел, а ничего нового вроде не появляется.
Читай выше, повальный переход на Linux "вашей стране" в обозримом будущем не светит, так что с С# проблем не будет. JAVA это десктоп в чистом виде и про скорую смерть JAVA я слышу уже 25 лет и ничего, живет.

Так вот вопрос: на чем сейчас пишут современные десктопные приложения?
Ответ: На всех существующих языках программирования. Даже на PHP. Ну, а конкретно нужно смотреть на обстакановку.
Если это древняя фирма разрабатывающая софт много десятков лет то скорее всего С++/С#
Если твоя программулина должна работать на любой платформе то это JAVA, Python
Если это небольшая контора то Delphi. На Delphi в принципе можно писать кроссплатформенные приложения, но это сложнее чем на JAVA. С другой стороны возможности Delphi несоизмеримо больше
+ еще куча ЯП той или иной степени экзотичности

ЗЫ. Я бы на твоем месте сейчас думал не про языки программирования
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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