Go 到底优势是在哪里?

2019-10-17 17:24:00 +08:00
 upday7

我们现在的项目是用的 django+restful 做接口,最近接触到很多 go 的内容,被网络上的讨论有点弄晕了。如果做接口后端,为什么 go 比 python 有优势,除了速度这些还有什么?

22202 次点击
所在节点    Go 编程语言
153 条回复
hushao
2019-10-18 12:47:12 +08:00
优势目前在于轻量线程及云部署,至于并发、Django 中小公司及个人根本达不到瓶颈的地步。
至于 go,我也考虑过代替 Python 的 web 开发,撇开兴趣,真想不到非用不可的理由
Hanggi
2019-10-18 12:51:17 +08:00
@ArtIsPatrick 就是说让你多开几个实例,不然不够看。
ArtIsPatrick
2019-10-18 12:57:41 +08:00
@Hanggi Python 原生的异步 IO 和 go 还是有很大差距的。
salamanderMH
2019-10-18 12:58:52 +08:00
现在 go 有 go module 也很方便
kemikemian
2019-10-18 13:09:12 +08:00
有位大哥叨叨好几堆文字,不知道为什么这么气氛。
go 和 python 定位不同。go 并不是为了用来替换 python 的,是弥补 C 的不足。
说 python 多好多好,也不过是生态完善。python 多少年,go 多少年
ihciah
2019-10-18 13:16:30 +08:00
CSP 模型用起来舒服啊
blless
2019-10-18 13:57:38 +08:00
@ArtIsPatrick 有啊 py 原生请求模型是阻塞队列,都谈不上并发。业务处理 1s 100 并发挨个排队处理就 100s 了,同样命令 go 原生就 1s。我那个时候用 gunicorn+gevent+flask 勉强才能达到 go 原生 http 水准。
很多人说什么你们那点应用还触不到 GIL 限制,真是笑话。py 内部各种数据序列化转换,尤其是 pymysql 加了 orm 这种,一次请求数据处理都不知道多少次了,我就不说压缩之类的 cpu 大户了,毕竟压缩可以让 nginx 处理。但是现在 api 基本都有 hash 签名检验参数,生成 token 啥的,那点 CPU 还真是不够用。
wuwukai007
2019-10-18 14:09:53 +08:00
小姐姐都在用的 ins 就是 django+uwsgi+nginx 开发的啊,人家月活跃量 全球 20 亿 ,我觉得除了淘宝,12306 啥的,有那么多的高并发需求吗??
咱能不能别张口闭口高并发了,多考虑业务逻辑复杂度吧!
abcbuzhiming
2019-10-18 14:26:32 +08:00
@TangMonk 你如果接触的比较多的就会发现后端语言在应用领域是趋同的,都是图灵完备语言所以彼此的功能都能换个语言实现。但是 go 有一个不太一样的特点是,在玩意是没有虚拟机的,因为没有虚拟机,这玩意在低延迟和低内存占用上有特别的优势,dotnet core 的对手是同样有虚拟机的 jvm,go 的对手严格来说目前没有同对位上的,因此 go 一定有自己的生存空间,直到有一个在特性上和自己对位的竞争对手来和自己竞争
TangMonk
2019-10-18 14:31:53 +08:00
@abcbuzhiming #129 我感谢有没有虚拟机问题并不大,实际上 golang 和.net core 的性能差距并不大
BlameKidd
2019-10-18 14:35:39 +08:00
你们学编程都好强啊, 我这个渣渣只面向工资编程简直惭愧.
不说别的, 我只知道 Go 开发比 python 开发工资高.
ml071987
2019-10-18 14:45:25 +08:00
看你们吵来吵去真有意思
两种语言各有优势和应用场景,有啥好吵的
为什么不都用呢,谁规定程序员就使用一种语言了
charlie21
2019-10-18 14:51:47 +08:00
@ml071987 互联网这么大,不出几个喷子你以为活在天堂
lazyfighter
2019-10-18 15:28:49 +08:00
在我看来 go 适合写中间件尤其以 proxy 为主,并不适合写业务,写业务还是 java,没写过 php
kkeiko
2019-10-18 15:50:33 +08:00
./bin 这就是优势
netherlanddennis
2019-10-18 16:08:49 +08:00
@lazyfighter
看了那么多。只有你扯到重点了。go 唯一的适用场景就是中间件。并发高。耦合度低的。
要论业务开发。还是 java。php..python 这些
AX5N
2019-10-18 16:17:14 +08:00
@netherlanddennis 你可以看下 99 楼
netherlanddennis
2019-10-18 16:21:13 +08:00
@AX5N
恩。99 楼也对。个人比较认可。
只不过这种东西嘛。都是见人见智的。
d1973
2019-10-18 16:25:12 +08:00
别说了,Java 是最好的编程语言没有之一
littlewing
2019-10-18 16:42:42 +08:00
goroutine

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

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

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

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

© 2021 V2EX