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

2023-12-06 09:54:12 +08:00
 steelshadow39

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

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

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX