1
huangliu 78 天前
有可能是因为功能越多,写得越花哨,就越难懂
|
2
hedwi 78 天前
go 真的挺好 不知道很多喷 go 的人都用啥先进的语言
|
3
povsister 78 天前 1
因为 go 最初设计就是,尽量抹平新手和老手之间的理解与认知 gap ,让一个团队里不同水平的工程师都可以互相合作。
简单点说就是下限和上限差别很大。这点在框架开发上其实蛮牢的,你要么接受设计者的哲学,要么就自己另起炉灶。 这可能也是 go 在社区口碑两极分化的原因,喜好的人很喜好,不喜欢的人就是不喜欢。 |
4
cmdOptionKana 78 天前 1
心智负担低啊,一切都清清楚楚明明白白。
缺点是罗嗦、不够简洁,但优点也很明显,全透明,感觉很轻。 比如 Python 或 Java 里的类和对象,给人的感觉就很“重”,总感觉背着一大坨行李,也不透明,有时夹带魔法。 |
5
thoo61871 78 天前 3
go 是世界上最好的语言
我支持 go ,你们可以打我了 |
6
LieEar 78 天前 2
我觉得最爽的是直接生成可执行文件,方便部署。docker 镜像也不到 50MB
|
7
jlak OP @cmdOptionKana 用上 AI 后啰嗦也不是缺点了,就一按 Tab 的功夫
|
9
povsister 78 天前
@jlak
老实说,写 go 也五六年了,除了业务代码 AI 有点用以外,大多数情况我体感是 AI 只能帮倒忙。 尤其在写一些很底层的部分时,由于变量名称省略较多,经常都是 1-2 个字母的变量名,然后 AI 给你写的代码光给它 debug 就要费劲很多,还容易看错。 |
10
flytsuki 78 天前 6
写过 go,还是觉得 c#舒服
|
11
csys 78 天前 2
我自己的观点,写 go 爽一个是因为并发模型,如果之前没用过这方面做的比较好的语言(比如 java ),就能体会到比较大的进步
另一个是 go 的多态实现,之前用的是传统 oo 语言,就会觉得很简单直接 最后是非常简洁,就比如 if 语句不带括号,还是非常舒服的,写 python 也挺爽的 但是 go 也会有很不爽的时候,比如错误处理,比如缺少模式匹配,比如难用的泛型和 lambda ,比如只有 interfaces 而没有 traits 另外 go 项目大了也是挺难看懂的,go 的一个风格特点是命名非常简单,项目大了以后,一些名字使用的地方和定义的地方就会隔得比较远,到时候满眼都是 ch, g, m ,就难懂了 |
12
henix 78 天前
我也觉得,心智负担低到甚至可以用记事本一遍写出可以通过编译的代码
|
13
jlak OP @povsister 那可能是因为你用的不是 cursor 吧,我用下来在补全方面非常精准,和其他补全有很大差距。
基本简单的东西都不需要自己写了,比如最基础的 err!=nil 再也不用手动写了 |
14
liuliancao 78 天前
经常点来点去的 比较像自然语言 会好懂点
|
15
body007 78 天前 6
写 go ,有啥不懂直接点进去看源码,清清楚楚、明明白白。我写 python 时候那真是噩梦,标准库点进去只看到一个定义,想看参数用法只能找文档,还生怕用错了。被 *args 和 **kwargs 支配的恐惧,就像 go 写函数传参是 func test(arg map[string]any) 一样蛋疼。
|
16
jlak OP @csys 我翻了自己几年前写的 Python oo 屎山直呼什么玩意看不懂
还好 Go 没 this ,self 简短的变量名官方规范好像是用在局部变量 像 for 里临时变量里,适用范围小应该还算可以吧 |
17
edisonwong 78 天前
1. ai 敲 tab 出来的业务逻辑大多数不能用,排查费劲。
2. go 如果加个 fea 能控制 goroutine 的生命周期就好了。我最近在写 python+django ,那报错信息云里雾里,好几行误导。python mysql client 还依赖底层文件。在一些老系统里装底层依赖真是要了老命;要 java 的话各种 o ,命名还贼长。 |
18
8355 78 天前
我的理解同一个逻辑需求大概率只有一种写法,不是很在意是否为最佳实践,其他语言在这方面包袱很重。
同时还有 Gofmt 自动格式化比较舒适,所有人的代码是一个格式,没有多余的无效引用和灰色的无用代码。 |
19
jlak OP @edisonwong 业务逻辑肯定不能交给 tab ,我觉得他适合当作 snippets ,一个自动选择的,超大 snippets 集
|
20
vczyh 78 天前 1
Build 后一个可执行文件可太爽了
|
21
dododada 78 天前
一般的业务就是业务逻辑问题,复杂的业务如果不把架构图画好再下手,你就知道 ch 里面的消息飞来飞去有多痛苦了
|
22
YunFun 78 天前 via iPhone
终于看到讨论 Go 爽点的帖了。虽然无意于语言之争,但也搞不懂为啥老是喷的。
简洁高效,快速上手,丰富的标准库,保证下限的设计,部署 easy ,这些都是有利于工程化的… |
24
bunny189 78 天前 1
go 是世界上最好的语言!!!
|
25
wsseo 78 天前
别说了。新出的仓颉也是一大箩筐。很烦杂,性能还没 go 好。
|
26
zwzwzwzwzxt 77 天前
感觉不如 rust. 理解概念之后写起来也很爽。
|
28
latifrons 77 天前
写了几年 Go 之后你再让我回去写 Java 或者什么 SpringBoot ,我都不想写。
|
29
Philippa 77 天前 3
Python 、PHP 等框架比如 Django 、Laraval 很多人都夸很好,其实这类框架非常抽象,而且很多状态在运行时改变,导致很难自定义,尤其是需要改它源码的时候。尤其是那种多重继承、getattr(self, '<I am string>') 这种满天飞,非常难以阅读,同时 IDE 分析也无能为力。当你使用它超出了它本身的功能范围,这类框架就是地狱。这个从我入行以来就非常厌恶 Django 这类框架,更别说 Laravel ,之前都是一直 Flask 为主。
Go 不仅在于非常简单,而是它设计时刻意排除掉了一些可能被滥用的大坑(继承->组合,goroutine 解决并发,gofmt 避免风格之争,和 Python 一样做什么都一种方式等等),从而促进整体开发效率、可靠性很高。这也是被人攻击的点,但我觉得 feature 很足的主流语言很多,但 Go 是少有专门做减法的。虽然语言说不上设计优美,有些甚至丑陋,但功能上没有什么大的硬伤,导致开发体验良好。 |
30
jiangzm 77 天前 1
难道写个代码还能高潮不成
|
31
chen05 77 天前
go 写了 5 年
前不久有些业务使用 python,一边写一边骂,代码追踪能追踪出几十个实现,写变量要跳转回去看看变量类型 go 的强关联虽然麻烦,但代码读起来真的是很方便,代码追踪也很准确 最初 php 换为 go,用了几周才习惯,毕竟 php 弱关联真的想怎么写怎么写,go 的什么都要先定义类型, 配合上 AI ,go 真的是 tab 工程师了 |
33
VoiceEXONE 77 天前 via iPhone
Go 应该不用过多考虑上下文吧?
|
34
cokyhe 77 天前
go 强制统一了风格,没有那么多的语法糖,看别人代码感觉就是自己写的一样~~
|
35
james122333 77 天前 via Android
go 的痛点在于反射 然而你要偷懒非得用反射
|
36
TheWalkingDead 77 天前
@chen05 python 用上 typing 也挺好
|
37
sagaxu 77 天前
丑陋的语法 + 高效的编译 + 紧凑的运行时
|
38
zx9481 77 天前
请问 go 可以写客户端吗
|
39
james122333 77 天前 via Android
|
41
chaleaochexist 77 天前
原来是些啥语言的/
|
42
jlkm2010 77 天前
go 最大的缺点就是语法太丑陋,其他方面都还不错
|
43
nikenidage1 77 天前
@jlak 额外安装 runtime 是啥意思?不是所有语言都需要 runtime 吗?你是指部署时吗? C#部署也可以打包成一个文件。
至于说爽点,太多了,一时不知道从哪说起,不过别人再怎么说都没用,还是要自己试一试 |
44
hugepizza 77 天前 via iPhone
写了几年 go 写业务逻辑的时候语法糖少会显得很啰嗦
现在写 ts 了 还是感觉 ts 更适合出活儿 代码写起来更行云流水 |
45
jlak OP |
46
Bingchunmoli 77 天前 via Android
爽的是生成文件比较小的二进制,不爽的是感觉像是在写 01 不了解生态,从 0 写如果找库比如 web 和 orm 主流的比如 gorm 感觉用着不是很舒服,感觉不如不用的感觉脱裤子放屁并没有帮助我解决快速开发反而需要因为了解框架导致不熟悉, 我觉得框架不如更进一步就像有些代码生成器一样做个插件,直接生成 crud 得了
|
47
nikenidage1 77 天前
@jlak C# 也不需要了
|
48
dcoder 77 天前
现在 Go 的错误处理方便了么?
还是得写满屏幕的 if err != nil 么? 主要就是这个难受 |
49
jlak OP |
52
jlak OP @dcoder 有 cursor 后现在方便了,err 不用再自己写,它根据项目函数自动精准生成合适的,去掉写时麻烦这个缺点后显式错误处理我觉得只有优点,对错误管理一目了然
|
53
p1gd0g 77 天前
@jlak #45
这么说吧,你要是写自己的东西,go 确实很爽,云原生。 但是像我日常都是在公司写业务,工具链什么的又不需要我关心。写业务怎么快怎么来,光是 linq 这一点 c# 就强很多了。 另外 go 写前端我也折腾过,只能说停留在爱好者的圈子,上不了台面。 |
55
arloor 77 天前 via Android
说说我,本来以 java 为生。
冲着内存占用低学了 golang ,写了点生产上的东西, 后面冲着无 gc 又转向了 Rust ,他现在是我最爱的语言。 今年跳槽,现在以 golang 为生了。我从不贬低我赖以谋生的语言,就像没人会砸自己的饭碗,除非蠢。我承认 golang 有很多独特的优点,但我也要说,golang 不是我认为的优秀的语言。 最后,作为一个多语言玩家,我不会对任何语言产生非此即彼的偏执偏激的评论。所以我很讨厌论坛里出现什么 java 味太浓的评论。 但是,就跟审美一样,我不会说服谁改变自己想法。您是对的,不要攻击我。 年纪大了,争论没有意义 |
56
p1gd0g 77 天前
|
60
tyrantZhao 77 天前
毕竟 java 又臭又长
|
62
yb2313 77 天前 2
go 的少即是多
其实是 语言 特性少了 我们 编译器 开发工作量少了 听取社区意见少了 你写 go 的时候 工作量 多了 运行时耗时 多了 |
63
niubiman 77 天前
|
64
fffq 77 天前
php 是世界上最好的语言!谁赞成,谁反对
|
66
PaulSamuelson 77 天前
go 没有那么多语法糖,学习难度低。虽然啰嗦,代码量大,但是理解起来简单。
Python ,TS ,JS ,语法糖太多了,特别是那种,一行代码实现多行操作的那些功能、语法糖,看着这行代码我都要想半天,它到底在干嘛。 例如:一行代码,循环一个数组,对数组内的值做 xxx ,把结果在提取出来放到变量。 |
67
hefish 77 天前
会不会是两个屏幕,一个写 go ,另一个在放毛片?
|
69
onikage 77 天前
几年前刚刚学习的时候一个方法里面差不多一半都是 defer 。
|
70
lesismal 77 天前
can't agree more
|
72
james122333 77 天前 via Android
|
74
yb2313 77 天前
@james122333 #72 为了避免反射使用泛型, 然后在泛型里面使用反射;使用反射的时候无法在编译时发现潜在的空指针问题, 那跟写 unsafe 有什么区别. 是因为我掌控变多了我才能这样写而不是这样写会让我掌控变多
|
75
qweruiop 77 天前
学完了 rust ,golang ,java ,python ,node 不下 20 种吧。。。回顾了下,现在自己让最赚钱效率最高的还是 c++和 python 。。。
|
76
sh3937 77 天前
请问用的啥 ide 啊
|
78
james122333 76 天前 via Android
@yb2313
当然没办法发现 你要自己写好 这在哪个语言反射都一样 你要先用 Kind()判断它的类型 指针就是 reflect.Ptr 不是则是其它的 判断是否空用其它函数如 IsNil() 判断空值 IsZero() 没有一直用 unsafe 需求 我指的是因为有指标反射变的麻烦 |
79
gowk 76 天前
一开始学编程就是学的 C#,写过的语言里面 C# 是最舒服的,Java 也能写但是十分不爽,也可能是我菜
Go 也写过,也非常喜欢,但是写业务还是束手束脚的,没有 C# 爽 |
80
dif 76 天前
我已经看到 go 、rust 、kotlin 了。然而都在说爽,没有一个说明白为啥爽。
|
81
nikenidage1 76 天前
@jlak 不是啊,aot 原生编译,不想要运行时......
|
82
jlak OP @dif 别混为一谈,我可说了为什么 go 爽,规范和简单
跳转快查 bug 简单 之前写的 python ,js 这样的动态语言,一些参数类型的修改其他地方根本不会提示,所以换到 go 后就觉得很爽,修改一处另一处直接红 类型系统也(个人)感觉比 TS 好,这点说不清为什么,TS 类型不太会写,Go 简单明了 还因为不是面向对象少了很多心理负担 还有我说用 AI 辅助强不是像其他贴那样直接把业务逻辑交给 AI ,让 AI 直接搞定整个函数 用过的人都清楚,复杂业务交给 Tab 模型简直可笑 我对 AI 辅助感到的爽是因为他解决了 Go 的“啰嗦” Go 很简单,语法很明确,易懂 但同时这点造就了啰嗦 很多地方逻辑很少,就只是固定写法 AI 辅助很好解决这点,像是个超大 snippets 集 同时因为 Go 语言的简单,有需要 AI 解决方案的时候也能轻松理解逻辑,避免盲目使用 AI 给的函数埋下大雷 对于那堆量产贴,刚开始一两还好,现在越来越多,还只写个标题毫无内容真心感觉恶心 |
84
yangyangkej 76 天前
怎么突然间多了好多写 XX 好爽的帖子,哈哈。
|
87
pursuer 76 天前
@jlak Go 能写的类型约束 TS 都能写,TS 能写的 Go 不一定能,说“Go 类型系统比 TS 好”没道理的。当然你要说 Go 简单那确实简单,不过对我来说有 TS 的复杂度可以接受。
|
88
Tianli0 76 天前
怎么感觉这么多写 XX 好爽的帖子
|
89
star574 75 天前
直接跨平台编译生成二进制,语法简单,生态也还可以,要是错误处理像 rust 一样就更好了
|
90
jlak OP @pursuer 也有可能正因为 Go 类型系统更简约让我更喜欢吧,之前主力 JS ,没怎么学就上手 TS 虽然好处是很多,但有些类型写的真的很累,开 strict 的时候很多错误根本看不懂为什么
同样没怎么学的 Go (基本只看了官方 tour of go )就能写完整的项目,看懂别人的项目,类型也完全无压力 |
91
codefun666 75 天前 1
用 C 比较多,也用 C++。
相比 Python ,Go 性能更高,开发效率比 C/C++快不少。C/C++对我也没啥难度,只是开发效率不高。 Rust 语法太恶心了,坚决不用;用 Rust 还不如用 C/C++。 |
92
layxy 75 天前
编译二进制文件小,启动快,语法简单,确实很爽,虽然也有槽点,但是让人感觉这个语言很轻量
|
93
wupher 75 天前
Pros:
- 编译,尤其是跨平台编译 - 没有坑爹的 DLL hell / Lib hell - memory / performance - simple - go routine Cons: - error code / exception handle - ORM / interfaces |
94
Subilan 75 天前 via iPhone 1
Go 的整体开发体验是好的,就是最初接触的时候总是能感到一种其设计者将他们认为好的哲学强加给开发者的感觉。但不算缺点。
|
95
vx7298 75 天前
标题对抄啊,刚看到一个写 rust 爽的,😂,,
|
98
windcode 11 天前
从 C++、Python 、Java 转到 Go ,感觉很爽,语法简单够用,没有华丽的辞藻,Less is more
|