从开发者的角度,非常讨厌 Go 语言的语法,极其讨厌,所以至今不愿意去学,也不愿意去用,新项目宁愿守着 java 、kt 。
从使用者的角度,非常喜欢 Go 语言开发的各种软件,非常喜欢,零依赖的一个 binary 太他妈的好用了。
Go 这坨屎真的让我很纠结很矛盾。
1
Bazingal 2021-08-08 23:45:21 +08:00 4
试试 C#?
|
2
falcon05 2021-08-08 23:48:35 +08:00 via iPhone
习惯就好
|
4
jpacg 2021-08-08 23:51:03 +08:00 10
不是语法讨厌,是你根本不愿意去学,要是让你去学 Rust,你更不会了
|
6
janxin 2021-08-09 00:05:51 +08:00 via iPhone
Go 的语法简单的很,一天就学会了,没什么好学的…
用不用就看人了 |
7
cmdOptionKana 2021-08-09 00:12:25 +08:00 via Android 1
这完全谈不上人格分裂吧,当作比喻都不贴切。我不爱制作衣服,但我爱穿衣服,不爱烹饪,但爱吃美食,很正常。
|
8
BeautifulSoap 2021-08-09 00:25:12 +08:00 via Android
为了区区一个语言的语法就被折磨得人格分裂了 lz 也是真的。。。。语言就是去用的,如果有需要的话语言什么语法自己去适应就行了,不过一个工具罢了。搞不懂语法怎么就成了不愿学的原因,就好像说我不学日语就是因为日语那反人类的敬语语法一样。实际上单纯就是没兴趣不愿学罢了
|
9
namelosw 2021-08-09 00:26:41 +08:00 4
我能理解。
说明还有一个没被很好满足的市场,就是写起来像 Kotlin,有语法糖有抽象,发布出去像 Go / Rust,不像 Go 那么简陋,不像 Rust 零成本,有 GC,没虚拟机。 其实有很多类似定位的语言,比如 Julia,Crystal,Nim 之类的,也有 Scala Native 之类的改装,但是这些还没有像 Go 这么成功。 |
10
freakxx 2021-08-09 02:32:41 +08:00 4
粗鲁地说,
你这就是叶公好龙。 你不愿意去懂语言的美感,从而对不同语言的美体会不到。语言就在那,没必要捧一踩一。 要对语言的一些问题,也是在指定区域内去吐槽或者批判,这样的说法完全就是显得自己的无知。 又,在公共区域讲一个大而泛之的东西,而又很主观的东西,且这个事情可能会冒犯到别人,是一件很失格的事。 |
11
auh 2021-08-09 02:46:28 +08:00 4
我个人理解,对象本质是状态和行为。从表现形式上,java 拘泥于繁杂的形式,python 的语法表现要更加出色一点。go 的话,简直就是直击本质。
|
12
agagega 2021-08-09 02:48:01 +08:00 via iPhone
你这两点是正交的,完全可以存在一个语法糖多+部署方便+工具链丰富的语言
|
13
Leviathann 2021-08-09 03:07:38 +08:00 via iPhone
@namelosw 也许 n 年后的 kotlin native 可以🐶
|
14
woctordho 2021-08-09 03:08:54 +08:00 via Android
@namelosw Julia 的定位不是打包发布的吧,它必须带着 100 多 M 的 runtime,包括一整个 LLVM
|
15
dcoder 2021-08-09 03:18:18 +08:00
Go 在工程上确实很成功
|
16
aliveyang 2021-08-09 06:46:49 +08:00 4
傲慢与偏见
|
17
meinjoy 2021-08-09 07:19:12 +08:00 via iPhone 3
和楼主一模一样,刚接触到 go 的时候就觉得这语法是不是有病,但又特别喜欢它的高效率,用别人的程序爽的一批,自己写又特别抓狂,到现在基础语法都得 google
|
18
initd 2021-08-09 07:33:13 +08:00
我们俩都不认同楼主,我 和 我搞不懂一个重运行时的老语言,一个仅语法糖构建的新语言,有什么好学的?连 IDE 为了缩写 都设置了 语法糖,悅!
|
19
pengtdyd 2021-08-09 07:42:36 +08:00 1
无知。你要学 rust 你不光人格分裂,还有 T 楼的冲动
|
20
WillBC 2021-08-09 07:58:09 +08:00 via iPhone
老老实实用 Ruby 吧。
|
21
fiypig 2021-08-09 08:18:41 +08:00
我从 PHP 到 Go 还是蛮喜欢 Go 的
|
22
vincentxue 2021-08-09 08:21:07 +08:00 1
当楼主发展到真正明白“语言只是解决问题的工具”的时候,语法什么的其实已经不重要的,你看到的是这个语言解决了什么问题,适合解决什么问题,然后在多种语言之间切换以解决不同的问题。
|
23
Cbdy 2021-08-09 08:31:38 +08:00 via Android
java 、kotlin 也可以“0 依赖”一个 binary 呀
|
24
yousabuk 2021-08-09 08:32:27 +08:00 via iPhone
我靠,一样一样的
|
25
cokyhe 2021-08-09 08:53:25 +08:00
go 没有多余的语法糖,看别人代码不费劲,这才是我喜欢的
诟病也有,比如满屏的错误处理,习惯了也就那么回事 |
26
sunjourney 2021-08-09 08:57:19 +08:00
@jpacg #4 go 的语法是真的讨厌。所有语言里,除了 PHP 写的最别扭的
|
27
jonathanchoo 2021-08-09 09:05:44 +08:00 1
就这 还要发一帖
|
28
iold 2021-08-09 09:06:23 +08:00 via iPhone
go 语法丑? PHP 是世界上最好的语言
|
29
wangxn 2021-08-09 09:07:02 +08:00 via Android 2
你不喜欢 Go 只是因为潜意识里觉得它挑战了 Java 的地位,二而 Java 是你吃饭的家伙,这让你感到不爽。
|
30
araraloren 2021-08-09 09:08:18 +08:00
我也不喜欢 go 的语法,所以学了 rust
|
31
namelosw 2021-08-09 09:09:21 +08:00
@woctordho 看了一眼 Julia 好像的确是没哟 standalone executable 打包… 有点震惊。
不过我理解按照 Julia 这种模型,应该不难加。 看了看有一些人想要这个 feature,但是讨论完之后是低优先级。 |
32
kosgug 2021-08-09 09:10:37 +08:00 via iPhone
开始讨厌,越来越喜欢
|
33
jorneyr 2021-08-09 09:10:39 +08:00
开始我也不习惯 Go 的语法,自学一次学完语法后因为没用就放下了,后来用 Go 搞 K8S Operator 完成一个项目后,一切都自然了,信手拈来。
|
34
young 2021-08-09 09:12:23 +08:00 1
又一个无知的沙雕“开发者”,唉~,b 了
|
35
CodeCodeStudy 2021-08-09 09:12:48 +08:00
@sunjourney #26 PHP 怎么别扭了,语法跟 JAVA 差不多
|
36
2kCS5c0b0ITXE5k2 2021-08-09 09:13:58 +08:00
Golang 语法很简单. 但是错误处理太麻烦了.
|
37
Carlgao 2021-08-09 09:14:17 +08:00
除了大小写字母区分权限,其他觉得都挺好的,1.18 泛型就出来了,到时候会更香。
|
38
anzu 2021-08-09 09:15:40 +08:00
go 作为一个较新的语言,第一版的包管理简陋得仿佛是上个世纪的产物,我来回看了几遍确认没看错。
|
40
kssss 2021-08-09 09:25:22 +08:00 via iPhone
💩你还用?不嫌恶心吗
|
41
RedFlag2233 2021-08-09 09:31:12 +08:00
试试 Rust
|
42
loveuer 2021-08-09 09:32:25 +08:00
都是先入为主罢了,,,我开始就用的 golang, 现在反过来让我学 java, 我也同样觉得超级恶心
|
43
agagega 2021-08-09 09:50:47 +08:00 via iPhone
把这个楼里面的 Go 替换成微信,Java 替换成 QQ,一点违和感都没有。Go 就是编程语言界的微信这话还真没毛病。
|
44
chouchoui 2021-08-09 09:58:44 +08:00 5
谷孝子说法越来越多了,还语言的美感……
if err != nil 的美感吗 |
45
zxCoder 2021-08-09 10:02:10 +08:00
很正常,语法确实傻逼,不过萝卜青菜各有所爱,也有人特别喜欢 go 的语法
|
46
c88155745 2021-08-09 10:03:48 +08:00
Go 语法不挺好的,个人感觉比 Java 好多了,有舍就有得,非要较真 Java 那点语法就是固步自封了。
|
47
GM OP @freakxx #10
这样就上纲上线? 你从来不讨厌任何东西? 你从来不公共场合吐槽任何东西? 你吐槽别的东西的时候,是不是也是很主观? 你吐槽别的东西的时候,不会冒犯到别人? Go 的语法非常的 old style,公认的丑,这是公认的事实,我现在又说一遍而已,怎么就成了“很失格的事”? 本帖下面其他的用户的观点,我都一一看过了,大部分还是很中肯的。 你的例外。 |
48
whyso 2021-08-09 10:09:43 +08:00
从开发者的角度???从 java 、kt 语法的角度!!!先入为主罢了,如果先出现的 Go 后 Java,你会不会也这样说 Java ?
|
50
barbery 2021-08-09 10:16:23 +08:00
就这???
|
51
GM OP @whyso
简单回答:不会。 证例:Pascal 、Objective-C 比 Java 早出来 N 年,并且我学习、使用 Pascal 、Objective-C 的时间也比学、用 Java 早了 N 年,但是我依然觉得 Pascal 、Objective-C 丑多了。 |
52
pkoukk 2021-08-09 10:18:46 +08:00
多用几门屎语言你就没这种洁癖了
|
54
LoNeFong 2021-08-09 10:21:35 +08:00
能展开说说 Go 语法哪里让你不舒服了吗
|
55
metrue 2021-08-09 10:22:15 +08:00
个人觉得 Go 的语法已经非常的简洁了,心智负担积极的低。
|
56
xz410236056 2021-08-09 10:24:47 +08:00
“非常讨厌 Go 语言的语法” 我以为有什么高论呢。。。弄半天 java ??? 喜欢啰嗦一大堆?
|
57
xz410236056 2021-08-09 10:27:08 +08:00
@emeab 按设计者思路是有错误马上处理,故意这么搞的还拿 java 举例子说一了一遍。但是很多框架用了闭包又给收集到一起了
|
58
xz410236056 2021-08-09 10:28:00 +08:00
@anzu go mod 之后还可以
|
59
x940727 2021-08-09 10:44:08 +08:00 2
Go 的语法不是公认的简陋(语法糖比 Java 还少,抽象能力弱,和脚本小子一样)和有缺陷(异常和泛型 [下半年要出来了] )吗?目前语言工程性 Java 说第二有啥语言可以说第一吗?难道是 Go 吗? Gopher 都快搞的 Go 和个邪教一样了。非要说 Go 的语法叫大道至简才行?叫简陋就不行?另外一个帖子说的就很好,Go 是让大家写的代码都像屎,就没人会说你写屎了……
|
60
lysS 2021-08-09 10:46:21 +08:00 1
|
61
x940727 2021-08-09 10:49:48 +08:00
@xz410236056 如果你是写框架的人,你还不是会把异常往用户侧抛?没有什么区别,Go 的这个 err 就是丑……又不是只有 Java 程序员在吐槽。不是有个段子说 50 万行代码,10 万行都是 err!=nil?
|
63
rayw0ng 2021-08-09 10:51:04 +08:00 2
不要一直待在舒适区里。学就学让你极度不适应的语言,比如 lisp,比如 rust 。Java 确实好,Kotlin 更香,可是 JVM 实在是太大了,微服务没戏。
|
64
MiniGhost 2021-08-09 10:57:36 +08:00
每个语言都不是完美的,都是有缺陷的,要结合场景去聊语言,才是有价值的
就好比用菜刀削水果,说菜刀辣鸡不好用,有价值吗? |
65
chanchancl 2021-08-09 10:59:45 +08:00
工作上 C++/GO 都会用到
个人写的 C++更多,但更喜欢 GO 所以不太理解 LZ 的痛点具体在哪里 |
66
Akiya 2021-08-09 11:04:03 +08:00 2
我现在就在写 go 赚钱,屎就是屎
只能说中国人对 google 的崇拜是 google 自己都没想到的 |
67
yejinmo 2021-08-09 11:05:03 +08:00
其实 C#也是可以单文件不依赖框架发布的。。
|
68
3dwelcome 2021-08-09 11:05:59 +08:00 via Android
我和楼主有相同的感受,在不同语言之间切换,脑子用不过来,最好是一个语言走天下,一把榔头敲世界上所有的钉子。
我知道不可能,但幸亏 JavaScript 比较落后,大家发明了 TS 前端编译。 于是我就可以开开心心把别的语言语法,转义到 JS 上了。 |
69
GM OP @LoNeFong #54 很多,我就不展开说说了,想知道的自己搜一下,吐槽 Go 语法的又不是我第一个。
@metrue #55 语法简洁是简洁,但是丑也是真的丑,两者并不冲突,可以同时并存。 @xz410236056 #56 本帖就是吐槽,不喜欢你可以 CTRL+W 关闭走人,我还以为你有什么高论呢,原来也只是吐槽? @MiniGhost 我可没说 Go 没价值,你看我第一句话就是“非常喜欢 Go 语言开发的各种软件” |
70
GM OP |
71
heiheidewo 2021-08-09 11:10:27 +08:00
这特么也能水一贴
|
72
qW7bo2FbzbC0 2021-08-09 11:10:57 +08:00
@namelosw #9 net core
|
73
GM OP @heiheidewo 上班不就是摸鱼吹水+水贴吗?手动 /doghead
|
74
yejinmo 2021-08-09 11:14:36 +08:00
@GM
为啥理论很难做到 我们公司目前所有的产品发布包括 docker 发布全都使用的是单应用不依赖框架模式,没有任何问题 .Net Core 已经是过去时了,最新的版本是 .Net 5,还有 .Net 6 Preview 比较古老的产品还在使用 .Net Core 3.1 做单应用发布,主流产品已经切换到了 .Net 5 了 |
75
iyear 2021-08-09 11:16:52 +08:00
err 我现在也有点烦起来了,但是做分发和开源工具、网盘类实在是太舒服了,尤其是想拿出去卖,py 必须给源代码。java 肿的对方都不想要。
|
76
Keyes 2021-08-09 11:19:16 +08:00 via iPhone
写了这么多年各种语言,还是觉得 c#为最终王者
go 当成 c 写就好了 至于 java 嘛,去掉 import 代码行数还剩 1/3 哈哈哈哈,主要是太啰嗦了,但是这种死板的写法很适合多人团战 |
77
surbomfla 2021-08-09 11:21:21 +08:00 via Android
我倒希望讨厌 Go 的人越多越好,要说像某个叫好不叫座的语言那样,那 Go 的未来就不太好说了
|
78
xx6412223 2021-08-09 11:22:45 +08:00
不知道有没有用 go 写大型工程的。比 java 开发效率和可读性差
|
79
ragnaroks 2021-08-09 11:25:49 +08:00
见过不少 php 转 go,过几个月又转 java
既然有人喜欢用 go,能用 go 产出解决方案,那么 go 就有了存在的意义 |
80
iamthegrad 2021-08-09 11:31:20 +08:00
不要神话一门语言,也不要贬低一门语言,语言就是一种工具,使用工具好坏在人
|
81
freakxx 2021-08-09 11:45:32 +08:00
@GM #47
有趣。 上纲上线你什么了,哪句? 你说的这些问号,没有哪句说不行,关键在于就像你在这楼说的,跟你表现出来是两码事。 就像,你可以说你不喜欢臭豆腐,你私下也觉得他闻起来有”屎“味,但你讲的时候,你得看下场合。 你当然可以说,我就是 keep real,我觉得像屎,在哪我都觉得是。 那你开心就好。 另外,你说的这个公认也是一个有趣的事。 我说“很失格的事”,是指,你说你讨厌 go 的语法,但你又没说明他讨厌,丑在哪,然后直接糊一句,Go 这坨屎, 这样的话,不失格? 你附楼所说非但不能验证你没口出狂言,更能说明,你对待事物的态度确实是挺傲慢的。 |
82
gamexg 2021-08-09 11:52:03 +08:00 1
以前也很讨厌 go 语法,真的学习了,发现真香
|
83
sanqian 2021-08-09 11:53:57 +08:00 1
你试试 Flutter
|
84
GM OP @freakxx
哪句?哪句???帮你挑出来吧,免得你不识庐山真面目只缘身在此山中。 “叶公好龙”、“显得自己的无知”、“讲一个...,是一件很失格的事”。 至于 Go 的语法是不是公认的丑,自己百度一下不就知道了?一大堆人在吐槽,说明有大量的人觉得它丑,这个事实很难直面吗? 搜 “go 语言语法 丑” 自己去看那一堆吐槽文章。 觉得中国吐槽不算数?那搜一下 “go lang ugly”,看看是不是只有中国人觉得它语法丑? 这个事实很难直面吗? |
85
v2orz 2021-08-09 11:58:36 +08:00 1
我的体验跟楼主 不能说很像
只能说一模一样 写的时候捏着鼻子 不过,部署运行的时候感觉要起飞 |
86
tabris17 2021-08-09 12:05:53 +08:00 1
go 语法的确丑陋,但又不是不能用 /doge
|
87
GM OP @yejinmo #74
因为你们只做服务端,所以容易就做到了,你用 C# 开发桌面端试试看...... 而且这里有个悖论: 最容易单体发布的服务器端,实际上不怎么需要单体镜像。实际上 docker 打包就完事了,是不是单应用无框架依赖根本不重要,大不了自己打一个预安装好框架的基础镜像包。 桌面端才是最需要单应用无框架依赖的,但是偏偏又是最难做到的。 |
88
Rache1 2021-08-09 12:50:07 +08:00
给我的第一感受就是这玩意儿很考验写的人的代码组织能力
|
89
zaczhou 2021-08-09 12:59:28 +08:00 1
没有泛型和 if err != nil 感觉这是最难受的
|
90
EscYezi 2021-08-09 13:08:30 +08:00 via iPhone 1
其他的感觉还好,没有泛型写业务逻辑很难受。
不过 golang 还是有爽点在的,如果 golang 和 java 两个语言的优点可以结合起来那就太香了 |
91
kg2019 2021-08-09 13:25:01 +08:00
有精通的吗???
|
92
xmge 2021-08-09 13:39:30 +08:00 2
先用的 java,后用的 go,不再想写 java 。
原因: 不想写那么复杂的配置文件,注解。。。 文件包的命名台麻烦了,com.xxx.service,go 中是啥就是啥 service 直接写函数等等 |
93
vjnjc 2021-08-09 13:41:32 +08:00
比如 stackoverflow 是 c#写的,我虽然不喜欢 c sharp,但对于 stack overflow 提供的服务还是真诚的感谢
|
94
xz410236056 2021-08-09 13:47:52 +08:00
@GM 你讨厌 go 的语法说他是屎,问题是 JAVA 的语法就不屎了吗,写个非常简单的功能先搞个类再啰嗦一大堆。这就是我想表达的
|
95
xz410236056 2021-08-09 13:51:16 +08:00
@EscYezi 现在有空接口。1.17 支持了泛型
|
96
ChrisFreeMan 2021-08-09 13:57:46 +08:00
最近尝试用 Go 重写之前的 C#代码,我很喜欢 Golang 的简洁,无论是语法还是工程目录,对比 dotNet core,编译速度很快,这个很棒,尤其是开发一些需要展示效果的程序的时候,可以很快就看到结果,速度几乎就比 Python 慢了一丁点的感觉,还有现在的 golang 的官法域名似乎从 google 域名中独立出来了,不知道我有没有记错,我记得之前是在 Google 的子域名下了,这个很棒, 似乎是刻意的淡化了 Google 的存在感,表示这是社区语言(起码表面上)。dotNet core 无论是项目还是文档处处都有 Microsoft 的身影,无时不刻的提醒你这个语言是属于微软的,虽然它也开源了。总之我在尝试中,我没有打算以后都切 Golang,说不定哪天遇上无法解决的痛点又切回去了
|
97
NoDocCat 2021-08-09 14:04:59 +08:00 1
语言只是工具没错
但是你们谁会拿螺丝刀拧水龙头吗? |
98
x940727 2021-08-09 14:09:52 +08:00
|
99
gowk 2021-08-09 14:10:20 +08:00
You aren't a Go, or Rust, or Java, or Python, or JavaScript developer (unless you are writing those languages). In reality you are a developer who uses language X to solve Y problems. You can learn new languages and paradigms. Don't get stuck in the I am an X developer.
|
100
wangxn 2021-08-09 14:17:01 +08:00
@ChrisFreeMan 从第一天开始域名就是 golang.org ,还被墙那种。(因为 Google 的 IP 段)
|