Задать вопрос
@DKENdhdhdasd

Какие есть нормальные библиотеки для gui?

Не воспринимаю css и html, есть способ сделать нормальный gui для декстопа? Пробовал fyne, но он какой-то ущербный, вес огромный после компиляции
  • Вопрос задан
  • 269 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
gscraft
@gscraft
Программист, философ
Языков с нативными (родными для языка, поддерживаемыми крупной компанией и/или авторами среды языка и/или ОС) UI-библиотеками мало. Неслучайно прошел бум Electron, Cordova, React Native, что и сейчас в ходу, наряду с перспективными Flutter и MAUI. До сих пор жив Qt, что долгое время был практически безальтернативен по ряду причин, прижившись на многих языках (в том числе несколько проектов для Go). Хорошо обстоит дело со своими UI на C/C++, C#, Java , где немало достойных решений, например, Compose, Avalonia или старожилы wxWidgets, GTK2+ и тот же Qt. Большая часть библиотек для других языков являются мостами, слоями для C/С++ библиотек. Для Go так же существуют прослойки, а «нативных» (на самом деле тоже слоев) решений для языка ничтожно мало и они любительские, едва ли подходящие для серьезных решений — разве что для каких-то своих узких задач. Решением остается прямой вызов инструментария ОС, вроде Win32 API, что едва популярно в наше время.

https://github.com/go-graphics/go-gui-projects — есть сайты-сборники, где перечисляются многие библиотеки. Но придется изучать:
  • Имеющийся функционал, стабильность и удобство
  • Качество поддержки среды, есть ли обновления и перспективы
  • Наличие документации и сообщества


— на что может уйти прорва времени на фоне решений на других языках. На мой взгляд, на сегодня, для UI одним из лучших вариантом будет C# , тем более если нужна кроссплатформенность. Хорошим выбором будут Electron / JS, Python / PySide, тем более если нужен быстрый прототип. Go — вряд ли, лично я ничего не нашел, свыше прослоек, но зачем тогда Go и трудности слабого сопровождения этих проектов? И да, в ряде случаев локальный сервер с HTML / JS — хорошее решение.
Ответ написан
@12rbah
Можно глянуть тут, но в целом го это не про то как писать десктоп с малым весом.
Пробовал fyne, но он какой-то ущербный, вес огромный после компиляции
Честно говоря какая-то надуманная проблема, даже если вес 100-200 мб, по современным реалиям это по сути ничто.
Я пару лет назад делал гуи на этом, штуки типа таблиц, деревьев, прогрессбаров, меню там есть, по сути обычный qt но на го, как по мне для 90% обычных проектов подойдет. Если хотите написать что-то типа ворда или ide, то найдите нормальный язык для gui, го не стоит для этого использовать.
Ответ написан
Комментировать
@AlekseiBadyaev
CTO, Skala Software
Вот нормальный GUI для Go: https://gioui.org/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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