我怎么感觉 Golang 并不简单,也很复杂

2022-12-30 13:21:19 +08:00
 passer9527

最近实在顶不住 go 的各种宣传诱惑,准备学下 go

我根据 go 的官网( https://tour.go-zh.org/welcome/1 )过了一遍 go 的语法。

第一感受就是 go 并不是网上说的那种极简、什么大道至简。不知道是不是因为一直被宣传成 go 简单,让我潜意识觉得,就是比 python 更简单才叫简单。

下面我说说我觉得很复杂的点:

  1. 指针、函数指针(闭包)等等各种指针用法
  2. interface 用法。

这两个东西组合起来,写出来的代码可以极其复杂。(感觉都能赶上以前看的那种 C 语言混乱代码大赛了)。

然后我感觉好的点:

  1. defer
  2. 并发编程和同步,就是被吹爆的 go 协程
  3. 没有 while 关键字了,都用 for 来搞定,也算变相提升了 for 复杂性。

感觉要学好 go ,写出能和人协作给人看的代码,而不是自嗨的代码,也不是一件很容易的事。也许相对 c/c++,要容易点,但也并不是什么有手就行的极简,完全就是忽悠啊。

10543 次点击
所在节点    程序员
71 条回复
zagfai
2022-12-31 18:48:37 +08:00
int 不是默认大数系统的都复杂。
geekzhu
2022-12-31 19:05:04 +08:00
@Jony4Fun #26 699 刀的那个么?
dog82
2022-12-31 19:56:07 +08:00
go 有一个非常大的难点:有缓存的 chanel ,你的脑子得像 cpu 一样运行才行
Aaron7Amelia
2022-12-31 20:00:49 +08:00
我也觉得,GO 实际上应该对于有 c/c++ 深厚功底的人来说,会比较简单。如果之前只会 Java ,我觉得要真正理解 Go 背后的原理还是需要更多的努力
Boyce
2022-12-31 20:19:26 +08:00
go 的语法,我很喜欢“支持多返回值”,很讨厌“通过大小写来控制访问级别”。
likunyan
2023-01-01 00:17:50 +08:00
现代化的语言,我觉得很不错了。
maigebaoer
2023-01-01 00:52:49 +08:00
@gowl 我最近就在看 F#,确实 beyond perfection
loloxwg
2023-01-01 01:13:42 +08:00
@tairan2006 rust 一直入不了门
AItsuki
2023-01-01 01:54:32 +08:00
go 的简单在于语法和工具链。另一层面就是特性简单,难听点就是缺失,比如很重要的范型也是最近才补上。另外还有方法重载,异常捕获等……
但是在并发编程方面我愿称之为最强……
mayli
2023-01-01 04:27:48 +08:00
并行方面…我一个 python asyncio 吊打 go 携程的实现…
Rooger
2023-01-01 16:27:39 +08:00
你对简单的确有误解,没有人规定比 XX 简单就是简单,因为你了解 Python 比较多就用 Python 比较,如果是这样,用 Python 就行啦,干嘛听别人忽悠?所以的东西都是相对而言的,说到底水平不行,看什么都是极其复杂的,语言的底层没有一个是简单的。

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

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

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

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

© 2021 V2EX