V2EX-最热主题 ( ) • 2022-08-08 14:40
Hanggi:

并不打算引战,单纯出于好奇。

https://github.com/gin-gonic/gin
https://github.com/beego/beego
https://github.com/labstack/echo

把前几名的 Go 语言后端框架加一起都 10 万星了。

https://github.com/spring-projects/spring-boot
https://github.com/laravel/laravel

Gin 6 万 1 ,spring-boot 6 万 2 ,laravel 7 万。
虽然不能说明一且,但至少说明很多人在用。


首先强类型语言灵活性肯定是不如脚本语言的,所以没必要争个高低,PHP 、Node.js 、Python 这类脚本语言写业务逻辑能力是最强的。

但在可维护性上,强类型语言是比脚本语言好很多,所以 Typescript 的可维护性是远胜于 Javascript 的。


回到 Go 语言,
首先要明确的是 Go 语言是一种为了最大化编译速度而牺牲语言特性的一种语言。

很多人说 Go 语言写起来痛苦,说的其实是那些理应支持的语法糖或工具函数在 Go 语言里并不提供,而需要自己去写所带来的痛苦。不提供不意味着无法实现,只是让你用最基础的语法结构去实现,换来的是更快的编译速度和非常低的阅读门槛。

对于 if err != nil 只说一句,Error 是一种值。
https://go.dev/blog/errors-are-values
(过去也有人提议加入 Try Catch ,但都被否决了)


最后,还是要看你的需求是什么,Go 语言写业务逻辑可能不是最佳选择,但确实很多人在用 Go 写业务逻辑,它的特性满足了一些人的需求,特别是在云原生领域。

说写不了的,可以把你的场景细节分享出来,
解决方案都是有的,接不接受是每个人自己的选择,但是光说 Go 语言写不了业务逻辑,又不说到底是什么场景。
谁能知道到底是 Go 语言写不了业务逻辑,还是你的编码或理解能力上有不足呢?