粗大事了:花两天时间学习了 Go 语言,发现比 Node.js 高不知多少去了

2016 年 4 月 3 日
 xhowhy

先说感受到的先进性:

  1. 语法非常简洁,有种在学 C 语言的感觉,学习过程觉得很轻松,没有太陡峭的曲线,但语言也完全够用
  2. 自带工具就非常强大,而且各 IDE 和 Editor 都能集成,开发工具完全不是问题
    • go get = git clone + go install ,从 github 上直接 clone 下源码,编译出 .a 包文件和安装 bin 到 $GOPATH ,就可以本地任意地方使用了。反观 npm ,相信很多人不知道 NODE_PATH 的存在。
    • gofmt 代码风格统一,码农们再也不用为空格与 Tab 争吵了
    • go test 支持 benchmarks 和覆盖率测试
    • godoc 查看文档的工具。支持本地执行 godoc -http=:8080 后就能在浏览器中访问 golang.org 的本地 copy 版,对被墙的同学是个不错的选择
  3. 支持 Github ( Gitlab 等也可以)远程包,不需要发布到类似 npm 那样的地方
  4. 并发用协程和 channel 非常容易写,业务逻辑中可以尽量避免回调
  5. 部署非常简单,可以运行二进制文件,也可以通过 go get 来安装 bin ,运维起来非常方便
  6. API 稳定,据说从发布到现在语法基本没变,只是 Go 内部做了改进和优化
  7. 本人还用 Swift 写过 iOS ,发现 Swift 似乎是从 Go 身上学了不少东西。。

劣势:

  1. G...FF..WWW ,想下个 pkg 安装文件非常困难,最后是通过 brew 下载的
  2. 国内资料少(这么简单的语言,似乎也不需要什么资料)
  3. 社区小不如 npm ,国内想找个工作更是困难

不确定性:

  1. 性能与 Java 比如何,相当于什么水平

综上所述,感觉 Go 确实是一个目前比较理想的开发工具,大家一起讨论讨论,人生苦短,为何不用 go ?

56764 次点击
所在节点    Node.js
197 条回复
firefox12
2016 年 4 月 4 日
golang 的包管理思路是对的, 如果这种大量引用别人类库的东西,就应该作者负责编译出一个可执行的版本,而不是用户去负责。 我拿到一个程序,一运行 需要 200 个依赖包?有些包还找不到? 动态库带来的问题真的很复杂,它解决了大小的问题,带来了更多的麻烦。
123s
2016 年 4 月 5 日
哈哈,成也 callback ,败也 callback 。
以后用 ts 就可以解决类型问题,用 async/await 就可以去掉 callback ,什么?不够优雅?...
xshf12345
2016 年 4 月 5 日
我只是静静的看着你们撕逼
lazypu
2016 年 4 月 5 日
一定是跟女朋友打赌了,所以才发了这个帖子!
guanzhong
2016 年 4 月 5 日

可以去学习
guanzhong
2016 年 4 月 5 日

可以去学
MiguelValentine
2016 年 4 月 5 日
民科!都是民科!--王垠
youxiachai
2016 年 4 月 5 日
话说..上面那些说 npm 是中心的...要搞清楚 npmjs 和 npm 之间的关系啊...

npm 是可以直接挂 github 地址的....或者某个路径...完全可以去中心化....
geek123
2016 年 4 月 5 日
各有各的好吧。
Fontaine
2016 年 4 月 7 日
不同系统,适用的语言也各有优势嘛
magicdawn
2016 年 4 月 9 日
Node.js 玩家, go 写的少,尝试去实现 go-co , see https://github.com/magicdawn/go-co

有一些见解
1. 没有范型,很不爽。
2. defer panic recover, 其实跟 try catch throw 是一样的,换了个说法,而且 defer 必须先写,想当于 finally 部分最先写。
magicdawn
2016 年 4 月 9 日
返回值写了 interface{}, 如果确实没有返回值,必须显示 return nil
hpu423
2016 年 8 月 29 日
go 最大的问题,下载下来的包,,不能区分版本
AWSAM
2016 年 9 月 3 日
@hpu423 用 glide 就可以啦
li826049371
2016 年 9 月 23 日
golang 能开发什么?不会是像 pyton 强大的语言?
tkisme
2017 年 3 月 30 日
yuu2lee4
2018 年 3 月 11 日
现在是 async await 的时代了 逃...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/268296

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX