C/C++ 和 Go 都能生成静态链接的二进制文件,那么 Go 的优势在哪里?(无 IO 高并发需求)

2019-01-22 10:23:52 +08:00
 feng32

如题,C/C++ 和 Go 都能生成静态链接的二进制文件,那么 Go 的优势在哪里?(无 IO 高并发需求)

6888 次点击
所在节点    程序员
41 条回复
yesono
2019-01-22 13:31:24 +08:00
从运维角度,go 只依赖 glibc,而 C++ 不行,如果用到其它库 so,引用各种 so 文件,go 打包 docker 更小。C++打包 docker,各种 so 库依赖要处理。
reus
2019-01-22 14:55:43 +08:00
@ibreaker 空指针只会抛出 fatal error,不是段错误。段错误连调用栈都没的
lucifer9
2019-01-22 15:06:29 +08:00
@reus #13 这个没法写入。taglib 本身给的 C binding 就没写入的 API,自己写没那么容易。Rust 有写入 flac 的叫 metaflac,是独立实现的 你可以看看有几行
GeruzoniAnsasu
2019-01-22 15:23:43 +08:00
go 的下限刚好在 “写出没法用的代码”以上 意味着 golang 不管多傻逼的人来写,只会写出逻辑 bug,不会写出调试不了不科学不能跑的代码

c++,嚯,那就不一样了,没人知道自己写的代码对不对,只知道“在特定情况下似乎不会崩”
buhi
2019-01-22 15:31:51 +08:00
go 就是给码畜农场主用的万金油速效增肥饲料, c++就是原生态农家饲料
reus
2019-01-22 15:58:04 +08:00
@lucifer9 flac 格式都是公开的,写个 decoder/encoder 真的不难。rust 连 u64_to_le_bytes 这种都要自己写,代码多不奇怪。
这里就有个 encoder: https://github.com/mewkiz/flac
funcman
2019-01-22 18:00:24 +08:00
非 C 语言的 Native 语言,不好在工程里随便用的原因是 ABI 比较复杂,需要折腾 Wrapper。
hilbertz
2019-01-22 18:15:01 +08:00
@buhi 精屁,go 就是规定好条条框框,你只有这几种选择,所以即不会写的很烂,也不会写得很好,就是工厂化的产品,但如果有点追求的,就会很快不满足与此
blless
2019-01-22 18:42:04 +08:00
完整工具链,包括 fmt vet test benchmark,包管理方便(只要一个 git,就相当于有代码仓库)静态链接,跨平台编译 /开发,性能良好,自带 gc,协程……
c++这样一套起来也是各种条条框框,说不定还更厉害,所以我用 go
iRiven
2019-01-22 18:42:23 +08:00
go 简单
OvLOrz
2019-01-22 20:04:15 +08:00
无论你之前用 Java、Python 还是 C,都可以转 Go,无缝衔接,抄起键盘就是干
RubyJack
2019-01-22 20:15:36 +08:00
简单
young6
2019-01-22 23:20:06 +08:00
Go 是真正做到了 KISS,和 C 一样。
lynskylate
2019-01-22 23:36:47 +08:00
就一个包管理就超越了 c 艹,bazel 主流库支持的太少了。
12101111
2019-01-22 23:42:32 +08:00
@reus https://doc.rust-lang.org/stable/std/primitive.u64.html#method.to_le_bytes
另外,除了学习曲线,和编译速度,不觉得 go 相对于 rust 有优势,尤其是大型项目。
SuperMild
2019-01-23 00:26:18 +08:00
@12101111 rust 确实优秀,可是语法也确实变态,刚开始写起来很心累啊
reus
2019-01-23 08:36:09 +08:00
@12101111 既然如此,为什么现在线上跑的 rust 写的后端系统,比 go 少那么多?既然有优势,为什么不用?难道他们都很傻?
zzzhbooo
2019-01-23 09:30:15 +08:00
部署方便,不需要花过多的时间在库的依赖上,自带库丰富,社区活跃
lucifer9
2019-01-23 10:18:48 +08:00
@reus #37 这个得看背后站着的是谁。
guanhui07
2019-01-23 10:39:46 +08:00
开发快编译快

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

https://tanronggui.xyz/t/529363

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

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

© 2021 V2EX