Golang Go语言:再来吹一波 Golang

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

Golang Go语言:再来吹一波 Golang

作为 Go 语言爱好者,我来总结一波 Go 的优势:

  • 大道至简

Golang 的开发者 Robert Pike 和 Ken Thompson 都是 UNIX 小组的成员,UNIX 系统影响深远,包括 UNIX 哲学-保持简单,也深深影响着后世。他们深刻理解简洁的好处,所以在设计 Golang 时同样保持这一原则。

  • Native

编译成目标机器代码,部署容易,无需额外的依赖,性能优越。

  • 并发支持

GoLang 使用 goroutine 来实现并发性,它提供了一个非常优雅的 goroutine 调度程序系统,可以很容易地生成数百万个 goroutine 。

  • 编译快

无需解释

  • 完善的工具链

有许多易于使用的内置工具,比如 gofmt 自动排版 Go 代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题,大大提高了团队协作的一致性。

欢迎 V 友们补充。


更多关于Golang Go语言:再来吹一波 Golang的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

101 回复

日经贴了。你说的都对,但其实对于我这样的菜狗来说,大佬用啥我就跟着用啥。

更多关于Golang Go语言:再来吹一波 Golang的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


我尝试预言一波,第一点会被喷死,第二第三点会有人说各种别的语言也支持


语言大战马上开始,话说回来这种帖子太招黑了,我甚至觉得你是反串黑🐶

go 会用的还是会用,不会用的吹了也不会用,反正每个语言都是一堆问题…看个人喜好和公司要求吧

这里并没有语言大战的意思。关于第一点,简洁性不是人之常情吗?

马上就会开始大战了…

第一点论证不充分。就比方说,衣服的设计师是 xxx ,他的风格是简单,所以他设计出来的新衣服就一定是简单的吗?

大道 if err != nil

日经贴,甚至没有新颖的观点

你这个肯定会又双叕引起语言大战。 我从 go 弄到 js 到 react 到 ts, 玩过一点点 express.js. 只要写惯了,语言没有什么大不了的。只要团队的代码有明确的标准,都还好。js 也有 eslint 和 prettier , 团队可以确定自己的排版风格。React 换成了 vite(esBuild, go 写的),compile 速度也不慢了。 至于性能,如果你的业务多到语言本身的性能成了瓶颈,我觉得你公司已经是独角兽级别的了,你会有足够的资源解决这些瓶颈。

Go 语言的三座大山包管理,泛型,错误处理,全搞定就完美了

Go 泛型要被解决了,但是 Go 这一言难尽无限套娃还不附带调用栈信息的 error 接口,估计还得继续用好多年

我设计的语言 void
1. 大道至简
一生二,二生三,三生万物,void 回归本质:0
2. native
无需部署,兼容过去、现在、未来任何计算架构
3. 并发支持
无需解决任何并发带来的问题
4. 编译快
无需编译
5. 完善的工具链
6. 不存在




大道至简,首先要是大道啊

包管理太难用了

#15 有 go mod 之后还行啊

包管理我觉得 go.vendor 能解决不少问题,默认选择不带 go.mod 的版本我觉得是有点蠢的。至于错误处理,我觉解决方式在于你设计 app 之初决定什么层级 wrap err 返回到 caller, 什么层级决定处理 err. 具体可以看看 github Ardanlab service repo. 它至少解决了我 web app 错误处理的问题。

Go 语言,又名 Errlang 。

感觉 go 在国内用的比国外还多

go modules 混乱的一逼

#19 目前是的,

上次看到大道至简还是 thinkphp 的文档以及用这玩意的糟糕的体验。

关于简洁性,评价一下 1.18 要上的 type parameter.

开始压根没打算学这个,就非常看不起,觉得还是学 rust 好,可是最后呢,还不是学了 go 。
不学 go 也行啊,就学 java 去内卷吧。

https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html
少即是多,这篇文章我读过很多遍了,建议学习 Go 的同学都读一下

人生苦短啊,吹什么啊

大道至简,为什么不去写汇编?

里面说 no template. 但是 1.18 马上就要上 mini 版 template 了呢.
作为一名 golang 开发,事实就是我觉得 golang 并没有多好用。 阉割的特性需要用一些蹩脚的方式完成,但是别人告诉我这是大道至简。golang 专有的特性又让一些新转 golang 的经常写出问题。嗯 我说的就是那个 defer 和 channel 。
用 golang 去写写中间件还行,用来写业务真的是头疼,但是现在又有多少人工作中用 golang 真的是在写中间件呢。

害… 不能好好继承蛋疼的一批, 有时候不得不魔改代码,往本地仓放一份

生态还是差点,开箱即用的轮子还是少了点。

不是 web app 呢

有什么区别吗?

非 web app 没有中间件

我总结了一下吹某某编程语言的人常有的两个特征:1. 其实还不怎么懂这个语言,坑没踩够,还在蜜月期,2. 见识少

大道至简,指 interface {}

工作不好找啊。。。

满天飞的 if nil
满天飞的函数参数 interface{}
谁看得懂?
看不懂?抱歉 那是你水平太差

golang 开发 web 比 php 有优势?

过时了,2021 年 rust 已经大爆发,只剩下老顽固

你说的都说,但今天.NET6 出了,被他们吹得我都想去试试 C#了

没有吹,这几年 C#的进步肉眼可见。我在海外,我们这边 C#是主流,市场占一半以上。大家都很期待

错误处理跟屎一样

为什么很少有人吹 clojure 呢,国内从业者太少的原因吗。。。

Rust 圈 也挺嗨

啥时候改改 if err:=
我代码里起码有三分之一在写这句话

人生苦短,我用 ruby

判断一个语言好不好,看那些国家用就行了,Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了吧?

#49 Java 只有中国在用?

性能被 C++, Rust 按地上摩擦,生态,GC 又不如 JAVA ,鸡肋选择。

无知傲慢又愚蠢

「回复了 josephok 创建的主题 › Go 编程语言 › 再来吹一波 Golang
判断一个语言好不好,看那些国家用就行了,Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了吧?」

「回复了 passer9527 创建的主题 › 问与答 › 一个疑惑:为啥很多初创公司不选择最主流的技术栈?
Java 是一个本来就应该死掉的语言,硬是被国内这些培训班救了,可以说没有中国,Java 这种古董语言早就进垃圾桶了,还是把眼界打开多去看看 Go 吧,设计理念会让你得到空前的享受」

他厉害因为他是外国人,我垃圾因为我是你的同胞

个人感觉,go 是把复杂从语言层面推到了普通的开发者!感觉它的 大道至简 是对开发 go 语言本身,作为一个使用 go 语言的人,只是觉得别扭!

Python 换 Golang 的角度来说, 挺好, 越写越越好吧

我用 python
别的也不会

go = python + c


go 是一门 get 到了后端程序员 G 点的语言, 用这个公式来表达再恰当不过

我用了 go 之后甚至有一点点嫌弃 python ,因为最著名的 python 哲学 The Zen of Python 里说的,反而是 Go 做得比 Python 更好。

明瞭优于隐晦
简单优于复杂
任何问题应有一种且最好只有一种解决方法
很难解释的,必然是坏方法
很好解释的,可能是好方法

需要啥时咱用啥。
每种语言都不是万能的,充分发挥特长才对。再爱也只是工具,不本末倒置。

go 国内使用无非就是这俩对比了。性能比 c++差不太多的前提下,又比 java 省不少。所以都大厂在上车,收益明显,中小跟着上车明显是见风使舵。至于语言的其他什么特性如部署、编译、开发体验之类,作为决策人,你觉得除了成本和收益,人家关注么。
至于个人来说,要么要求啥用啥,要么喜欢啥用啥,无他

个人很喜欢 go (不过这些优点感觉网上都说腻了😂

爽就行了,不要出来炫耀,低调

「 Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了」
一口老血喷出来,差点当场出世,看来以后得少逛 V2 了,好多没有意义的讨论

按说能翻墙出来上 v2 的人,不至于啊……

Python 就像一个美女, 当你熟悉了, 却发现她有口臭, 有点嫌弃, 哈哈哈

澳洲或者纽村?

go 加了泛型,可能要加模板了,还大道至简吗?我们开发组在做一个产品,最初也是希望轻量简洁,随着产品进化,筛选特性,很多次迭代做到现在还是变重了。为了满足技术需求,最终 go 也会走上逐渐增加特性的道路

百团大战开始了,这种帖真是流量密码啊

曾今我刚学习 Go 时也是有你这种错觉,知道我开始用它来跟 Mongodb 交互,吐了,看帖 https://www.v2ex.com/t/810126#reply98

golang 的大道至简(if err != nil) 就跟苹果的刘海一样 hhh

我还是喜欢 python ,除了速度慢
go 其实就那样,该加的特性不加,enum 都没有,反而 protobuf 里有,又要用代码生成实现一次
不该加的特性加了,比如比较 nil interface 的时候非要比较 type 和 value 两个地方,太傻逼了



难道 spring 出了这么多个版本,是被中国人救活的吗?

#67 嗯,纽村。

忽略使用场景谈语言没有意义,go 是做高并发中间件的

眼睛不好就去挂个号吧,实在不行捐了也行

我还是喜欢 go 一点,c# 光是语法就够让我喝一壶了。

重新定义

这么高的 C#占有率,没猜错应该是澳洲新西兰吧?

javaer:怎么说,这些真的没有绝对的。就平时搞一些一个小工具来看,go 的内存占用是真的香,对比 java 来说可能要占用 10 倍多吧。但是 go 其他发面是倒是没有 java 好使。

至简 interface{}

大道至简,我发明的语言“太极”,语法就两个字“阴”和“阳”。阴为 0 阳为 1 。
native: 编译成机器码,性能看编写的人。
并发支持:如果你觉得不好,可以把其他的语言写的程序编译成二进制,然后转换为“太极”语言进行阅读学习。
编译快:无需解释
完善的工具链:任何工具链都可以使用,因为任何语言都可以最终翻译成“太极”。代码风格只有一种,不用担心不一致的问题。

泛型要来了,以后的代码估计至简不了了,然后我最满意的就是编译速度,用 rust 总觉得 慢

我喜欢 TypeScript

零食🍬小板凳🪑围观撕逼大战🔭

十年前见的最多的是“PHP 是世界上最好的语言”。

你说出了我的心声.

大道至简: void*

啊对对对

照这么说, rust 不是更值得吹吗

对于大多数场景来说,python 和 go 完成需求,没什么区别
哪个撸的快用哪个就行

好无聊啊,这都能上热榜,讨论语言本身果然还是最具有流量的,毕竟谁都能插一句。。。

现在都没几个人吹 PHP 了,俺的青春结束了

和别的语言都一样,那 go 的作用是什么? go 的简单的理念有什么问题

PHP 曾经是最好的语言,未来有一天一定还会再成为最好的语言。

golang 就是为了简单的简单的语言而已。。。rust 才是最终答案 (手动狗头
https://www.zhihu.com/question/490074663/answer/2207090107
https://www.zhihu.com/question/352343414/answer/868915902

#97 打错 - - 应该是 为了简单而简单的语言而已

当然,以下是针对该帖子的回复:


Golang,又名Go语言,自其诞生以来,确实在IT界掀起了一股不小的浪潮。作为一种现代编程语言,Golang不仅继承了C语言的简洁和高效,还吸收了众多编程语言的优点,形成了自己独特的魅力。

首先,Golang的并发编程模型是其一大亮点。通过goroutine和channel,开发者可以轻松地实现高效的并发操作,而无需担心复杂的线程管理和同步问题。这一特性使得Golang在微服务、云计算等需要高并发处理的领域具有得天独厚的优势。

其次,Golang的编译速度极快,且生成的二进制文件体积小巧,非常适合在资源有限的嵌入式设备上运行。同时,Golang的跨平台特性也让它成为了跨平台开发的理想选择。

再者,Golang的社区活跃,生态丰富。从基础的库和框架到各种开源项目,Golang都拥有庞大的资源供开发者使用。这不仅降低了开发门槛,还加快了项目的开发进度。

最后,Golang的语法简洁明了,易于上手。对于初学者来说,Golang是一个非常好的入门语言。而对于有经验的开发者来说,Golang则能让他们更快地写出高质量的代码。

总的来说,Golang凭借其并发优势、编译速度、跨平台特性、丰富的生态以及简洁的语法,在IT界赢得了广泛的赞誉。未来,随着技术的不断发展,相信Golang还会在更多领域展现其强大的实力。


希望这个回复能够满足你的需求。

回到顶部