我们是把他设计为一种系统级语言,因为我们在Google所做的工作是系统级的,对吧?Web服务器和数据库系统、以及存储系统等,这些都是系统。但不是操作系统,我不知道Go是否能成为一个好的操作系统语言,但是也不能说它不会成为这样的语言。有趣的是由于我们设计语言时所采用的方法,Go最终成为了一个非常好的通用语言,这有点出乎我们意料。我想大多数用户并没有实际从系统观点来考虑过它,尽管很多人做过一点Web服务器或类似东西。
Go用来做很多应用类的东西也非常不错,它将会有更好的函数库,越来越多的工具以及一些Go更有用的东西,Go是一个非常好的通用语言,它是我用过的最高产的语言。
1
Bazingal 2021-11-26 15:08:44 +08:00 48
跟 java 比代码简洁,跟 rust 比编译速度,跟 c++比心智负担
|
2
sagaxu 2021-11-26 15:11:22 +08:00 via Android 3
if err 和 json 加字段别名,可比 Java 啰嗦多了
|
4
wdwwtzy 2021-11-26 15:12:42 +08:00 5
别闹,go 真的不能提高生产力,尤其是业务系统的生产力
|
5
hidemyself 2021-11-26 15:15:12 +08:00
go 能提高 web 生产了 😅
|
6
VANHOR 2021-11-26 15:16:26 +08:00 3
公司之前是 PHP ,现在切到 Go 了,写业务代码,真不觉得 Go 有什么生产力。
|
7
Numbcoder 2021-11-26 15:18:30 +08:00 2
go 写一些网络组件工具挺好,用来写 web/业务系统怕不是脑子进水了吧,还生产力。。
|
8
ikas 2021-11-26 15:19:04 +08:00 2
b 格有了,kpi 长了,领导升了,项目烂了
|
9
ob 2021-11-26 15:22:52 +08:00
借楼求个开源目录结构合理的 web 项目,参考下别人的优秀代码,现在的代码,都让我怀疑 go 到底哪里高效好用了。
|
10
felixcode 2021-11-26 15:27:18 +08:00 via Android
年纪轻轻不去论资排辈,动不动还生产力,你把 Java 往哪放?退休前还有这么多年怎么办?
|
11
macscsbf 2021-11-26 15:27:36 +08:00
尬吹?
|
12
v2orz 2021-11-26 15:27:52 +08:00
跟楼上一样
|
14
Ayanokouji 2021-11-26 15:29:06 +08:00
为啥没人提 kotlin (服务端)
|
16
rm0gang0rf 2021-11-26 15:31:31 +08:00
跟 php 比啥?
|
17
tt67wq 2021-11-26 15:35:26 +08:00
开发代码简洁?????
|
18
conkke 2021-11-26 15:37:01 +08:00
不如 php 一根毛(狗头)
|
19
INCerry 2021-11-26 15:40:53 +08:00 9
C# 路过~
|
20
Leviathann 2021-11-26 15:41:58 +08:00
@Ayanokouji
我们在用,总体而言比较舒适, 但和 spring 结合还是稍微有一点小坑,比如 springboot 必须要 2.4+才支持 dataclass 的 rowmapper ,在需要用到的地方需要手写一下从 resultSet 构造 dataclass 的 lambda 然后 spring data jpa 的 entity 所有字段都要为 var ,因为底层也是用空构造器构造然后一个一个 set |
21
zhujq 2021-11-26 15:46:39 +08:00
web 生产力?我大 spring 不同意
|
22
xz410236056 2021-11-26 15:47:44 +08:00
@sagaxu #2 这不都 IDE 自动生成的吗。。。
|
23
Ayanokouji 2021-11-26 16:13:44 +08:00
@Leviathann Ktorm 了解一下?
|
24
Leviathann 2021-11-26 16:17:07 +08:00 via iPhone
@Ayanokouji 了解过 但是技术选型不是我做主。。
|
25
123jiayue 2021-11-26 16:18:09 +08:00 via iPhone
喂你们最近是要黑 go 吗 怎么这么多这种😄
|
26
Ayanokouji 2021-11-26 16:19:19 +08:00
@Leviathann 哈哈,我感觉 jpa 很不舒服
|
27
xsen 2021-11-26 16:36:29 +08:00 4
|
28
xsen 2021-11-26 16:41:13 +08:00 2
不过只能说 go 或者真的戳到某些人的痛点
像我们这边的,毕业 1-2 年的原先做 c++/java 或前端的同事,拿本书 1-2 周过一下,就可以用 go 写业务代码 我是真的很想知道,楼上诸位说的业务代码,都是些什么业务代码? 不就是数据库表 model crud 、api 设计实现;业务处理逻辑;第三方系统对接? 难不成还有别的什么不成 |
29
lyhapple 2021-11-26 16:47:02 +08:00
就算是用 go 写 CRUD, 我也觉得比用 java 写的爽.适合自己的,就是最好的 :)
|
30
cmdOptionKana 2021-11-26 16:53:51 +08:00 2
我非常喜欢 Go ,但我只用来写小项目。
小项目,Go 的优势比较明显,但是大项目就没办法吹得太狠了,实事求是才能避免无谓的争论。 比如代码简洁:小项目 Go 可以几个 struct 加几个函数直接开干,不用像 Java 那样考虑层层抽象。但项目大了还是需要层层抽象,需求经过几轮疯狂添加之后代码也很难说有多简洁了。 又比如编译部署,小项目直接扔一个二进制可执行文件出去就行,当然方便。但是大项目的基础设施都搭建好了,一切都自动化滚动更新,此时 Go 的优势又不明显了。 |
31
matrix1010 2021-11-26 17:00:34 +08:00 2
Go 写个能用的东西很快。甚至得益于 goroutine 的强大性能,写个能支持高并发的东西也挺快。但是要想写一个对开发者友好,具有一定通用性,方便扩展,易于维护的东西,就需要比较高的设计能力与品味了,而且很多时候必须要依赖代码生成,又进一步提高了门槛。另外个人感觉 Go 写测试的难度也比其他语言大些,国内用 Go 的公司写单元测试的比例估计很低
|
33
zhady009 2021-11-26 17:33:59 +08:00
用 go 写 erp (狗头
|
34
lbp0200 2021-11-26 17:46:54 +08:00 2
在线人数小于 100 ,建议 PHP
在线人数小于 1000 ,建议 Java 最后考虑 go ,避免以下尴尬,一顿操作猛如虎,在线人数二十五 |
35
mason961125 2021-11-26 17:48:42 +08:00
|
36
balabalaguguji 2021-11-26 17:50:33 +08:00 1
你看下 go 跟 mongodb 的交互代码说不定就要放弃了,我就是
|
37
matrix1010 2021-11-26 18:14:23 +08:00
@mason961125 从我的角度来看对比 Python/Ruby 肯定难写很多,很多时候非常难 mock 。举个例子 goroutine, 别人的代码里有一部分逻辑是 goroutine 完成的,而你的测试在 goroutine 没完成之前就结束了,线上这个东西没问题,但你的测试结果就是不对。而且测试轮子不多,比如类似 factoryboy/factorybot 的轮子就没看到让我满意的。
|
38
liprais 2021-11-26 18:16:29 +08:00 1
- 心智负担较轻
这是认真的么.....范型和异常都没有这负担还不重? |
39
wanguorui123 2021-11-26 18:28:19 +08:00 via iPhone 1
CSharp 写 Web 最爽
|
40
joesonw 2021-11-26 18:38:51 +08:00
@sagaxu json 字段别名, java 不也是得加吗? 不加 json tag 也是可以的, 默认都是 camelCase
|
41
jin7 2021-11-26 18:47:27 +08:00
go 语言有啥好的 库肯定没 java 丰富
|
42
beneo 2021-11-26 18:51:31 +08:00 1
库都是 github 的,我第一感觉就是会不会不稳定
|
43
jaywhen 2021-11-26 18:54:30 +08:00
第 n 届 v 站不定周期性语言大战开始!🍉
|
44
cmdOptionKana 2021-11-26 19:00:54 +08:00
|
45
iamv2er 2021-11-26 19:06:36 +08:00 via iPhone
日常 因为语言吵闹 好无聊 真的
|
46
huigeer 2021-11-26 20:10:16 +08:00
目前入坑,感觉实现一个 web api 框架好 easy 。看起来好透明,😋。真到实际业务的各种封装,还没体会到。
|
47
sagaxu 2021-11-26 20:20:23 +08:00 via Android
@joesonw go 的导出成员首字母要大写,跟大多数公司的 API 规范不一样,只能挨个字段备注别名。Java 没有首字母大写的习惯,且可以在 class 级别或者 json 库全局级别设置不同的命名规则,大部分情况下不需要挨个字段指定。
|
48
akyle 2021-11-26 20:54:52 +08:00
没必要,要开发效率就选 Java ,而且还可以本地化。
|
49
cutchop 2021-11-26 20:55:29 +08:00
node 天下无敌
|
50
wonderfulcxm 2021-11-26 21:02:51 +08:00 via iPhone
试过一段时间,简陋的语言,要啥没啥,写起来好累。
|
51
ClericPy 2021-11-26 21:14:16 +08:00
all-in golang 的国内公司也不少了, 他们选择的理由够直白的了, 比如说
|
52
solos 2021-11-26 22:30:03 +08:00
go 堪称完美
|
53
yxx1993 2021-11-26 23:10:22 +08:00
go 在 web 方面比 php 性能好,但是在 web 方面还是没有 laravel 这种专业 web 框架有生产力。个人见解
|
54
windseekerjack 2021-11-27 02:46:16 +08:00
@zhady009 之前公司还真写过,并没有什么问题,不是很懂有什么方面的业务对特定编程语言有难度
|
55
Austin2035 2021-11-27 10:20:10 +08:00
@lbp0200 网站可以没有那么多访问人数,但一定要有百万级并发的架构。/doge
|
56
heytap 2021-11-27 10:23:51 +08:00
用 go 写业务代码真滴痛苦
|
57
mmdsun 2021-11-27 11:14:15 +08:00 via Android 1
go 写复杂的业务逻辑不如 Java ,生态差,也就是云原生和运维的优势。很多框架都是造 Java 重复的轮子
那这样的话还不如用 C sharp 写,有 Java 优写业务点,云原生支持好。全球范围看 asp.net core 的 web 框架比 sping 都多。 |
58
micean 2021-11-27 11:42:47 +08:00
为什么一定要用 oo 思想写 java 然后怪 java 太繁琐???
|
59
ericgui 2021-11-27 12:44:30 +08:00
@wanguorui123 据说是的
|
60
seakingii 2021-11-27 13:29:43 +08:00 1
别炒了,做业务用 C#,JAVA 最合适
|
61
hutoer 2021-11-27 14:20:10 +08:00 1
- 开发代码简洁?其实远不如动态语言
- 编译部署简单?编译不挂代理试试,死的心都有。现在大多是 docker 了吧,一个命令的事情 - 心智负担较轻?不一定 |
62
KevinBlandy 2021-11-27 17:39:17 +08:00
errlang 。
|
63
undefine2020 2021-11-27 20:17:00 +08:00
事实上大部分 web 业务都不是大流量高并发的,上 php 足以。
|
64
JasonFlink 2021-11-28 00:30:56 +08:00 via iPhone
感觉它就是为了更快出货而存在
|
65
xiaotianhu 2021-11-28 15:57:14 +08:00
这贴我渐渐品出当年 PHP 的味道了啊
以后就是 "Go 是最好的语言",然后两边互喷了吧? |
66
fengjianxinghun 2021-11-28 19:33:43 +08:00
@hutoer docker 也得挂代理,装个什么包先要改源。。。麻烦程度一点不少。
|
67
yin1999 2021-11-29 07:08:44 +08:00 via Android
@beneo 如果有人已通过 goproxy 拉取了某一版本的 package ,除非作者向 goproxy 提出删除 package 的要求,否则这个版本的 package 会一直被缓存在 goproxy 中(即使作者删除 GitHub 仓库),也就是说:这个版本的 package 会一直可用。
|
68
jjshare123 2021-11-29 10:11:39 +08:00
我可能有点怀疑您有没有写过业务
go 在 web 业务上根本谈不上生产力,甚至说是拖后腿的那个 |
69
NBY 2021-11-29 14:40:40 +08:00
说得好!我用 python
|
70
CasualYours 2021-11-29 16:53:31 +08:00
所以讨论了半天,还是最熟悉的才是最有生产力的
|
71
panlatent 2021-11-30 16:38:13 +08:00 1
个人愚见,go 会让简单的东西便得更简单,复杂的东西变得更复杂。
|
72
Joker123456789 2021-12-02 17:31:20 +08:00 1
你说这种生产力,java 有啊,很多年前就有了。 那会儿叫 servlet 。
go 更适合跟 C 作比较,跟 java 比 web 还是差点意思 这几天遇到很多槽点: 1. 反射 必须事先指定类型,无法做到像 java 那样 仅凭一个字符串就能把方法给调用了 2. json 无法转化成 map ,因为 interface{} 无法像 java 的 Object 那样 拆箱成任意类型 3. 没有动态代理,没有泛型 这些问题 衍生出了一个更大的问题,就是开发一些 通用的 工具包,框架 会非常难。 必须退而求其次 这是个很严重的问题,会直接导致三方生态的薄弱 |