Java 玩腻了 其实发现 golang 也还不错 确实很简洁

331 天前
 silentsky
18297 次点击
所在节点    程序员
179 条回复
silentsky
330 天前
@diagnostics 非常同意 有时花时间的并不在语言本身 语言之外如业务理解、架构流程等也是极为重要
diagnostics
330 天前
@lesismal #61

> 所以对我而言,java 这种没有系统编程能力、性能有限、臃肿直到宇宙尽头、非常浪费硬件的“垃圾”


哥们,求求你了,去把 Flink 重写,中国开源第一人应该就是你了。你知道大数据用多少台机器,都跑在 JVM 下吗?我记得前几年阿里宣传 Fink 的案例好像都是千台服务,你用 Go 重写应该能降到 500 台以下吧?别的不说,达摩院院长你来当
silentsky
330 天前
@diagnostics quarkus 这个词出现在我视野的次数确实不多 后面多了 我可能会去看看
Torpedo
330 天前
@lesismal 很同意第二段。作为一个工作也 7 、8 年的前端,我合作过各种语言的后端。java 的后端有个很明显的现象(不止一个)就是你和对接口,我和他说咱们按照 http 协议怎么着,他和你讲他的框架怎么怎么着。
当然可以说这些 java 水平不够,但是别的语言后端菜逼我也合作过,但是只有 java 的后端他们明显更难从 http 协议来讨论,而不是给我聊你的框架怎么怎么
sunny352787
330 天前
@diagnostics lesismal 写的 nbio 网络框架我的项目在用,你写了啥?
yh7gdiaYW
330 天前
@label 是这么个意思,Java 已经形成了一套标准的开发规范,一个有经验的正职带领一群外包,就能开发出很不错的产品。现在用 Python 这块儿就很蛋疼,手下这群外包真是各显神通...
fionasit007
330 天前
之前没写过 go ,前一阵接了一个坑,别人留下的 go 项目,给哦的感觉得就是 go 又杂又乱,不知道是不是他用的框架和写的代码问题,具体说起来也不好说,反正就是写的不舒服🤣
edwinyzhang
330 天前
@Lockeysama 我喜欢强类型,写 python 经常代码写着写着自己看不懂了。就是因为没定义类
mightybruce
330 天前
@diagnostics 人家的项目至少在他的工作领域方面很不错, 你有神马,你还不是嘴炮。
另外你不会知道大数据现在已经也在变化吧, 这都是来自于谷歌的大数据论文。
chaleaochexist
330 天前
我在想这种情况下会不会造成学习难度比 java 大呢?
>>> 绝对不会...
刚了解了 golang 的 web 框架,感觉真的是百花齐放,数量不少
>>> 单轮 web 框架的话, 如果你不知道用哪个, 无脑 gin. 如果你不知道用哪个 ORM 的话 无脑 GORM.
那如果用其他的呢?
>>> 现用先学绝对来得及.
wanqiangcrack
330 天前
@lesismal 脱离业务需求去谈语言是正儿八经的纸上谈兵。

本来是不想说话的,但是看到这篇长文还是出来了。 被 Java 的臃肿恶心到了,请问是哪方面的臃肿,如果你说的是语法糖比较少,那我信了。起码得说一下到底臃肿在哪了。这时候就不得不说为什么现在最流行的部署版本是 1.8 的原因了。 原因就是,为什么要换新版本? Java 最早设计的是面向全平台的,有不同的版本 ME SE SERVER 的。现在基本上使用最广泛的就是中型或重型企业级的应用,那为什么这些企业倾向于使用 Java 呢? 因为稳定、可靠、久经考验、成熟的生态和以 Oracle 为首的本身作为企业级服务提供商的大企业背书,对于 Java 自身所适应的业务方案,他就是最佳选择。 如果不打算使用动态特性,对代码进行 Native 编译,其性能是基本和 cpp 持平的,很好理解,因为大家都是机器码,就是要抛弃 Java 的很有有用且优秀的特性,例如反射,动态加载。 “所谓的生态优势”,微软都要哭了好么? 生态就是语言最大的护城河啊 这点都不明白还出来讨论啥语言。。 只要 Java 本身还在持续的迭代,还继续有大企业背书,其性能和可靠性依然与同类语言基本持平,他的地位就是不可取代的。kotlin? kotlin 也不行的。Java 背后还有个 JCP 来控制整个生态的可持续和稳定性呢。对于 web 来说,目前还没有 Java 不适应的领域呢,做游戏服务端用 Java 的也比比皆是,毕竟 GraalVM 之后,其本地化之后对资源占用率有很大程度的优化。 当然,没有白吃的内存,除非是内存泄漏。吃掉的资源一部分是用来提供动态特性的支持,一部分就是用来维持其稳定性的。 有可以出错的余量,才会稳定。 能保证程序一定不出错么? 基本是不能的。

“Javaer 遇到复杂点的问题比较容易懵逼”,不好意思,这事儿不是说用哪种语言的人会这样,是这类人是这样的。 就不展开说了。

脱离你的业务场景去谈我要用什么语言是很无聊的, 除非你是架构师,架构你说算了,或你是技术总监, 技术路线你说了算,或者说你有用 golang 去做中型或重型企业级应用的丰富经验,觉得可行并能够说动以上两种人去做,那完全没问题,那你说的就是完全正确的。 有人说 Java 不厉害,厉害的是 JVM , 嗯 我完全赞同。但这俩是一块出生的,所以就一块共生到现在了,就是这么无解。
silentsky
330 天前
@lesismal 看了 nbio 确实是 golang 大佬
chaleaochexist
330 天前
@silentsky golang 的反射和动态加载能力很若.
导致 java 里面很多框架基于 spis 动态代理等方式在 golang 里面行不通.
所以 golang 很多框架都是通过生成代码的方式进行的. 用的多了有点烦躁.
参考: https://github.com/sqlc-dev/sqlc
https://github.com/ent/ent
GRPC
protobuf 等
ZeroDu
330 天前
go 简洁,还是怀念 java 的 hutool 、各种 util 、common 。缺少开箱即用的感觉,各种操作都折腾一下。go 那边缺少 spring 这种大型的组织,各个 web 框架都是个人或者几个人在维护
Chad0000
330 天前
说得好,不过我站 C#这边。
runliuv
330 天前
说得好,我选择 C#
chaleaochexist
330 天前
@wanqiangcrack #110
我举个臃肿(复杂)的例子.

就以 python/go/java 举例子.

如果你是一个有经验的工程师, 给你一个陌生的 python/go 项目,自己捅咕捅咕就能跑起来.
我敢保证 java 项目绝对一脸懵逼.
mightybruce
330 天前
说 java 不错的麻烦就不要谈神马性能了, 天天用 spring 全家桶的人根本不配谈性能, 和 cpp 持平基本没几个人能做到

java 的确是成熟的业务开发必备, 开发起来效率搞。降低程序员的门槛, 连代码都写得整齐划一,没有特点
如果你不是科班没问题,都是吃饭, 业务开发隔离了很多计算机知识本质就是企业的考虑,好控制人员和成本,缺你都有的是人。
XXWHCA
330 天前
可以写 Kotlin 嘛,体验一下 java 没有的特性
beneo
330 天前
@lesismal 大神如何处理堆栈的,使用 go 语言的时候,比方说 gorm ,一个打印的异常,堆栈都没有,很那去追到代码里面,然后查看是哪行代码错了

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

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

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

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

© 2021 V2EX