Golang Go语言成功让我实现了人格分裂

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言成功让我实现了人格分裂

从开发者的角度,非常讨厌 Go 语言的语法,极其讨厌,所以至今不愿意去学,也不愿意去用,新项目宁愿守着 java 、kt 。

从使用者的角度,非常喜欢 Go 语言开发的各种软件,非常喜欢,零依赖的一个 binary 太他妈的好用了。

Go 这坨屎真的让我很纠结很矛盾。

101 回复

试试 C#?

更多关于Golang Go语言成功让我实现了人格分裂的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


C# 也有在用的,很香。但是目前基本上只能个人使用,公司用途可能性约等于零。

不是语法讨厌,是你根本不愿意去学,要是让你去学 Rust,你更不会了

因为讨厌那个语法,所以不愿意去学。原因就是这样的。

Go 的语法简单的很,一天就学会了,没什么好学的…

用不用就看人了

这完全谈不上人格分裂吧,当作比喻都不贴切。我不爱制作衣服,但我爱穿衣服,不爱烹饪,但爱吃美食,很正常。

为了区区一个语言的语法就被折磨得人格分裂了 lz 也是真的。。。。语言就是去用的,如果有需要的话语言什么语法自己去适应就行了,不过一个工具罢了。搞不懂语法怎么就成了不愿学的原因,就好像说我不学日语就是因为日语那反人类的敬语语法一样。实际上单纯就是没兴趣不愿学罢了

我能理解。

说明还有一个没被很好满足的市场,就是写起来像 Kotlin,有语法糖有抽象,发布出去像 Go / Rust,不像 Go 那么简陋,不像 Rust 零成本,有 GC,没虚拟机。

其实有很多类似定位的语言,比如 Julia,Crystal,Nim 之类的,也有 Scala Native 之类的改装,但是这些还没有像 Go 这么成功。

粗鲁地说,

你这就是叶公好龙。
你不愿意去懂语言的美感,从而对不同语言的美体会不到。语言就在那,没必要捧一踩一。
要对语言的一些问题,也是在指定区域内去吐槽或者批判,这样的说法完全就是显得自己的无知。


又,在公共区域讲一个大而泛之的东西,而又很主观的东西,且这个事情可能会冒犯到别人,是一件很失格的事。

我个人理解,对象本质是状态和行为。从表现形式上,java 拘泥于繁杂的形式,python 的语法表现要更加出色一点。go 的话,简直就是直击本质。

你这两点是正交的,完全可以存在一个语法糖多+部署方便+工具链丰富的语言

也许 n 年后的 kotlin native 可以🐶

Julia 的定位不是打包发布的吧,它必须带着 100 多 M 的 runtime,包括一整个 LLVM

Go 在工程上确实很成功

傲慢与偏见

和楼主一模一样,刚接触到 go 的时候就觉得这语法是不是有病,但又特别喜欢它的高效率,用别人的程序爽的一批,自己写又特别抓狂,到现在基础语法都得 google

我们俩都不认同楼主,我 和 我搞不懂一个重运行时的老语言,一个仅语法糖构建的新语言,有什么好学的?连 IDE 为了缩写 都设置了 语法糖,悅!

无知。你要学 rust 你不光人格分裂,还有 T 楼的冲动

老老实实用 Ruby 吧。

我从 PHP 到 Go 还是蛮喜欢 Go 的

当楼主发展到真正明白“语言只是解决问题的工具”的时候,语法什么的其实已经不重要的,你看到的是这个语言解决了什么问题,适合解决什么问题,然后在多种语言之间切换以解决不同的问题。

java 、kotlin 也可以“0 依赖”一个 binary 呀

我靠,一样一样的

go 没有多余的语法糖,看别人代码不费劲,这才是我喜欢的
诟病也有,比如满屏的错误处理,习惯了也就那么回事

#4 go 的语法是真的讨厌。所有语言里,除了 PHP 写的最别扭的

就这 还要发一帖

go 语法丑? PHP 是世界上最好的语言

你不喜欢 Go 只是因为潜意识里觉得它挑战了 Java 的地位,二而 Java 是你吃饭的家伙,这让你感到不爽。

我也不喜欢 go 的语法,所以学了 rust

看了一眼 Julia 好像的确是没哟 standalone executable 打包… 有点震惊。

不过我理解按照 Julia 这种模型,应该不难加。

看了看有一些人想要这个 feature,但是讨论完之后是低优先级。

开始讨厌,越来越喜欢

开始我也不习惯 Go 的语法,自学一次学完语法后因为没用就放下了,后来用 Go 搞 K8S Operator 完成一个项目后,一切都自然了,信手拈来。

又一个无知的沙雕“开发者”,唉~,b 了

#26 PHP 怎么别扭了,语法跟 JAVA 差不多

Golang 语法很简单. 但是错误处理太麻烦了.

除了大小写字母区分权限,其他觉得都挺好的,1.18 泛型就出来了,到时候会更香。

go 作为一个较新的语言,第一版的包管理简陋得仿佛是上个世纪的产物,我来回看了几遍确认没看错。

💩你还用?不嫌恶心吗

试试 Rust

都是先入为主罢了,我开始就用的 golang, 现在反过来让我学 java, 我也同样觉得超级恶心

把这个楼里面的 Go 替换成微信,Java 替换成 QQ,一点违和感都没有。Go 就是编程语言界的微信这话还真没毛病。

谷孝子说法越来越多了,还语言的美感……

if err != nil 的美感吗

很正常,语法确实傻逼,不过萝卜青菜各有所爱,也有人特别喜欢 go 的语法

Go 语法不挺好的,个人感觉比 Java 好多了,有舍就有得,非要较真 Java 那点语法就是固步自封了。

#10

这样就上纲上线?

你从来不讨厌任何东西?

你从来不公共场合吐槽任何东西?

你吐槽别的东西的时候,是不是也是很主观?

你吐槽别的东西的时候,不会冒犯到别人?

Go 的语法非常的 old style,公认的丑,这是公认的事实,我现在又说一遍而已,怎么就成了“很失格的事”?

本帖下面其他的用户的观点,我都一一看过了,大部分还是很中肯的。

你的例外。

从开发者的角度???从 java 、kt 语法的角度!!!先入为主罢了,如果先出现的 Go 后 Java,你会不会也这样说 Java ?

简单是简单,但是丑是真的丑,两者并不冲突。

就这???



简单回答:不会。

证例:Pascal 、Objective-C 比 Java 早出来 N 年,并且我学习、使用 Pascal 、Objective-C 的时间也比学、用 Java 早了 N 年,但是我依然觉得 Pascal 、Objective-C 丑多了。

多用几门屎语言你就没这种洁癖了

这不就是在说 C# 吗?

能展开说说 Go 语法哪里让你不舒服了吗

个人觉得 Go 的语法已经非常的简洁了,心智负担积极的低。

“非常讨厌 Go 语言的语法” 我以为有什么高论呢。。。弄半天 java ??? 喜欢啰嗦一大堆?

按设计者思路是有错误马上处理,故意这么搞的还拿 java 举例子说一了一遍。但是很多框架用了闭包又给收集到一起了

go mod 之后还可以

Go 的语法不是公认的简陋(语法糖比 Java 还少,抽象能力弱,和脚本小子一样)和有缺陷(异常和泛型 [下半年要出来了] )吗?目前语言工程性 Java 说第二有啥语言可以说第一吗?难道是 Go 吗? Gopher 都快搞的 Go 和个邪教一样了。非要说 Go 的语法叫大道至简才行?叫简陋就不行?另外一个帖子说的就很好,Go 是让大家写的代码都像屎,就没人会说你写屎了……

#44

谷孝子说法越来越多了,还语言的美感……

if err != nil 的美感吗


别的不说,上来就一顶帽子?

如果你是写框架的人,你还不是会把异常往用户侧抛?没有什么区别,Go 的这个 err 就是丑……又不是只有 Java 程序员在吐槽。不是有个段子说 50 万行代码,10 万行都是 err!=nil?

邪教了都,容不得说一点不好……

不要一直待在舒适区里。学就学让你极度不适应的语言,比如 lisp,比如 rust 。Java 确实好,Kotlin 更香,可是 JVM 实在是太大了,微服务没戏。

每个语言都不是完美的,都是有缺陷的,要结合场景去聊语言,才是有价值的

就好比用菜刀削水果,说菜刀辣鸡不好用,有价值吗?

工作上 C++/GO 都会用到
个人写的 C++更多,但更喜欢 GO

所以不太理解 LZ 的痛点具体在哪里

我现在就在写 go 赚钱,屎就是屎
只能说中国人对 google 的崇拜是 google 自己都没想到的

其实 C#也是可以单文件不依赖框架发布的。。

我和楼主有相同的感受,在不同语言之间切换,脑子用不过来,最好是一个语言走天下,一把榔头敲世界上所有的钉子。
我知道不可能,但幸亏 JavaScript 比较落后,大家发明了 TS 前端编译。
于是我就可以开开心心把别的语言语法,转义到 JS 上了。

#54 很多,我就不展开说说了,想知道的自己搜一下,吐槽 Go 语法的又不是我第一个。
#55 语法简洁是简洁,但是丑也是真的丑,两者并不冲突,可以同时并存。
#56 本帖就是吐槽,不喜欢你可以 CTRL+W 关闭走人,我还以为你有什么高论呢,原来也只是吐槽?
我可没说 Go 没价值,你看我第一句话就是“非常喜欢 Go 语言开发的各种软件”


我对 C#可太熟悉了,你说的理论上能做到,实际上很难,效果也不好。

听说 Net Core 有新方案,但是还没真实用过,不清楚情况,我就不发表意见了。

这特么也能水一贴

上班不就是摸鱼吹水+水贴吗?手动 /doghead



为啥理论很难做到 我们公司目前所有的产品发布包括 docker 发布全都使用的是单应用不依赖框架模式,没有任何问题

.Net Core 已经是过去时了,最新的版本是 .Net 5,还有 .Net 6 Preview

比较古老的产品还在使用 .Net Core 3.1 做单应用发布,主流产品已经切换到了 .Net 5 了

err 我现在也有点烦起来了,但是做分发和开源工具、网盘类实在是太舒服了,尤其是想拿出去卖,py 必须给源代码。java 肿的对方都不想要。

写了这么多年各种语言,还是觉得 c#为最终王者

go 当成 c 写就好了

至于 java 嘛,去掉 import 代码行数还剩 1/3 哈哈哈哈,主要是太啰嗦了,但是这种死板的写法很适合多人团战

我倒希望讨厌 Go 的人越多越好,要说像某个叫好不叫座的语言那样,那 Go 的未来就不太好说了

不知道有没有用 go 写大型工程的。比 java 开发效率和可读性差

见过不少 php 转 go,过几个月又转 java


既然有人喜欢用 go,能用 go 产出解决方案,那么 go 就有了存在的意义

不要神话一门语言,也不要贬低一门语言,语言就是一种工具,使用工具好坏在人

#47

有趣。

上纲上线你什么了,哪句?

你说的这些问号,没有哪句说不行,关键在于就像你在这楼说的,跟你表现出来是两码事。

就像,你可以说你不喜欢臭豆腐,你私下也觉得他闻起来有”屎“味,但你讲的时候,你得看下场合。
你当然可以说,我就是 keep real,我觉得像屎,在哪我都觉得是。

那你开心就好。


另外,你说的这个公认也是一个有趣的事。


我说“很失格的事”,是指,你说你讨厌 go 的语法,但你又没说明他讨厌,丑在哪,然后直接糊一句,Go 这坨屎,
这样的话,不失格?


你附楼所说非但不能验证你没口出狂言,更能说明,你对待事物的态度确实是挺傲慢的。

以前也很讨厌 go 语法,真的学习了,发现真香

你试试 Flutter



哪句?哪句???帮你挑出来吧,免得你不识庐山真面目只缘身在此山中。

“叶公好龙”、“显得自己的无知”、“讲一个…,是一件很失格的事”。

至于 Go 的语法是不是公认的丑,自己百度一下不就知道了?一大堆人在吐槽,说明有大量的人觉得它丑,这个事实很难直面吗?

搜 “go 语言语法 丑” 自己去看那一堆吐槽文章。

觉得中国吐槽不算数?那搜一下 “go lang ugly”,看看是不是只有中国人觉得它语法丑?

这个事实很难直面吗?

我的体验跟楼主 不能说很像
只能说一模一样

写的时候捏着鼻子
不过,部署运行的时候感觉要起飞

go 语法的确丑陋,但又不是不能用 /doge

#74
因为你们只做服务端,所以容易就做到了,你用 C# 开发桌面端试试看…

而且这里有个悖论:

最容易单体发布的服务器端,实际上不怎么需要单体镜像。实际上 docker 打包就完事了,是不是单应用无框架依赖根本不重要,大不了自己打一个预安装好框架的基础镜像包。

桌面端才是最需要单应用无框架依赖的,但是偏偏又是最难做到的。

给我的第一感受就是这玩意儿很考验写的人的代码组织能力

没有泛型和 if err != nil 感觉这是最难受的

其他的感觉还好,没有泛型写业务逻辑很难受。
不过 golang 还是有爽点在的,如果 golang 和 java 两个语言的优点可以结合起来那就太香了

有精通的吗???

先用的 java,后用的 go,不再想写 java 。
原因:
不想写那么复杂的配置文件,注解。。。
文件包的命名台麻烦了,com.xxx.service,go 中是啥就是啥 service
直接写函数等等

比如 stackoverflow 是 c#写的,我虽然不喜欢 c sharp,但对于 stack overflow 提供的服务还是真诚的感谢

你讨厌 go 的语法说他是屎,问题是 JAVA 的语法就不屎了吗,写个非常简单的功能先搞个类再啰嗦一大堆。这就是我想表达的

现在有空接口。1.17 支持了泛型

最近尝试用 Go 重写之前的 C#代码,我很喜欢 Golang 的简洁,无论是语法还是工程目录,对比 dotNet core,编译速度很快,这个很棒,尤其是开发一些需要展示效果的程序的时候,可以很快就看到结果,速度几乎就比 Python 慢了一丁点的感觉,还有现在的 golang 的官法域名似乎从 google 域名中独立出来了,不知道我有没有记错,我记得之前是在 Google 的子域名下了,这个很棒, 似乎是刻意的淡化了 Google 的存在感,表示这是社区语言(起码表面上)。dotNet core 无论是项目还是文档处处都有 Microsoft 的身影,无时不刻的提醒你这个语言是属于微软的,虽然它也开源了。总之我在尝试中,我没有打算以后都切 Golang,说不定哪天遇上无法解决的痛点又切回去了

语言只是工具没错
但是你们谁会拿螺丝刀拧水龙头吗?

你也可以不写,xxx.xxx 。直接写 Service 就醒了。Java 真正啰嗦的地方是因为他是 OO 的语言,一切都基于类,你要实现功能就要先有类,但是好处是这种模式,语言抽象能力会强很多很多,远比 Go 强。

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.

从第一天开始域名就是 golang.org ,还被墙那种。(因为 Google 的 IP 段)

针对您提到的“Golang Go语言成功让我实现了人格分裂”这一有趣的说法,我理解这可能是一种幽默或夸张的表达方式,意在强调学习Go语言过程中思维模式的转变和挑战。实际上,学习任何一门编程语言,包括Go语言,都会促使我们跳出原有的思维框架,以更灵活、更严谨的方式思考问题,但这与真正的人格分裂是有本质区别的。

Go语言作为一门静态类型、编译型、并发型,并具有垃圾回收功能的编程语言,其简洁的语法、强大的并发处理能力和高效的性能,确实为开发者带来了全新的编程体验。在掌握Go语言的过程中,我们可能会遇到许多思维上的挑战,比如如何优雅地处理并发问题、如何编写高效且易读的代码等,这些都需要我们不断学习和实践。

然而,这种学习过程中的思维转变和成长,是每一位编程爱好者都应该经历的。它让我们变得更加专注、更加严谨,同时也更加开放和包容。所以,如果说Go语言让您感受到了某种“人格分裂”的错觉,那么这实际上是一种积极的转变,它让您在编程的世界里变得更加多元和强大。

最后,希望您能继续深入学习和探索Go语言,享受编程带来的乐趣和成就感。同时,也欢迎您分享更多关于学习Go语言的经验和心得,与更多的开发者共同进步。

回到顶部