Выбор инструментов для разработки кроссплатформенных десктопных приложений с современным дизайном
Вопрос по своей сути довольно фундаментальный. На мой взгляд, современное изобилие нативных инструментов, библиотек и фреймворков ощутимо повышает порог вхождения и является источником подобных вопросов.
Предположим, разработчику поставлена задача: написать кроссплатформенное (Linux, Windows, macOS) приложение с современным интерфейсом.
Прежде всего, как я понимаю, необходимо определиться с основными инструментами и языком. Из требований изложенных выше следует, что:
- Во-первых, использование нативного
API— WinForms и, например, Cocoa, — как и систем наподобие WPF, попросту не представляется возможным из-за зависимости от конкретной платформы. - Также использование Windows Forms невозможно из-за несоответствия к требованиям построения современного интерфейса программ (хотя в данном случае, возможно, корректнее обобщить, потому что базовые графические элементы всех операционных систем — виджеты — очень ограничены в отношении кастомизации).
Получается, как минимум нужно использовать какой-то фреймворк. И тут возникает другая проблема — высокая насыщенность. К примеру, можно использовать Qt с QML, GTK (не уверен, что он поддерживает что-то кроме виджетов) либо вовсе Electron. Так вот, первый вопрос — на чем лучше остановиться? Может, существуют определенные стандарты в индустрии или критерии, согласно которым производится выбор подходящих инструментов.
А второй заключается в выборе языка, а именно: интересуют нюансы, с которыми придется столкнуться. Скажем, Qt в связке с C++ позволяет собрать программу, которая будет зависеть только от наличия библиотек самого фреймворка. Но ведь в том числе можно использовать Python, правда, видимо, в таком случае программы обычно не собираются (они распространяются в виде исходных кодов?), при этом появляется дополнительная зависимость от Python.