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

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

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

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

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

23501 次点击
所在节点    Java
162 条回复
GG668v26Fd55CP5W
2023-12-06 14:40:35 +08:00
太占资源了,也许适合企业,但对个人很不友好,我都买 1c1g 那种服务器。
pkoukk
2023-12-06 14:45:46 +08:00
告诉你比你水平高的同学对 java 不友好的原因:
Java 国内从业者数量太多,而且普遍具有丰富的从业经验,各个能用的赛道都卷出鱿鱼花了
我多年前从传统软件业转互联网的时候,看了一下各个语言的大头兵面试题,JAVA 都开始问你源码细节,HASHMAP 的红黑树实现
那个时候其它任何一门语言都没有卷到这个程度,那个年代其它语言甚至你懂 CRUD 就能上岗,这不是卷过头是什么?
作为一个即将入行的人,java 的池子可能有 1000 平米大,但里面挤了 1W 人
其它语言可能只有 100-200 平大,但里面可能也只有 100-200 人
作为一个学的好的,水平高的人,如果有的选,大部分人会选后者
forgottenPerson
2023-12-06 14:54:19 +08:00
其实很多人新手觉得 java 好的人,很多觉得 java 轮子太多了,网上一搜差不多都能很好解决,对于 node 、c#、go 他们觉的啥都要自己写,其实对于 web 开发还是没有深刻理解,就比如 java 很多新手前后端交互其实不是很理解的,也有特别多问题,但是真正理解 web ,或者很扎实的程序员应该来说 go 、c#这些开发效率还是挺快的,还是看人把。go 、c#这些他们觉得搜答案不像 java 一样很容易搜到。
KnightYui
2023-12-06 15:23:21 +08:00
效率低
AlexHsu
2023-12-06 15:34:10 +08:00
如果 kotlin 也算是 java 的话 其实 java 没什么缺点
LavaC
2023-12-06 15:39:53 +08:00
那句话怎么说来着,真正垃圾的语言根本没人讨论,讨论度越高就代表语言越成功
kenvix
2023-12-06 15:42:12 +08:00
@AlexHsu JVM≠java 。JVM 是 state-of-art 的 VM ,但 java 是一个很落伍的语言
yzbythesea
2023-12-06 15:48:15 +08:00
正常,读书的时候都爱追新潮。我那会儿,面向函数编程的语言特别受推崇,现在都没人提了,比如 Haskell 和 Clojure ,后面刚工作的时候大家又开始宣传 Scala ,再之后就是 Kotlin ,现在貌似很推崇 Rust 。然而我工作大项目里只写过 Java ,Go 和 C 。
DefoliationM
2023-12-06 15:49:04 +08:00
JVM ,语法啰嗦,又臭又长,主要是有个 JVM ,没有 JVM 其实语法怎么样都无所谓了。
BruceLees
2023-12-06 15:57:23 +08:00
人太多
CuChulainn
2023-12-06 15:57:50 +08:00
JVM 在云原生时代很吃亏,Quarkus 正在尝试解决这部分问题。但在 spring 这种生态里并不好做。
wupher
2023-12-06 16:18:49 +08:00
从 Java 2 出来就开始接触,到现在都 21 了。不过最近几年主要都在写 Kotlin 了。

优点:
- 跨平台
- 开源库众多
- 语法简单
- spring

缺点:
- type hell
- 内存消耗 / GC
- 虚拟机,系统调用麻烦,访问操作系统资源也麻烦
- GUI

以上。最近几年其实更多的是利用 JVM ,使用的是 Koltin 或者 Groovy 这样的派生语言。
montaro2017
2023-12-06 16:39:28 +08:00
@NoThing2Talk #21 JEP 445 已经在 preview 了 https://openjdk.org/jeps/445
murmur
2023-12-06 17:39:09 +08:00
@pkoukk 100-200 那个是互联网,互联网是烧钱砸吆喝,裁员也是最积极的 1000 那个是企业和 gov 开发,是要赚钱的,不赚钱没人做

尤其是现在国产化,一大堆业务系统需要翻新,首先排除 c#,微软的东西,然后选 spring cloud alibaba 沾国产化的光
tomatocici2333
2023-12-06 17:45:19 +08:00
大部分人都碰不到 java 的缺点的
merryCodeing
2023-12-06 17:50:03 +08:00
java 的痛点:
我想要一个香蕉,但是给我的可能是一个拿着香蕉的猩猩,甚至是整个丛林
xgdgsc
2023-12-06 18:13:11 +08:00
看好明年有了静态小体积编译的 julia 做业务,配合 rust ,llvm 代替 jvm
bugmakerxs
2023-12-06 18:17:33 +08:00
@lizhian 语法糖有点不好就是多了以后代码无法标准化

比如 js 的函数定义
function shit()
var shit = function()
var shit = () => {}

let shit = function() {}
let shit = () => {}

诶真不好记
Bingchunmoli
2023-12-06 18:19:58 +08:00
@NessajCN 我记得不是各种号宣传的 go 取代 java ,go 是新一代的 c emm
Bingchunmoli
2023-12-06 18:21:29 +08:00
@murmur 这个在看 go 有同感,spring 这套太全了,面向 spring 编程了

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

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

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

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

© 2021 V2EX