@Nulltiton
- Я прекрасно понимаю, что десктоп сейчас далеко не самая популярная платформа
- Я прекрасно понимаю, что подобные вопросы должны также содержать описание конкретного приложения, исходя из чего и будут складываться подобные рекомендации. Возьмем в данном случае не высоконагруженное, а просто бизнес приложение, которое работает с базой данных и выполняет некоторые расчеты (как будто про 1С пишу). Например десктоп, который есть в ближайшей франшизе вейп-шопов или кофеен (Специально обращал внимание на чем там производится работа и увидел, что это десктопное приложение). Упрощая — для малого и среднего бизнеса
- Хочу также обратить внимание на специфику нашей страны. Очень часто слышу о скором повальном переходе муниципальных учреждений на линукс, а там и частники подтянутся (хотя возможно эта предпосылка ложная). Тогда отсюда исключается C#
Итого: два самых известных enterprise языка — c# и java не подходят, так как c# не будет/ будет плохо работать на линуксе, а java — «не подходит для десктопа» (в последнее время стал часто слышать это выражение), так как час javaFX уже прошел, а ничего нового вроде не появляется.
Так вот вопрос: на чем сейчас пишут современные десктопные приложения?
Решения вопроса 0
Ответы на вопрос 11
@dimonchik2013
прежде всего на Сшарпе — все просто: десктоп значит винда, винда значит либы, либы значит Сшарп — отличаются как раз малым размером (хехе),
потом Qt / GTK/ Tcl с их портами на куда придется и куда приестся — от PyQT (наверно, самому вмнеяемому для Питона но с хз какой лицензией — уже не слежу, что там отпустили попустили допустили, о! pyside ожил свежий!) до Tk портировнного на Go — как-то изучал дела с десктоп приложениями — сам Go с десктопом и был и плохо и остался плохо, но вот именно порты Tk там из известных продвинулись дальше всего
ну и Delphi конечно, если программистов найдете )) нет, не умер, но, думаю, дорог в поддержке )
если думаете с чего начинать — рекомендую PySide, мне кажется будет наименьше число разочарований и тормозов при создании желаемого
@Lapish72
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
Если писать игру, то на С++
Там где не надо GUI я бы вообще писал на чистом С или Питоне
Переключатель раскладки клавиатуры на C#
Какая задача? Обычно пишут на чём могут, в десктопе нет такого понятия как «обычно» и «на чём обычно пишут», зависит от задачи. Под решение каждой задачи нужно подобрать язык программирования, универсального языка программирования не существует. Старайтесь выбрать такой, в котором большое комьюнити, если вы не будете работать в команде, комьюнити которое сможет помочь на SO, GitHub; и тот который максимально подходит под вашу задачу. Если вы идёте писать десктопное приложение в команду, то на каком языке вам команда скажет, на том языке вы и будете писать. Если вы не знаете что учить, что бы найти работу, то идите в объявления, и смотрите требования. Предугадать станет ли Linux популярным на Десктопах или не станет легко, нет не станет. Не при каких обстоятельствах, доказать это достаточно легко, но это уже отдельный вопрос.
Задача первична. Конкретизируйте ваш вопрос, какую задачу следует решать в будущем. Иначе вы тут получите в ответах полную кашу, так как на десктопах люди пишут на всём, чём могут. И они вам сейчас перечислят все существующие языки, включая F# или Haskell с Питоном исходя из тех задач которые они решают.
Чем выше уровень языка — тем лучше, но вывезет ли он тягу. Зависит от задачи. Конкретизируйте ваш вопрос, что за задача перед вами стоит.
@mayton2019
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
@sergey-gornostaev
@Dmtm
но зачем? веб лучше
@ignat2009
Мне самому 14 лет и я изучал с++ и перешёл на с# ради создания программ
Так что берите с# или java
Лучше c# потому что с# взаимствует у с++ эффективность и у java( точно не знаю что)
@firedragon
Вам подойдет киоск мод и веб приложение.
Очень хорошо встанет какой нибудь фреймворк mobile first.
Бэкенд на выбор C#, Java, Python, PHP
OS: Linux, FreeBSD, Windows
В общем десктоп он для сильно других задач 🙂
@HemulGM