讨论 Java 相比其他编程语言(c++, go, rust 等)的缺点

155 天前
 steelshadow39

本人学生,我自己是写 Java 的,最近发现身边技术能力远高于我的同学对于 Java 这门语言的态度并不友好。由于没有大型互联网项目的经验,所以还没有体会到 Java 相较于其他几种语言的瓶颈,自己能想到的缺点也就性能相对较弱,代码冗长(我本人觉得这种代码即注释挺方便理解的)。Java 的生态可能是最全的吧?并且现在互联网公司大头应该还是 Java (个人想法,我猜想一些公司仍然使用 Java 是因为换门语言的成本太高?所以求稳)。

想请教各位 V 友的看法,以及在国外编程语言的发展趋势是什么情况?

只做理性讨论,没有“XX 语言是最好的”这种想法,谢谢。

15071 次点击
所在节点    Java
162 条回复
lizhian
155 天前
占内存,语义啰嗦,反过来也是它的优点,定义明确,入门简单.但是后面写着写着就觉得很烦,羡慕其他语言的语法糖
lizhian
155 天前
@lizhian 举个例子,资深 Javaer 用过 kotlin 都会变成半个 kotliner,性能不一定有提升,kotlin 的语法糖写起来太舒服了
NessajCN
155 天前
我对 java 本身没什么好恶
不过有些 java boy 明明其他啥也不会却喜欢张口闭口 java 天下第一,
什么 java 取代 go, java 取代 cpp
那就很招人烦了
Hyschtaxjh
155 天前
太卷
yazinnnn0
155 天前
只有一个赛道的才有比较的意义, java 的应用场景和 c++和 rust 都没啥关系, 没有比的必要, 和 go 比也只是部分重合

如果对比 csharp kotlin 这种应用场景大范围重合的语言, java 的表达能力较弱, 历史包袱大一些, 糖少一些, 脑细胞多费一些
sunwei0325
155 天前
indeed 搜一下, 北美后端也是 java 为主
PTLin
155 天前
倘若你没有学习过 cpp ,go ,rust ,那么和你讨论 java 相比其的优劣是毫无意义的,你很难理解 java 相比这些的优点究竟是什么,也难以理解那三个语言解决了什么问题。就像我上一个天天只会说 java 天下第一的同事一样。
murmur
155 天前
java 看市场和占比已经赢毛了,那就不叫缺点叫特色了
yazinnnn0
155 天前
近些年流行的工业语言大多有向 ml 学习借鉴的趋势

比如 kotlin fsharp swift rust dart, 都有 ocaml 的影子(go 除外)
murmur
155 天前
很多人看 java 语法一坨屎,啰嗦,这个不支持那个不支持,但是 java 背后是一个帝国,别的语言还在造轮子的时候,java 这边给你准备好了开箱即用的停车场,连车带车场都给你搭好了
iyiluo
155 天前
和你提到的语言比较,缺点是多了个 jvm ,运行前要多启动一个虚拟机。Java 的特点是稳重,向前兼容,社区支持度高,很多系统默认提供 Java 的对接文档
adskhf
155 天前
@yazinnnn0 你列举的语言里面 go 可能是设计最烂的,其次大概是 dart……
Morii
155 天前
「最近发现身边技术能力远高于我的同学对于 Java 这门语言的态度并不友好」

你都说了吗,是同学,等你工作干螺丝钉工作的时候,就知道在成熟的 java 项目里,写着所谓「冗长、啰嗦」的代码,但是代码能稳定运行,不出 bug ,是什么感觉了
steelshadow39
155 天前
@PTLin 是这样的,水平还不够,只有都懂才能对比优劣
Exception615
155 天前
如果你熟悉 java ,那么上手 scala 会很快,都是基于 JVM 上编译运行,scala 的语法和函数式编程用起来更便捷
yazinnnn0
155 天前
@adskhf
dart 好歹在往好的方向改, go 么......
imzhoukunqiang
155 天前
先不说就业环境和语法层面。
个人认为 Java 最大的问题是起动慢,占内存,需要跑在 jvm 上。

虽然 graalvm 可以解决这个问题,但历史包袱很多,很多库都不支持,遇到问题很难排查,也没听说谁家把 native java 放到生产上跑。
yannxia
155 天前
没什么大缺点,Java 这些年还是有很多的进步,固守 8 的话,那确实没啥意思了。
- Java 的内存占用较多(当然这个锅主要 Spring 要背)
- 语法啰嗦就见仁见智吧,现在都有 var 了,类型定义也没觉得比 Rust 和 C++ 啰嗦啥。

说起来,Java 口碑好坏主要取决于,对 Spring 的观感如何,喜欢像 Gin(go) 之类脚手架,自然对 Spring 嗤之以鼻,但是也有人就是喜欢这种全生态的体系(在下就是)。
CaptainD
155 天前
[身边技术能力远高于你] 这并不代表他们的技术实力真的很强,也许是你们还没长期工作过的片面认知,或者他在某个方面很强,但对 Java 本身的了解不够
PTLin
155 天前
@steelshadow39 这种问题最好的方法还是自身的多加学习,自己解答自己。帖子里大部分回答对你都没价值,因为你分辨不出来对面站在什么角度和你分析的优劣。

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

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

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

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

© 2021 V2EX