我怎么感觉 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++,要容易点,但也并不是什么有手就行的极简,完全就是忽悠啊。

10438 次点击
所在节点    程序员
71 条回复
cmhonker
2022-12-30 13:34:07 +08:00
没有时代的语言,只有语言的时代。

Go 赶上了云计算、弹性计算、容器、超大规模虚拟化、调度等
Go 适合 C 、C++ / Python 转来的。
zhangtest
2022-12-30 13:42:34 +08:00
java:你是不是对复杂有什么误解?
BugCry
2022-12-30 13:44:31 +08:00
易语言就很简单了,那才叫有手就行
k9982874
2022-12-30 13:45:15 +08:00
你去看看 js ,能把标准搞明白就不错了
zhengjianyang
2022-12-30 13:49:23 +08:00
python 转过来的、感觉挺好的
musi
2022-12-30 13:55:19 +08:00
@k9982874 #4 浏览器:就算你把标准搞明白了,也不见得我就要按照标准来 (狗头
346673164
2022-12-30 14:28:18 +08:00
@zhangtest java,因为需求写过一点 go 。其实个人感觉
java 有一套框框,所有的都要求面向对象,所以很复杂,一个简单的东西需要做的“臃肿”(个人感觉用 go 实现,小且快很方便)
但是大一点的项目,感觉用 go 少了框框,比如接口实现什么的,多人协作没有统一的约定的话 反而会很杂乱。
刚刚写了一点 go ,个人不成熟的一些感受。 还有一点,go 写出来的 不需要想 java 一样 一堆 jar 包和依赖,真的很清爽
hahadaxigua834
2022-12-30 14:28:33 +08:00
go 的简单是因为他 code style 吧,做啥操作都只有几个固定写法,所以所有人写的都大差不差。

python 的简单是他的对外接口简单,语言本身封装了很多操作。

如果用 bnf 写他们的语法,python 的长度应该起码是 10 倍的 go 吧
tairan2006
2022-12-30 14:30:38 +08:00
这有啥复杂的,要不你看看 rust
Mexion
2022-12-30 14:36:48 +08:00
go 确实简单,语法简单,但是东西太少,写起来很啰嗦
securityCoding
2022-12-30 14:39:48 +08:00
该有的问题协程泄漏、内存泄漏一样都不会少
anonymous2351d00
2022-12-30 14:41:07 +08:00
@k9982874 eslint ,babel ,tslint ,prettier ,less ,scss ,postcss ,webpack ,vite ,rollup ,gulp ,各种 plugins ,各种 loader ,各种 chain ,有时候搭项目,搭着搭着就不知道自己在做什么了(完全投入到一团乱麻里无法自拔)
anonymous2351d00
2022-12-30 14:42:21 +08:00
@k9982874 什么是 CommonJS ?什么是 UMD ?什么是 ES ?疯了。
yfwl
2022-12-30 14:53:08 +08:00
确实,你说的对,我也是和你一样的感觉,但是我觉得 go.dev 里的包,大多数 99.99%没中文,没示例,完全看不懂。。。
janxin
2022-12-30 15:05:37 +08:00
Easy to learn, hard to master
linvaux
2022-12-30 15:22:07 +08:00
js 才是魔鬼的语言
boshok
2022-12-30 15:25:18 +08:00
借楼请问一下大家,有没有比 go 更容易上手且实用的,对于 coding 新手而言。
allgy
2022-12-30 15:41:25 +08:00
RUST:要不来尝尝我编译器的厉害?
qingo
2022-12-30 15:49:35 +08:00
以 C 语音为基础,go 的 runtime 绝对比 python 的 runtime 要简单很多,go 是语法简单但是,不等于使用简洁,相对来说,个人感觉 go 到 master 应该比 python 更简单。
wheeler
2022-12-30 15:49:44 +08:00
不比 python 简单吗?!

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

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

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

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

© 2021 V2EX