@Habrahabren

На чем лучше написать Desktop приложение?

На чем лучше написать Desktop приложение?

Electron.js хороший вариант, с ним разработка идет быстро благодаря тому, что весь интерфейс пишется на HTML, CSS, JS, а бек - Node.JS. Однако очень сильно хромает производительность, к тому-же сомневаюсь, что он кроссплатформенный для всех версий винды.

В целом, необходимость в написании Desktop приложения, который будет доступен для всех версий Windows (без установок доп. компонентов для пользователя), а так-же необходимо, чтобы были возможности написать хороший UI (Необязательно web ui, но это бы сделало разработку удобнее и быстрее). В какую сторону двигаться? Какой язык или платформа для этого подходят лучше всего? Желательно что-бы производительность так сильно не страдала, как в случае с Electron.js.

Спасибо за ваши ответы
  • Вопрос задан
  • 1177 просмотров
Решения вопроса 4
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
  • .Net + C#
  • Qt + C++

Оба варианта будут отличным выбором. Да, у обоих есть свои минусы и плюсы, но в целом под ваши задачи отлично подходят.
Ответ написан
Комментировать
@rPman
Нужно больше информации, что именно за приложение и какие из 'аспектов десктопности' ему нужны.

Например, если нужно много формочек, к примеру для работы с данными в базе данных (наполнение, поиск, просмотр, анализ), без особой стилизации интерфейса, то я рекомендую (как бы я не ненавидел майкрософт) - microsoft visual studio + .net + WinForms. Запросы в базу данных лучше создавать в других инструментах (благо есть соответствующие ... студии). Есть разные фреймворки и среды разработки для данной задачи но такого удобного и эффективного (по затратам времени на разработку) лично я не видел. Благодаря некоторым усилиям сообщества и слабого противодействия майкрософт, такой код оказывается еще и кроссплатформенным, т.е. мало того что приложения можно запустить на win/linux/mac (с оговорками, особенно лицензионная чистота, например установщика приложения) так еще и сама среда позволяет создавать так же удобно приложения для веб (.net asp, но я это направление настоятельно не рекомендую). Что касается версии, то если изначально приложение писать для 3-ей версии .net фреймворка, то оно сможет запускаться даже на winxp (с оговорками можно 4-ую). Еще момент, про который многие забывают, приложения .net могут разрабатываться (и это поддерживается visual studio) не только на c# но и на .net managed аналогах как vb.net, c++.net, f# и даже python.net (но нужно помнить что это языки, синтаксически совместимые с оригиналом, но подключить какой то модуль без портирования и пересборки не получится). Есть недостатки, попробуй любого разработчика .net попросить решить проблему мерцающего контрола (например грид или ричедит), плюс это не самый шустрый фреймворк и clr виртуальная машина дает о себе знать а еще многословность как в java...

Для c++ безоговорочный лидер рекомендаций - qt, кроссплатформенный и очень быстрый и удобный фреймворк (не только интерфейс). Конечно не получится лениво возекаться с мышкой как в ms vs.net но результат тоже будет хорошим.
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Если интересует только винда, то лучшим решением пожалуй будет C# и если нужна поддержка старых версий винды, то с WinForms.

Насчет Electron.js - хорошее решение с низким порогом входа, работать будет не только на большинстве версий винды, но и под Linux и Mac. А насчет его производительности - эта байка идет не из-за того, что Electron медленный, а из-за кривых ручек большинства тех кто на нем пишет. Если писать нормально, с пониманием асинхронной природы JS, с вынесением бизнес логики в бэк часть и с асинхронным общением между бэк и UI частями - все будет работать достаточно быстро.
В комментах к вопросу упомянули VSCode - хороший пример как готовить Electron правильно.

Еще можно посмотреть в сторону tauri. UI пишется на веб технологиях (HTML, CSS, JS), бэк на Rust. Приложение будет гораздо легче, чем Electron и потенциально будет работать быстрее (хотя быстрее - это вообще мало от платформы зависит, кто и как пишет код тут гораздо важнее).
Тут нужно учесть 2 момента:
1. Если Вы никогда не работали с Rust, то в этот язык чуть тяжелее влиться чем в другие.
2. Tauri использует нативный WebView для UI, а значит придется учитывать кроссбраузерность.

Еще варианты:
C++ + Qt
Python + PyQt
Java с ее окошками
Ответ написан
Комментировать
demon416nds
@demon416nds
Разработчик на чем попало
если приложение относительно простое по функционалу lazarus в помощь
и разработка быстрее и кросплатформенность на уровне и быстродействие вполне ничего
зы сейчас конечно набегут паскалененависники но не существует больше ни одной RAD с таким удобным интерфейсом
им бы еще прикрутить транскомпилятор для поддержки сишного синтаксиса как в билдере и тогда у большинства претензий вовсе не останется
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
axifive
@axifive
Software Engineer
Можете посмотреть в сторону QML или WinUI
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы