Go GUI 開發者調查結果
爭做團隊核心程式設計師,關注「 幽鬼 」
大家好,我是程式設計師幽鬼。
這是第一次 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 原生工具包那樣被使用的一個因素。此外,檔案大小和分發難度均高於獲得支援的任何問題。這似乎表明,儘管許多開發人員(如前所述)在尋求支援方面遇到了困難,但他們還是設法完成了他們的應用程式。
感謝所有參與本次調查的人,我們希望資料具有洞察力,並且如果您尚未使用上述一些技術,您將考慮使用它們。快樂去:)。
原文連結:http://fynelabs.com/2022/05/03/go-gui-developer-survey-results/
參考資料
Fyne: http://fyne.io/
Gio: http://gioui.org/
往期推薦
歡迎關注「 幽鬼 」,像她一樣做團隊的核心。
- Go 開發人員最佳 VSCode 外掛列表
- 技巧:如何在 Go 中編寫準確的基準測試?
- 說好的 Swift 取代 Python 呢?
- 使用 Go 語言完成 HTTP 檔案上傳與下載
- 7 年後,發現用 Go 實現 CockroachDB 是正確的選擇
- 在 Golang 中使用 -w 和 -s 標誌
- 關於 Go1.18 新函式 TryLock 的故事
- Java、Go 和 Python 的多執行緒效能對比
- Go GUI 開發者調查結果
- PHP 正在迅速死去
- 為什麼基礎設施工程師更喜歡MySQL?
- 分享10個值得關注的C語言開源專案
- 60 個神級 VS Code 外掛!
- WebAssembly 開啟微服務新時代?
- 12 個優化 Docker 映象安全性的技巧
- 如何哄女神歡心,這個Go開源專案說的一清二楚
- GitHub 良心操作:推出僅供贊助者使用的儲存庫
- 程式設計師技術選型:寫Go還是Java?網友:Rust不香?
- 2021 年年度最佳開源軟體!
- Go 語言中包的風格指南