Go 语言真的有这么破烂不堪吗

87 天前
 jlak
前言:
第一次认识 Go 在十几年前了,当时玩着 Python
从那时候印象(没看过代码)里就一直非常好
感觉速度又快又简单
直到最近才开始上手,体验是简单到超乎我的意料
然后感觉深刻的错误判断非常非常的繁琐
几乎每个函数里需要写多个 err!=nil
对于我这种只会写写简单代码的 err!nil 有时超过业务逻辑
但这好处也很大 几乎将所有错误都归到了可视范围

正题:
自从开始正式关注之后,知乎 App 就开始推送大量的 Go 问题的回答(我没有在知乎上关注,应该是根据大数据)
其中绝大部分都是喷 Go 的
而且这个量非常的大 每天都会收到多篇
范围涵盖了 Go 的方方面面
这个量远远超过了我同样关注的 JS/Node
一开始不当回事 但是每天这么多推送
不禁让人重视这个问题
13856 次点击
所在节点    Go 编程语言
125 条回复
dobelee
87 天前
这么多年,喷来喷去就是 err 和泛型,我都看腻了。请换点新花样。😅
james122333
87 天前
@jlak

[]泛型还可以
协程 go 的最方便
运行效率部份很多时候只是标准库实现的并不高效而已 而 gin 刚好就用标准库的
orm 可以自写 map 只有一个痛点那就是 for each 的时后键值要自己排序否则乱序 其实也还好
james122333
87 天前
运行效率再举例 很多人范例和人很爱用 fmt 包 其实这包做了很多其它事 也透过实时反射比较低效方式 明明有时候只是要列印出字串
这时候直接用 println()会是更好的选择
duluosheng
87 天前
Go 语言本身很简练,生态在慢慢丰富。
james122333
87 天前
我还是觉得 go 应该要有第三方标准库
yu1miao
87 天前
Go 泛型从 2010 年 6 月到最终落地足足有四五个不同的实现版本。
早期版本引入新关键字 contract ,直到 2020 年官方宣布放弃 contract 而采用 interface 关键字来实现(也就是 FGG/FG 方案)。
顺带一提,FGG 方案的作者,也是 Java 泛型的作者🤣
interface 方案相比 contract 进行了大幅简化。除了 interface 定义,几乎没有引入什么新语法,对 caller (client) 来说完全无感、也不需要修改任何代码(编译器自动完成类型推断);
而且所有泛型都会在 编译期 被消除,实现了极致的向下兼容。
单说泛型这块,实在没什么可嫌弃的
james122333
87 天前
@yu1miao

我觉得差强人意
mengzhuo
87 天前
Rust 就一点……编译太 TM 慢了,经常要 5 分钟以上……我这还是 16 核服务器 128G 内存啊,开发板上更慢了,1 小时打底……

Go 能基本能写完就编译好,然后开始跑测试,实验
泛型,老子写业务代码基本不用,麻烦,不如 interface 方便。
库作者自己头疼并折腾去。
Mandelo
87 天前
一个工具,天天被喷烂,还没被淘汰
说明它其他方面很优秀
不懂 go 的路过~
chaleaochexist
87 天前
我学啥 啥被喷
学 python 说 动态语言一时爽, 代码重构火葬场

现在不做 python 了做 go 还不行吗?

依然被喷.
jianchang512
87 天前
Go 的最大缺点是学习曲线不够陡峭,导致太容易入门,逼感不够(doge
greenhandlwh
87 天前
@jianchang512 竟然有点道理
weiwenhao
87 天前
有一些语法诟病但瑕不掩瑜,golang 拥有顶级的跨平台编译,垃圾回收,协程, 兼容性。
jackmod
87 天前
书写简洁,自动管理内存,静态链接机器码,vendor 锁死版本依赖。
真没有几个比 golang 还要紧致的了。
leonlx
87 天前
好像是 C ++之父说的吧,世界上只有两种语言:没人用的和广受诟病的
Leviathann
87 天前
@yu1miao philip wadler 伟大 无需多言
Trim21
87 天前
我是不明白为什么有人反对 go 的泛型用中括号的。难道之前没用过 map 用吗?


@yu1miao 有个槽点是接口泛型可能会导致调用接口的时候变慢…
emSaVya
87 天前
@kenvix 异常不就是处理错误的机制吗?外层不就是在调用处判断吗?这跟 if err 有啥本质区别?难道说就要积累几层调用链 不管是 CE 还是 Runtime Error 都堆到一个地方处理?我不确定这样写的能过 cr 。
laohucai
86 天前
写命令行程序不二的选择
jaynsw
86 天前
系统开发的不喜欢它有虚拟机 再就是异步调用被 gorouting 抽象掉了 没法利用系统调用优化 在应用开发领域 个人觉得 node js 更优 语法也更强大

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

https://www.v2ex.com/t/1064987

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

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

© 2021 V2EX