Go GUI 竟然有这么多。。。
共 2251字,需浏览 5分钟
·
2022-06-07 20:20
这是第一次 Go GUI 开发者调查结果。这是 Fyne[1] 和 Gio[2] 社区的开发者进行的 Go GUI 开发者调查结果。
重点如下:
高达 15% 的 Go 社区正在开发图形应用程序(GUI) 32% 的受访者选择 Go 是因为工具包而不是语言本身 Fyne 似乎比 GTK+ 和 Qt 加起来更受欢迎,而 Gio 显然比 GTK+ 更受欢迎
哪些人参与调查?
近 600 名开发人员对这项调查做出了回应,我们的目标是使用或调查将 Go 作为开发图形应用程序的语言的开发人员。由于这与 Go Developer 调查的目标受众不同,我们决定询问他们是否参与了 Go 官方的调查。
根据 2021 年的 Go 开发者调查,大约 8% 的 Go 开发者正在开发桌面/GUI 应用程序。从我们上面的图表中,我们发现 45% 的 GUI 开发人员没有参与社区调查,因此实际数字可能高达 15% 的 Go 开发人员正在开发图形应用程序!
Go 体验
我们想更多地了解用户选择 Go 语言的原因以及他们在构建项目时与谁互动。这让我们有机会了解我们的项目可以在哪些方面做得更好,从而为开发人员提供出色的体验。
显然,许多使用 Go 构建图形应用程序的开发人员已经在其他项目中使用该语言,但看到有多少人因为可用的工具包和库而选择该语言,令人振奋。50% 的人认为 Go 是一种易于使用的语言,近四分之一的人热衷于学习——这是一个非常强大的基础,我们感谢语言和工具团队建立了如此坚实的项目和社区。
我们还询问了支持,有很多地方可以获得帮助,大多数人确实设法回答了他们的问题。然而,我们看到近一半的人认为他们无法获得所需的支持——这是我们的项目必须继续努力的方向。
工具箱偏好
由于 Go 内置了对通过浏览器(HTML、模板、Web 服务等)构建网站和应用程序的支持,因此预计该领域会有很多用途。与原生应用程序(为平台 GUI 工具包或抽象编译)相比,我们决定探索有多少开发人员在使用这些技术:
正如你在上面看到的,绝大多数应用程序开发都是使用某种形式的本机工具包完成的。许多开发人员同时使用原生和 Web,但近 90% 的调查回复表示他们正在使用 Fyne、Gio、Qt 等原生工具包进行开发。我们还询问了哪些工具包已用于应用程序开发。
查看图表中最流行的 5 种技术,我们可以看到 60%(Fyne、Gio 和 Shiny)是专门为 Go 语言设计的。还值得注意的是,Fyne 和 Gio 还不到 5 年,但事实证明它们比行业领先的 Qt 和 GTK 更受欢迎,它们各自已经开发了 30 多年!
比较工具包时被问到的另一个问题是查看正在开发的项目类型,以便我们可以比较何时选择每个工具包。下图显示了五个不同的工作领域,并比较了每个工具包的使用情况。
如你所见,Fyne 和 Gio 都非常受欢迎,但更多地用于第一次开发人员、业余爱好者和开发人员探索新工作项目的选项。这种趋势类似于 GTK+ 的使用,尽管它更多地用于已建立的 Go 项目。大多数技术的使用量大体相似,尽管我们可以看到 Qt 显然对现有的 Go 开发团队很有吸引力——可能是因为它的使用时间比所有替代方案都长。
选择 GUI 技术
我们讨论的最后一部分是开发人员如何选择 GUI 工具包或库——反映对他们来说重要的事情以及它们是如何工作的。我们要求受访者根据它们对技术决策的重要性对各种因素从 0 到 5 进行排名:
虽然多平台支持对 Go 开发人员很重要并不奇怪,但我们惊讶地发现可用性排名更高。同样有趣的是,轻松构建自定义用户界面的能力被视为比生成的应用程序的 CPU 和内存使用更重要。总体能源效率(以及电池寿命)被认为是最不重要的——这可以解释为什么基于 Web 的解决方案仍然很受欢迎,尽管需要标准 Go 开发的额外技术和技能。
最后我们问,是什么阻碍了你使用 Go 构建更多图形应用程序?这又是一个选择题——“其他”选项可用,但在给定选项之外没有多少标准答复。
从这些数据中我们可以看出,运行时依赖和 C 的底层使用仍然是许多 Go 开发人员关注的问题。这可能是 Qt 和 GTK+ 没有像 Fyne、Gio 和 Shiny 等 Go 原生工具包那样被使用的一个因素。此外,文件大小和分发难度均高于获得支持的任何问题。这似乎表明,尽管许多开发人员(如前所述)在寻求支持方面遇到了困难,但他们还是设法完成了他们的应用程序。
感谢所有参与本次调查的人,我们希望数据具有洞察力,并且如果您尚未使用上述一些技术,您将考虑使用它们。快乐去:)。
原文链接:https://fynelabs.com/2022/05/03/go-gui-developer-survey-results/
参考资料
Fyne: https://fyne.io/
[2]Gio: https://gioui.org/
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。
坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio