我唯一能想到的是可以换个赛道卷。 要啥没啥。。都得自己撸。。而且因为没有标准,就是完全随心所欲的写。写成什么样是什么样。除了简单,就没啥优点了。问题是太简单了,跟自动挡和手动挡之间的区别一样。看看别人实现的一些例子是很简单,但你要真的是可以用的。代码要膨胀十倍。个人感觉 golang 是把代码工程的问题交给了程序员去处理,程序员需要很大的心智去维护工程问题。。。
随便看了几个开源项目的代码,因为很多特性没有。就是各种写死。各种模版代码。。。。 别扯运行速度快。。这是优点但真不是绝对优点。谁天天写高并发代码?全世界项目都是百万级并发?
我知道存在即合理,但我真的没看出来 golang 有什么特别的亮点够他这么火。当初 php 是因为撸 web 快,现在是因为人人要撸百万级并发项目么?真的。。rust 都比他强。最少 rust 的工程性实在是解决了大量现代编程的问题。除了 rust 难学一点,但学什么不难呢?可惜,现在写 Rust 太少太少了,几乎没有求职空间。只能自己写小工具完,完全不敢在项目里面用。
1
playniuniu 2022-05-25 20:21:37 +08:00
Golang 要啥没啥的结论是怎么得出来的?
|
2
lessMonologue 2022-05-25 21:05:50 +08:00 11
日经贴,南文北斗,开始你们的表演
|
3
lisongeee 2022-05-25 22:35:01 +08:00 5
指出一个错误,存在即合理 是德语 Was vernünftig ist, das ist wirklich, und was wirklich ist, das ist vernünftig 的错误翻译,原文大致意思是 凡事必定有存在的理由
|
4
ViggoSite 2022-05-25 22:42:38 +08:00
你咋不说 golang 部署方便呢
|
5
Buges 2022-05-25 22:44:42 +08:00 via Android 11
大道至简警告⚠
|
6
sadfQED2 2022-05-25 23:57:04 +08:00 via Android
要啥没啥?举个例子?
|
7
ration 2022-05-26 00:10:24 +08:00 via Android
除了高并发,那就是 docker 和 k8s 。如果未来是 k8s 的天下,那么想深入了解 k8s ,学 go 是很有必要的。
|
8
Suddoo 2022-05-26 00:17:37 +08:00
问就是大道至简
|
9
cmdOptionKana 2022-05-26 00:21:23 +08:00
现在有了泛型,很多库可以迎来一波改进了。
一般来说,如果一个语言特性 /语法糖比较少,也就写基础库比较累,但当各种库的生态发展起来之后,日常调库使用并不会很麻烦。 尤其是现代 IDE/编辑器已经高度发展了,有什么麻烦的地方编辑器也可以补救。 |
10
darksword21 2022-05-26 00:22:07 +08:00 via iPhone 3
好家伙,隔壁 fastjson 说 java 连个序列化 json 的标准库都没有(当然我不懂 java ),这边来个要啥没啥
不过这帖子已经和大姨妈一样了,每个月都来 |
11
Dart 2022-05-26 00:25:01 +08:00
资本注意世界用 K8s 来收割我们这些个人开发者了
|
12
insert000 2022-05-26 00:26:01 +08:00
累了,原地爆炸吧。
|
13
SMGdcAt4kPPQ 2022-05-26 00:29:15 +08:00 via Android 2
我不到啊,我一直在写 C#,Native AOT 正式版很快就要来了
|
14
SMGdcAt4kPPQ 2022-05-26 00:36:06 +08:00 via Android
@ComputerIdiot C# 11 的泛型也支持数学运算符了,还有更强大的扩展提案,支持给类扩展实现接口,一切都越来越好了
|
15
LotusChuan 2022-05-26 00:50:09 +08:00
Go 的 rpc 挺好用的,什么好用用什么。语言这种东西几天就能上手开发,相比于整个项目开发省下的时间肯定是值得。个人感觉就算是从零开始学习,语言在整个项目开发过程中占的时间也只是很小一部分,为什么一直要对着这方面开炮?扯架构也比扯语言有意义吧。
|
16
drackzy 2022-05-26 00:59:40 +08:00 4
用 Go/Rust 能过滤掉一些不高并发的垃圾公司。
|
17
agagega 2022-05-26 01:00:52 +08:00 via iPhone
要是 Swift 不是 Apple 而是另一家大厂推的,可能在服务器端会有更多市场吧
|
18
littlewing 2022-05-26 01:02:03 +08:00
C++ 申请参战
|
19
CivAx 2022-05-26 01:24:29 +08:00
[ 用 PS 画了一幅火柴人 ]
“PS 也太难用了吧!谁天天用钢笔工具!” |
20
roundgis 2022-05-26 01:34:29 +08:00
rust 不只是难学一点吧?
|
21
TWorldIsNButThis 2022-05-26 01:47:24 +08:00 via iPhone 2
|
22
pengtdyd 2022-05-26 02:27:00 +08:00 4
学 C 就没有这些烦恼,因为嵌入式 C 是唯一的选择。
|
23
FightPig 2022-05-26 08:35:40 +08:00
主要是简单,如果像 rust 一样学了放弃学习放弃学习放弃.... 估计早黄了
|
24
aladdinding 2022-05-26 08:49:18 +08:00
编译快 部署简单
|
25
bruce0 2022-05-26 09:16:32 +08:00
可能 你觉得不行吧 但是 go 确实解决了痛点, 不是所有的开发都是写 web 服务, 用 go 写 web 确实除了性能好点, 部署方便点, 别的方面基本都被 java 吊打 但是在别的领域, go 确实挺好用的, 比如中间件开发, 还有长连接的服务, 比如游戏开发. 没有 go 之前 这部分基本都是 C/C++ 开发的, go 的开发速度和开发难度比 C++是低了太多了, 同样水平的人 用 go 写烂代码的几率比 C++要低的
|
26
Saxton 2022-05-26 09:42:56 +08:00
月经贴又来了 这个月月经来的快一点了
|
27
zhanlanhuizhang 2022-05-26 09:43:50 +08:00
每种语言都有适用范围。
|
28
sampeng OP @bruce0 这个我倒是认同,写中间件秒杀 java 没什么问题。但大量的吹嘘和教程都是 web 方面的
|
30
sampeng OP @drackzy toB 一年几亿几十亿收入的公司远比 toC 不赚钱的领域要多得多。没高并发就是垃圾公司?你猜在现在这个大环境环境下是赚钱的公司能活下去还是不赚钱的公司能活下去
|
31
dbskcnc 2022-05-26 09:48:20 +08:00
只要有简单软件基础就可以产出,人员要求低多了
短平快的小工具简直不要太爽 |
32
keepeye 2022-05-26 09:48:30 +08:00
难道衡量一个语言的好坏只看它写 web 是否方便?
|
33
sampeng OP @ration 99%用 k8s 和 docker 的不会去看源码…用什么语言开发的半毛钱关系没有。有肯定有,但也支撑不起现在火的因素。
|
35
sampeng OP @dbskcnc 这样没问题,但实际操作下来,又会变成写时一时爽,维护火葬场…同一个项目,半年后去看,java ,php ,python ,golang 。只有 java 的事还能看明白的…
|
36
815979670 2022-05-26 09:54:58 +08:00
一个刚从 PHP 转到 Go 入门的菜逼,Go 给我的感觉是把很多事情变得简单不用依赖什么东西,比如 PHP 起一个 HTTP 服务最基础的要求是有 PHP 环境 有 Nginx/Apache 至少有这两样才行( PHP -S 在生产环境性能问题导致几乎不可用),而 Go 不需要,依赖这么多,你下载下来别人编译好的就能跑。
还有扩展问题,比如 PHP 我需要用到 Redis 扩展,那么不但我开发的时候需要装,服务器上也需要装。而 Go 只需要在开发的时候引入一个包,编译后丢到服务器直接运行就行了 不需要在部署的时候额外做什么。 |
37
Saxton 2022-05-26 09:57:00 +08:00
@sampeng 你这是钓鱼了说真的 java 和 go 我都在用, 虽然 go 在编码速度这块不能和 java 相提并论,毕竟 java 一个 stream 就可以吊打很多语言了
|
38
dilu 2022-05-26 09:58:06 +08:00
一个语言不怕有人骂,就怕没人骂。
反正我就是混口饭吃,什么语言好找工作好赚钱我就学什么,少思考点哲学问题日子好很多 |
41
Hanggi 2022-05-26 09:59:11 +08:00
其实问题很好,为什么 Go 语言这么火。
肯定是解决了某些人的痛点。 看看谷歌发明 Go 语言的初衷是什么。 在 Go 语言出现前谷歌大部分服务是 Java ,C++,Python 写的,这些语言有什么弊端致使谷歌不得不推出一门新的语言来应付未来的发展。 |
42
fo0o7hU2tr6v6TCe 2022-05-26 09:59:40 +08:00
如果我自己的体验没错的话,rust 玩起来比 go 难上不止那么一点
|
44
liuyibao 2022-05-26 10:03:42 +08:00
像字节这种公司用起来挺好的,前提是微服务架构做的比较好,能够快速部署和销毁,服务器成本应该可以降低不少。但大部分公司,你的人力成本是远高于服务器成本的,微服务搞的还没单体稳定,web 方面用 go 完全没必要,没有任何优势,就是自己瞎折腾。 我是赞同楼主的 @sampeng
|
47
wonderfulcxm 2022-05-26 10:06:45 +08:00 via iPhone
心智负担低警告⚠️
|
49
nicevar 2022-05-26 10:08:44 +08:00 2
Go 只是在这里比较火,因为这里用 Go 的人比较多,或者说 Go 吹太多,所以你觉得很火,其实国内你去看职位统计,Go 还远不如 PHP ,跟不要说 Java 了,差十万八千里
|
50
fengjianxinghun 2022-05-26 10:09:07 +08:00
j**v 用户和**thon 用户很快加入战场
|
52
streamrx 2022-05-26 10:15:14 +08:00 via iPhone
rust 现在除了写区块链 几乎都没看到有公司招
|
53
pkoukk 2022-05-26 10:15:20 +08:00
因为在某些场景下实现了 跑的快 和 写得快 之间较好的平衡
|
54
dbskcnc 2022-05-26 10:18:17 +08:00
@sampeng 如果 go 的代码都看不明白了,那显然是代码组织 /逻辑的问题,这个跟语言并没有太大的关系,糟糕的不仅仅是代码本身了,你要的东西本就在代码之外。 文档,注释,code review 才能解决你说的问题。
另外 rust 肯定难流行,我不否认他的理念不错,但那已经到了洁癖的程度,洁癖有错吗?没有!取舍而已。 |
55
cheng6563 2022-05-26 10:19:11 +08:00
”除了 rust 难学一点,但学什么不难呢?“
学 go 就不难。。用 go 开发也不难。 比如随手撸一个 IO 中间件,把基础过一遍就随便写了,性能也有保障。 go 就是非 CPU 密集的场景下的 c c++的最佳替代品 |
56
janxin 2022-05-26 10:20:23 +08:00
换 Rust 卷
|
57
libook 2022-05-26 10:20:34 +08:00 6
国内技术发展特点跟国外各地区可能不大一样。
国内开发者的技术资讯获取渠道比较集中,一门技术如果宣传到位的话,在国内会以极快的速度传播,特别是那些有科技巨头背书的技术。 国内开发者普遍有技术焦虑,生怕自己当前所用的技术会很快被淘汰,出于自保会比较愿意学习和使用时下热门的技术,特别是很多技术的宣传都是捧一踩一,以及各种“取代论”,这种焦虑会更加强烈。 国内开发者普遍有“面向简历开发”的意识,有头部公司在使用一门新技术的话,开发者们更愿意在自己的简历中能对这种新技术有所体现。 Go 就是顺应国内的这种技术发展特点,才得以在国内变得非常热门。 因为这些特点,很多技术在国内比在国外会更早进入 Hype Cycle 的过高期望的峰值。两年前 ThoughtWorks 技术雷达也明确表示,过去技术会先在欧美地区流行,然后才进入中国,但如今反了过来,技术很可能会先在中国流行起来,然后再在世界其他地区流行起来。 其他语言难以像 Go 这样贴合国内技术发展的特点,比如宣传不到位、没有科技巨头背书或者只是单纯打不过 Go 。 但除了语言之外,很多技术在国内有着类似 Go 的发展现象,比如 Vue 、PG 、K8s ,以及 Rust 也有这个趋势(但可能不在 Web 服务领域)。 海外各地区技术会更加多样化一些,如今海外 Web 开发领域依然不乏 Python 、Ruby 和 PHP ,在国内这三种语言已经很难在 Web 开发领域找到工作了。 |
58
GeruzoniAnsasu 2022-05-26 10:24:20 +08:00 5
|
59
wanguorui123 2022-05-26 10:29:29 +08:00
面向工资编程
|
60
ZeroDu 2022-05-26 10:36:13 +08:00
确实,同感;写过一点就有这种感觉。对我来说优点可能就是打包部署方便。
|
61
GeruzoniAnsasu 2022-05-26 10:37:37 +08:00 1
你的发言完全颠倒了好几个事实,说明你……并没有什么正确认识
「没标准」完全就是错的,golang 里 http 库和 sql 库几乎是一切相关轮子的标准,轮子都在标准上拼拼凑凑而已 「工程问题交给程序员」也完全是错的,cmake 那才叫工程交给程序员,代码标准、格式化、测试框架、包管理都语言内置,你找找第二个? 「模板代码」不知道你在说啥,但 golang 连泛型都没有,是不可能写模板的,除非你在说用来写后端渲染的 template 库,但你自己想想后端渲染是主流吗现在。有很少工程会用代码生成器,但相关的需求往往放其它语言也得代码生成器。 「存在即合理」说的是你感知到了事物的存在说明事物的存在合乎你的理性模型,其客观存在能被投射成你的认知。 「存在说明它某种方向上是对的」是个完全傻逼错误的想法,一件事即使不存在任何意义或价值或正确性也可以存在。 「学什么不难呢」这种看法也全错,世界上出现过的语言就没几个复杂度能跟 rust 比的,golang 这种关键字比 c 还少的简单语法我是不知道怎么能放到一起去比的 |
62
dog82 2022-05-26 10:40:13 +08:00
go 的协程和管道以及 context 用在复杂业务场景下就是噩梦,我看 filcoin 的 lotus 的 lotus 调度代码简直要吐了
go 主要用在区块链、中小型 web 服务、docker 、k8s 场景下合适。 大规模 web 服务老实用 java |
63
nash 2022-05-26 10:44:19 +08:00
多发点这种贴,golang 会更火
|
64
wxlwsy 2022-05-26 11:01:05 +08:00 1
if err != nil 。。。。
|
65
codefun666 2022-05-26 11:01:37 +08:00
讲道理,C/C++和 Python 足够了,语言只是实现工具。 入门越快的语言,门槛越低。
|
67
ikaros 2022-05-26 11:29:37 +08:00
对,我也觉得这么辣鸡的语言为啥这么火,是我就转 rust 了
|
68
ihciah 2022-05-26 11:48:25 +08:00
这个事属于没办法,go 太好学了,市面上一抓一大把,属于农村包围城市了。
虽然对于熟手来说 Rust 的开发效率、运行效率和可维护性都比 go 好太多,但在 Rust 开发人员变的足够好招之前,业务线的 ld 很难选它的。自己能写什么很大程度上取决的别人写什么。 |
69
sampeng OP @dbskcnc 嗯。我比较同意你这一点。所以这就把问题交回给研发了,研发水平好。整体质量就高,研发水平低,那就是另一坨屎山。换句话说上限高,下限也很低
|
70
SenLief 2022-05-26 12:12:33 +08:00
日经贴,难道不是公司用啥你用啥吗?
|
71
sampeng OP @GeruzoniAnsasu
我不是特别熟悉 golang ,只是拿来练练手,随便写点小工具。仅此而已,所以比较片面,所以我提出 why ?因为我不理解。。golang 给我感觉就是一开始写很爽快,但越写越难受。 [没标准] 是说你可以任意组织代码,这是好事也是坏事,我只是从工程角度考虑,并不是个人开发,个人开发没标准是最香的。坏处就是 10 个人来写同一个逻辑,十个不同的组织方式,还各个写法不一样。 [问题交给程序员] 是把工程问题交给程序员,哦。第二个?我上面提的 rust 算吧,而且做的更好,就这破测试框架。。说实话真的用的很难受。junit 等 unit 系列的用习惯了,会觉得这个所谓测试框架太简单了。扯远了,我更想表达的是把如何写好一个代码的问题交回给了程序员。换句话说,上限高我不可否认,但下限也低。不如 java 那样上限不高,但是下限再烂也不会烂到哪里去。 [模版代码] 就是样板代码,因为没范型,要靠粘贴复制才能解决或者 n 层包装才能模拟解决。 [学什么不难]我并没说学 rust 不难,难和简单是一个相对概念。对每个人都不一样的感受。我想表达的是,学任何东西都有成本。收益比现在肯定是学 golang 最高,因为付出少,收获多。这个不可否认。我其实觉得学 rust 和 golang 是一样的付出成本,但收获是不一样的,所以我才把 rust 拿出来说。 其实不太喜欢逐字逐句的提出反驳。。因为我想表达的并不是哪一句话。而是抱怨,疑问和探索。 |
73
sprite82 2022-05-26 12:30:08 +08:00
@lisongeee
> 我知道存在即合理,但我真的没看出来 golang 有什么特别的亮点够他这么火。 > 我知道凡事必定有存在的理由,但我真的没看出来 golang 有什么特别的亮点够他这么火。 用你的话翻译一下,没错误啊,你说的错误在哪? |
74
zzzkkk 2022-05-26 13:03:48 +08:00
鄙人也说过
go 的应用面窄 只适合需要高并发中间件场景 在这种场景下速度比 java 快的基础上替代 java |
75
JDog 2022-05-26 13:31:38 +08:00 1
据说所观察到的,都是 php 的饭不好吃了,转的 golang....
|
76
disk 2022-05-26 13:33:40 +08:00
用来写网络和 IO 的中间件和微服务组件挺舒服的。go 是起源于 google 用于解决内部痛点,火是它满足了别人的特定需求。至于你觉得不舒服,大概率是你的场景没必要去用它。
|
77
ychost 2022-05-26 13:43:32 +08:00
因为背后有谷歌背书,看看 flutter 背后的 dart 写起来真实一坨 shit
|
78
chisato 2022-05-26 13:45:10 +08:00
因为开发出了 Docker ,Kubernetes 这种生产级别的工具,已经被证实成为工业界的事实标准,真正的工程不是 web 单体,分布式是常态;而工程只有 web RESTful API 吗,不还需要很多工具:viper ,frp ,etcd 。开源不是挺好的嘛?集中力量搞大事,对于我们个人用户而言 v2ray 开源用的不香吗?
|
79
iseki 2022-05-26 13:50:42 +08:00
@LotusChuan go 的 rpc 是什么?
|
81
iseki 2022-05-26 13:53:49 +08:00
Go 的有点个人感觉在部署构建(傻瓜交叉编译太香了)和基础工程工具上(比如 go fmt ),但是一旦牵扯到 CGO ,这些优势就大打折扣了。其他方面 Go 没什么出彩的地方。感觉拿来做一些命令行工具和基础设施是合适的,写业务就算了,心智负担。
|
82
zw1one 2022-05-26 13:53:52 +08:00
go 写中间件的吧 业务系统为啥不用 java
|
83
lisongeee 2022-05-26 13:57:38 +08:00
@sprite82 《用你的话翻译一下,没错误啊,你说的错误在哪?》
你认为 ”存在即合理“ 是正确的吗? 犯罪这件事客观存在,你能说它合理吗?你只能说它有存在的理由而不是合理。 比如有些法官判案错误了,导致某些人受到了不公正的待遇,这件事客观存在,按照你刚刚的思维,你认为这是合理的。 那行,祝你以后天天遇到这样的事 |
84
Hanggi 2022-05-26 14:04:08 +08:00
这也是一种大势所趋。
写简单的代码,而非优雅的代码。 |
85
lululau 2022-05-26 14:07:29 +08:00
社会对信息处理系统的需求激增,傻瓜式语言是大势所趋
|
86
johopig 2022-05-26 14:09:50 +08:00 1
对任何语言都应该保持“可以不爱,但请别伤害”的态度狗😳
|
87
8520ccc 2022-05-26 14:47:15 +08:00
cloudflare rust 用的挺多的
|
88
xsen 2022-05-26 14:47:50 +08:00
@sampeng #35 真是张口就来,一个开头全靠编。要啥没啥,好歹列个例子,比如哪些是没有的?
同一个项目,半年后去看?我们现在 n 个项目,一年后去看,还不是清楚明白;而且参与项目的都是毕业 1-3 年的 |
89
Jooooooooo 2022-05-26 14:48:44 +08:00
你要不举几个具体的例子, 原帖啥也看不出.
|
90
xsen 2022-05-26 14:55:02 +08:00
一直不是很明白很多人都说过的复杂的业务,很好奇什么样的业务才叫复杂?
按照我的理解,上微服务,用 http/grpc 拆分业务,单个服务能有多复杂?若真复杂,就是没有拆分好 当然,若是说一大坨那样的单体应用,那当我没说——毕竟不是一个级别的 |
91
sprite82 2022-05-26 15:04:30 +08:00
@lisongeee 我觉得你理解能力很有问题,语文没及格还是学个新词故作卖弄?他这句话 不就是,凡事必定有存在的理由 的意思,为什么你会觉得其他说 “存在即合理” 就是曲解本意,你说就对?
|
93
dcoder 2022-05-26 15:11:08 +08:00
主要优点: 配套的工程工具很好用, 打包成无环境依赖的 binary 往服务器上随便扔
这也是它在 DevOps/Infra 领域发展好的主要原因 主要缺点: 表达能力较弱, 写起来其实啰嗦, 加上满屏 if err != nil 看着真是疲劳 写平铺直叙的业务逻辑, 我还是不愿意用 Go, 远不如写 Python... |
94
lisongeee 2022-05-26 15:20:21 +08:00
@sprite82 拿不出依据说不过我,就直接说我杠了是吧,精神胜利玩得挺 6 啊,自己去看 https://www.zhihu.com/search?type=content&q=%E5%AD%98%E5%9C%A8%E5%8D%B3%E5%90%88%E7%90%86
|
96
jhdxr 2022-05-26 15:37:37 +08:00
1. go 足够简单,这点从很多 php 程序员都能转 go 就看出来了
2. Google 出的,大厂信仰 (个人认为第一点的原因远大于第二点 另外在世界范围内 go 并没有这么火,在国内我认为是正好赶上了一波浪潮。只说 web 服务,99%的公司的 web 场景主流语言都能做(前提是能够正确的运用语言,观隔壁 php 高并发帖子有感),更多的是用的顺手就行。 这些年真正有突破性创新的语言感觉也就只有 rust ,但那个学习曲线是真的陡峭(但 rust 也不是来抢 web 饭碗的,是抢 c++的——go 在这个领域属于 rust 做不了的 go 一定不行) |
97
Elaina 2022-05-26 15:38:55 +08:00
我觉得吧,一是语法简单,上手快,二是并发优势( channel 和 goroutine ),三是部署方便,四是背后有谷歌爹和各种开源项目( docker ,k8s 等等)站台。说实话,我认为这玩意儿写业务虽然是灾难,但是和云相关的基建开发以及造轮子是非常好用的。
|
99
Zwying 2022-05-26 15:51:28 +08:00
我就觉得 Golang 部署及其方便,我才入门的它
|