爲什麼使用 Golang 而非 Rust 開發桌面應用?

MoonGuard 團隊選擇 Golang 而不是 Rust 作爲他們的 Krater 桌面應用程序,因爲 Golang 中更容易進行內存管理、類型安全和 ORM 支持。

使用 Rust 和 Tauri 時面臨的一些挑戰包括:

項目進行到大約 65% 時,團隊仍在努力完成需要 Rust 代碼的剩餘功能。但是使用 Wails 遷移到 Golang 使他們能夠在一個週末內移植幾乎所有的進展。

Golang 的垃圾收集、用於併發的 Goroutines、更簡單的靜態類型、GORM ORM 的可用性以及由於其年齡而更大的生態系統比 Rust 更適合該項目。

這個桌面應用 Krater 是一個跨平臺應用程序,用於在本地調試 Laravel 應用程序。Krater 的誕生是因爲我們作爲開發人員需要一個定製工具,爲 Laravel 應用程序或 PHP 項目提供更好的(本地)調試體驗。

Krater 的目標是:

在團隊中,我們有使用 Electron 的經驗,但我們事先知道它不會爲我們提供開發 Krater 時所尋求的便利。我們認識到,使用 Electron,我們將無法實現 Krater 的性能、磁盤使用和內存目標。因此,Electron 從一開始就被排除在外。

從可用的選項中,我們選擇了 Wails 和 Tauri,原因如下:

在嘗試了這兩項測試後,我們認爲這兩種技術都是有效的,最終決定由 Tauri 做出,因爲它有更好的支持、維護和在 Github 上的貢獻。

我們都沒有使用過 Rust 的經驗,這也是我們第一次接觸 Tauri。作爲一個團隊,我們接受了學習 Rust 和 Tauri 來開發應用程序的挑戰。

Krater 的開發在前幾個月進展緩慢,但到了第三個月,我們開始對語言實現功能有了更好的節奏和理解。隨着時間的推移,我們提高了步伐,直到到達十字路口。

使用 Rust 遭遇的問題和挑戰:

Rust 和 Go 比較:

經過這幾個月的開發,我們成功開發了 Krater 100% 並達到了第一個穩定版本。我們對使用這兩個框架以及我們今年在開發該產品中獲得的經驗感到非常滿意。

網友評論:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/dvZcAG1gXIbll_aQI8KYFg