На чем написать кроссплатформенный GUI?
=========================================

 Мне нужно каким то образом реализовать кроссплатформенный GUI под окна и линукс. Я знаю python, немного си, js, и совсем чуть-чуть ассемблера.   

Слышал, что писать можно на шарпе, можно юзать qt или node js, да даже на php (боже упаси от этих $) можно его ляпать. Так вот, вопрос: что из этого самое выгодное? Я имею ввиду и удобность написания кода и производительность. Просвятите бедного питон-разработчика, который всю жизнь писал без точек с запятой)) 

 Зависит от сложности GUI. Если простой интерфейс, для которого достаточно штатных едитов, лейблов, кнопок, комобоксов и т.д., то стоит выбрать тот, что ближе к языку, который вы лучше знаете. Если это питон (и вам не нужна особо производительность), то лучшим выбором будет Tkinter. Если JS - React Native.   

Если интерфейс более сложный, то стоит задуматься на тему серьезных в этом плане языков. C++, Delphi, C#, Java. С ними и производительность будет лучше и инструментов разработки больше (GUI).   

  

Субъективно, я могу подробнее рассказать о написании на Delphi, где в линукс разработке есть и плюсы и минусы. Из крупных минусов - не все дистрибутивы поддерживаются. А именно некоторые AstroLinux и ElementatyOS не поддерживаются из-за проблем с используемыми там версиями GTK+.  

Также, к минусам можно отнести то, что среда разработки может быть установлена только под Windows.  

Далее только плюсы: быстрая разработка, отсутствие зависимостей, мощнейший дизайнер (из существующих), нативный код и т.д. Ссылка на фреймворк-платформу (<https://www.fmxlinux.com/>)  

И, не смотря на бытующее мнение, язык и среда разработки развиваются и используются. Последняя версия среды (и непосредственно языка) вышла во второй половине этого года. Имеется Community версия для бесплатного использования <https://www.embarcadero.com/ru/products/delphi/starter> 

 Самое выгодное - это то что вы лучше всего знаете.   

Если важна производительность то берите С++ или другой компилируемый язык. Но это на самом деле сильно зависит от задачи, где-то и python с php вполне хватает. Сам по себе GUI не требует особой производительности (если вы обычное приложение пишите, а не игрушку на 120FPS).  

Можете юзать Qt на python и не слезать со своего любимого коня. 

 про питон ничё не знаю (но вроде крутой), а вот фреймворк Qt очень даже интересный. Но там лицензия просит выкладывать исходник по требованию.  

  

Как коммерческий разработчик я вообще щас стал сторонником бинарников проприетарных. Всё, что не бинарник = для меня плохо.  

  

Но себе на комп ставлю всё открытое на исходниках, всё что чёрный ящик = плохо, опасно :D 

 Ну раз питонист, то проще всего будет с каким-нибудь tkinter или pyqt.  

Если смотреть на другие языки, то, имхо, удобнее всего будет на шарпе+Avalonia.  

Ещё можешь посмотреть в сторону flutter.  

Ещё сюда обязательно должен придти [Hemul GM](http://qna.habr.com/user/HemulGM) и посоветовать Delphi - в принципе тоже неплохой вариант, если смотреть на преимущества (компактный бинарник, достаточно взрослые инструменты, экосистема)  

Ещё какой-нибудь Electron и React native вполне удобные, если с фронтендом знаком. 

**C++:**  

GTK+ и QT (**НО!** есть биндинги для многих языков)  

**C#:**  

- GtkSharp,   

- Avalonia, Xamarin/MAUI  

- Unity (но мало готовых контролов)  

**Delphi**   

RAD Studio  

**JS:**  

- Electron, React native  

**Python**  

- Tkinter 

 Еще такая штука появилась не так давно - <https://www.jetbrains.com/lp/compose/>