1
lsk569937453 333 天前
其实 golang 的性能和 java 差不多的。
|
2
28Sv0ngQfIE7Yloe 333 天前 2
|
3
silentsky OP golang 还有哪些地方觉得不爽的吗 大佬们可以讲讲
|
4
coolfamilyxun 333 天前 via Android
没多大意义。
当我用上低代码阁下又该如何应对 |
5
Lockeysama 333 天前
@silentsky 非要说的话,就强类型吧,特殊情况下没 Python 这种灵活,需要更多的代码来处理相同的业务,不过这个本来就是这样的,属于鸡蛋里挑骨头
|
6
BeiChuanAlex 333 天前
asm:我从来都是笑笑,不说话。
|
7
silentsky OP @Lockeysama 我觉得强类型是个优点
|
8
coderxy 333 天前
作为写过 node py 动态语言的人,我也想说 go 的强类型是优点。
|
9
yazinnnn0 333 天前 3
正常, 接触过 go 的 java boy 如果不喜欢 go 的话, 只能他没有品味😅
|
10
sunny352787 333 天前 3
golang 那个残疾的范型让我这个写惯了 C++模版的人感觉很难受
另外就是限制多了点,类似左大括号不许换行以及声明变量不使用就编译不过这些...不过写习惯了也能忍吧 |
11
lsk569937453 333 天前 44
@yazinnnn0 讨论语言就讨论语言阿,怎么还上升到品味了。饭圈思想?
|
12
arloor 333 天前 4
Rust 天下第一
|
13
hankli 333 天前 16
PHP 天下第一
|
14
hello2090 333 天前 via iPhone 2
不懂,谁给的钱多听谁的,给我 200 万一年,COBOL 我都愿意写
|
15
lstz 333 天前 via Android
我喜欢 golang ,我的开源项目 laftools 最开始是 Java ,但是实在难以忍受慢卡重,换做 golang 真的舒服好多了
|
16
lstz 333 天前 via Android
golang 给你一种小巧灵活的感觉,做一些个人小项目绰绰有余了
|
17
cmdOptionKana 333 天前
@lstz 做小项目,golang 的工具链非常舒服,就是从零开始构建一个程序的过程很简洁,给人很“轻”的感觉。
|
19
szdev 333 天前
@lsk569937453 得看情况,有些小主机根本跑不动 java,但是 go 可以
|
20
Lockeysama 333 天前
@silentsky 是的,有得有失吧,写更安全、更健壮的代码会简单一些,代价就是牺牲点开发速度
|
21
mynameislihua 333 天前 6
说得好,我选择 C#
|
22
cdzone 333 天前
我感觉 golang 主要对标语言可能就是 java ,毕竟有 gc ,和 c/c++对不上生态位的。
|
23
kuituosi 333 天前 4
普通 java 程序员也能把 java 写的很规范
就算是高级 golang 也能把代码写的很难看 |
24
yooomu 333 天前
我觉得很 cool ,但我是不会选择用它干活,语言特性太简陋,写起来费劲,不适合写业务。我想处理个集合都费劲。即使现在有了泛型,但仍然不好用
|
26
wyl986 333 天前
@hankli 不知道是 Laravel 的锅还是 PHP 的锅,我把项目里面有个被频繁请求的接口用 go 重写了,cpu 负载直接从 70% 降到了 40%; Laravel10 ,php8.2 ;但是我还是很喜欢 Laravel ,出活快
|
27
mmrx 333 天前 8
100 行 go 代码,50 行业务逻辑,50 行 err 处理
|
28
yKXSkKoR8I1RcxaS 333 天前
|
32
Ayanokouji 333 天前
@mmrx nonono 一行业务代码,3 行 err 处理(:狗头)
|
33
qloog 333 天前
近今年一直用 go, 跨平台、强类型、编译快,谁用谁知道。国内很多公司的微服务也是基于 Go 的。开发 api 和 web 都没问题,框架也很多:gin, micro, go-zero, kratos, 不过我用: https://github.com/go-eagle/eagle
|
35
28Sv0ngQfIE7Yloe 332 天前
@kuituosi gopher 会说 java 写出来又臭又长的
|
36
ExplodingFKL 332 天前 1
写 kotlin 的我瑟瑟发抖
|
37
Leovim 332 天前
@Lockeysama #5 冷知识,Python 也是强类型,只是动态类型赋予了它更多灵活度,相对而言 Golang 是静态类型。
|
38
Uplay 332 天前 via iPhone
@ExplodingFKL 写起来真的好舒服
|
39
hankli 332 天前
@ExplodingFKL 发抖啥, 支棱起来!
写业务还得是 kt 丝滑! 虽然我是个 Javaer,但不妨碍我业务用 kt, 工具用 golang. 😎 |
40
dcsuibian 332 天前
我就尝试过以后不太喜欢 Golang ,当然不可否认的优点有:强制格式化、体积小、轻量
|
41
timnottom 332 天前
golang + codegen 其实写起来还行,没有那么糟糕
|
42
lesismal 332 天前
@lsk569937453
#1 单比较语言指令 cpu 消耗那些,不同测试项的确是各有千秋总体差不多。但是 java 离不开社区全家桶,当 java 都用这些东西的时候,实际生产项目的性能确实挺差的 #11 也不算上升到品味,也不是饭圈。而是实事求是、确实是品味有问题 |
43
lesismal 332 天前
@yazinnnn0
也可能是 java boy 技术还不够深入、经验还不够丰富的阶段、get 不到 java 有多差 golang 虽好但毕竟性能还是达不到极致,java 的香,用郭德纲的话说,全靠同行衬托 |
44
txzh007 332 天前 1
目前来说,java 的 review 是我做过最舒服的,剩下的语言都多少有点奇怪
|
45
ryanking8215 332 天前 2
我知道大家都懂,看到了几个帖子,还是忍不住要提一下,python 是强类型。
|
46
J2ephyr 332 天前
ts 天下第一
|
47
Dogtler 332 天前
我觉得不用写分号是个优点,以及 function 简写 func
|
48
lvlongxiang199 332 天前
@sunny352787 我觉得写 cpp 模板才难受(没 concept 的情况下), instantiation 的报错根本没法看
|
49
sunny352787 332 天前 1
@lvlongxiang199 golang 的泛型不支持成员函数,我心里万马奔腾...
|
50
soupu626 332 天前 4
太简洁了,以至于我在不同的工程中看到了好多不同的 listContains 实现。。。
又是怀念 apache-common 和 guava 的一天 |
52
GeekGao 332 天前 5
每一届踏入社会的程序员感慨 X 语言比 Y 好用。所以互联网上每年都会有不同年份的月经贴。
coding 折腾 20 年的老狗就没这么些感悟了。已经懒得言语这些了。 |
55
byte10 332 天前
@yazinnnn0 我不喜欢 go ,因为他的类型和变量名 位置相反的,跟 js es6 ,跟 python ,c#,c c++ ,java 跟很多语言不太一样,非常的出戏,导致我的不喜欢它。
|
56
byte10 332 天前
|
57
Bingchunmoli 332 天前 via Android
@silentsky 时间处理算是不舒服的点,, 还有就是因为没有垄断生态,写项目要考虑技术选型,还有第三方库不太会找
|
58
kneo 332 天前 via Android
写小应用内存占用十几 M ,很舒服。
|
59
ShiJh 332 天前
err 处理绝对是最恶心人的,每次至少占用三行代码,虽然说这样对异常情况比较清晰,也会自觉的去处理各种异常情况,但是就是处理 err 就是多到令人烦躁
|
60
lesismal 332 天前 1
@byte10 Hi 好久不见!
当年 golang 还没成熟的时候,我写 c/cpp 觉得有点累,于是手撸 NIO 被 java 的臃肿恶心到了,然后想想还是继续撸 c/c++算了,golang 成熟了我就撸 golang 了。 性能这个,同样的看我前面楼层,别说语言指令这种,要用大家常用的对比。可能跟老 php py 这些比是要强些,跟 nodejs 、go 比应该都是被吊打。剩下的也只有所谓的生态优势,但对于 curder 来说其实主要是行业技术栈优势,例如电商、企业级已经有那么多 java 那没必要重新造一遍,但这并不是别的语言不能搞、而是它还算稳定所以没必要重新搞,它占领市场早所以岗位多罢了。但是新生领域或者说需求变化快的领域,它也并不具备优势,所以直接头条 b 栈猎豹移动七牛各种新兴势力倾向 golang 。抛开这些行业选择它的历史优势,很多 java 不适合的,例如云原生。还有一些虽然用了 java 实现的基础设施、但其实如果用其他语言会比它效果更好,同样也是历史原因罢了。 另外,javaer 遇到“复杂”点的问题容易懵逼,例如系统知识,怎么排查网络、数据库各种。我不是说所有 javaer 都不懂,而是相比于 c/cpp/go 这些,javaer 不懂的人的比例有点多。言必称希腊,聊技术就是框架、全家桶、八股文。当然,我不是针对 java ,脚本语言的人绝大多数也基本都这样。并不是怪这些开发者不求上进,而是因为 java 社区就流行这种氛围,见过太多八股文选手,背了一大堆,侃知识点说的头头是道,离开八股文范畴面试问他点深入的就容易 game over 。 我也看到过很多 javaer 自己总结:背会了很多八股,但结合实际了却不知道怎么应用。 再说下 java 性能不错,比如 2018 年那会我门一些兄弟部门业务重构由 java 切到 go ,切换后对比了下,业务量还是原来那么多,他们对比了重构前后的消耗,以前 java 的内存消耗大概是 go 的 2-3 倍,cpu 消耗是 go 的 1.5-3 倍,响应时间 go 略好但整体上倒是没差太多基本可以忽略,因为并不是把服务硬件指标跑满、主要时间都是花在数据库上。别人喜欢用重构后消耗降低了多少百分比,但百分比看上去就好像是节省了一个比例罢了,反过来看,假设以前是 go 、切换到 java ,硬件成本直接翻 2-3 倍,这个情景就比下降的百分比更明显了 |
61
lesismal 332 天前
@byte10 所以对我而言,java 这种没有系统编程能力、性能有限、臃肿直到宇宙尽头、非常浪费硬件的“垃圾”,根本不值得我去浪费时间深入了解它,所以我并不那么了解它。这道理就像是,路上看到一坨狗屎,大家得躲着走,总不能要求别人上去尝一口然后才有资格说它臭吧。。。
|
62
lesismal 332 天前
我对 java 的评价一直很差,以上言论虽然是实话实说但对于一些同行来说可能有些刺激,如果管理员要处罚我,我认罚、以后本论坛里我尽量少喷 java 。
|
63
testFor 332 天前
go 确实快,但是不是很习惯,因为不像面向对象的语言,也不像 js 哪种函数式回调的语言(可能因为我不太懂). 感觉更鼓励写同步代码,网络就是写死循环,这点从 netty 切换过来不是很适应,而且从网络来说,可能我先入为主,更适应 netty 的那种流水线形式的处理与各种协议的预置编解码器.
不过最明显的改变就是 200 行我只能写一个 netty 的启动类+一点业务处理,但 go 可以完成一个网络服务,api 非常简洁 |
64
diagnostics 332 天前 2
Go 爱好者很喜欢拿 Java 来对比,有的没得,谈到编程就喜欢把 Java 批判一番
你见过哪个 Java 爱好者天天去碰瓷别人的? |
65
lesismal 332 天前 1
@diagnostics
> 你见过哪个 Java 爱好者天天去碰瓷别人的? 兄弟,碰辞这个词用得不对了吧? 你看你自己原话都说了是批判的啊:“谈到编程就喜欢把 Java 批判一番” 怎么逻辑都不讲了呢。。 @Livid 我怕自己忍不住继续陷到语言之争里,求站长大大把我禁言几天。。。 |
66
yusheng88 332 天前 2
个人体验:
go 的优势是: 1 、 协程+标准网络库都做了非阻塞处理(比协程更重要) 2 、 打包方式 Java 的优势是: 1 、 生态 2 、 市场 在 web 系统开发效率和规范性: Java >> go 你在 web 领域遇到的问题,在 Java 中 99.99%都能找到解决方案和类库。 至于别人吹嘘的 go 省内存和 cpu ,看看就好,特别是啥 Java 项目重构为 go 就省了多少内存,cpu 的。 能节省内存,肯定是逻辑优化带来的,单纯语言的切换,能带来 1 倍内存差距?想多了,算下 go 的一个对象比 Java 节省多少内存就知道了。 cpu 节省的,只能说,框架功能越少,cpu 越低。 真正在 web 领域中性能和开发效率高于 Java 的,应该是 C#,但国内市场不好找工作(薪资对比 Java 会低些)。 go 比 Java 更适合的业务场景是:中间件。 最后就是网上所有人对于开发语言的评论都不用在意,没有人能精通多种开发语言,都是个人体会而已。 |
67
Maboroshii 332 天前
写多了 go 看其他语言感觉很难学。 (随便找一个热门语言就发现怎么满屏幕的 @
|
68
lstz 332 天前 via Android
@cmdOptionKana 是的,而且不需要学习太多设计模式,简单粗暴好上手,就是它最大的优点
|
69
mightybruce 332 天前
面向工资编程,go 平均工资肯定是比 java 高的,这个在国外的各语言统计有表现。
大多数 javaer 基本都是依赖各种框架和库, 离开框架和库 属于什么都不会。 语言都要分领域的,java 适合的和 go 适合的领域不一样,过个 10 年,业务开发有可能会出现 go 程序员和 java 一样人多了。 现在不是 10 年前的市场,那是招聘基本是 curd 和 web 方面的人。 |
70
securityCoding 332 天前 1
@silentsky #3 协程 panic 进程直接退出
|
71
silentsky OP @securityCoding 刚我看了一份 golang 编程规范说 panic 尽量不用😂
|
72
ysy950803 332 天前 via Android
Java 玩腻了应该玩 Kotlin 呀。
|
74
Leviathann 332 天前
经典 spring boy 假装自己写 java
|
75
fpk5 332 天前
@securityCoding #70 都 panic 了那可不得退出,内核里面 panic 了也只有重启啊
|
76
FightPig 332 天前
自从因为编译后被报毒不得不用 rust 重写了一个业务后,发现 rust 写起来比 go 还爽,就是有时太折磨大脑
|
80
SeaTac 332 天前 via iPhone 5
你站水平体现
钱没几个 代码写得烂 语言吵得最欢 |
81
jonsmith 332 天前 via Android
go 玩玩可以,找工作还得是 Java
|
82
bianhui 332 天前
1. 工作和爱好是两码事
2. 如果不是要让自己孙子继承自己的代码,动态语言随便写写得了。现在语言发展的情况,啥语言用时髦的解决方案性能都差不了太多,差的多补一台机器抵得上别人优化一个月。 |
83
layxy 332 天前 1
@silentsky 你用习惯了 java,用 go 最不爽的就是 go 的 err 了,不过习惯了之后发现 err 也还好,表示这里可能会产生异常,可以细粒度把控,就是有时候代码中有比较多的 if 判断
|
84
pursuer 332 天前
@lesismal 每个语言有其优缺点,要讲起来,Java/JVM 系有热更新,repl (虽然 jshell 用的人很少),脚本化的 groovy,beanshell 等,go 就没有,go 的类型推断能力也是相当弱。你要说性能有限,那带 GC 的语言不都是被 Rust 秒了,vm 系还可以做运行时 pgo 优化,论上限可能还能好一点。不过 Java 也有比较大的问题,发展迟缓(21 才出协程,值类型更是不知道什么时候,被 C#爆成渣了),oracle 商标问题不说,在我看来 jvm 的函数重载及其函数签名会使得运行时和编译环境关联,是个非常大的设计问题(例如 Java9 ByteBuffer API 变更问题)。总之,业务开发还是首选 typescript(...
|
86
tongqe 332 天前
吹 go 的人,写 Java 水平也不咋地,或者说只懂 Java 一门语言
|
87
byte10 332 天前 1
@lesismal 嗯,java 是有一些缺点,你评价都很中肯。至于臃肿那是生态的问题,再过 10 年,我估计 go 也差不多,越强大的框架性能 肯定会下降一些的。用轻量的框架去开发 java ,性能不会有数量级的差距的。
|
88
c2const 332 天前
说得好,但是我选择 C 、C++ 、C# :)
|
89
Duolaimon 332 天前
试试 rust
|
90
yh7gdiaYW 332 天前 2
从上家的 Java 切换到现在的 Python ,最大的感触就是当员工水平一般的时候,Java 这语言是无敌强大的,就因为它的写法够死板+Spring 全家桶够好用。
至于 Python ,一是写法百花齐放(乱七八糟),二是虽然有类型注释但运行时又不检查,三是 web 生态实在比不了 Java |
92
wupher 332 天前
- err 处理很那啥
- 并发处理一流 |
93
gongxuanzhang 332 天前
我用 kotlin
|
95
ychost 332 天前
写过 Java/Kotlin/Groovy/C#/Go/Js/Python ,里面最喜欢的是 C#/Kotlin/Groovy
|
96
label 332 天前
@yh7gdiaYW 你说的这个问题, 我觉得原因是 java 的 web 开发已经形成了一套行业规范, 各家的开发标准都大差不差. 至于其它语言写法的百花齐放, 也是不够成熟 (相对 java 来讲) 的原因
|
97
diagnostics 332 天前 6
@lesismal #65 这么说吧,你在帖子里吐槽大部分 Java 程序员不关心底层技术确实是普遍现象,但是现象和语言本身没啥关系,导致这个现象的原因有:
- 培训班 - Java 大部分都是企业级应用,由少部分人完成大部分抽象,大部分人干业务逻辑的活 我同意技术是程序员一个非常好的提高方向,我本身也是做基础架构开发的,也受不了业务开发简单的小毛病都找来问我,但我从来都不会认为他们的业务能力是完全没用,业务的领先能让你超过同行,技术领先大部分时间只能是降低自己的成本,市场大部分时间只会会业务买单而不是技术,除非这个技术与业务息息相关(如量化交易里面的延迟) 再说了,是写 C4 垃圾收集器,LMAX 几个低延迟库的这些人底层技术懂得比写 Go 的人少,还是写 Flink 、Spark 对流批计算懂的比写 Go 的少? 语言决定的只是特性的区别,问题在人,因为你学的是 Go ,所以接触的底层技术多一点,但让你去搞基金估值的 IBOR 或量化交易算法,你也未必玩的转。 |
99
inhzus 332 天前
1. IfErrNotEqNilLang
2. 在高吞吐小结构体业务下,性能远差于 Java (主要是 GC 压力) 3. 中间件完善的情况下,搓业务很爽 |
100
diagnostics 332 天前
你能说出 “不像 java 基本就是 spring 全家桶,还有各种第三方包” 就知道你的水平没多高,连云原生相关的几个框架,例如 quarkus 都不去了解。
|