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

166 天前
 steelshadow39

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

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

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

15321 次点击
所在节点    Java
162 条回复
NoThing2Talk
166 天前
啥都面相对象,写个 main 函数也要创建 class ,写多了烦
QWE321ASD
166 天前
你自己编码为什么要在意别人,语言是工具不是信仰.
BBCCBB
166 天前
java 挺好的. 其他各种语法糖的语言不一定好.
我 Java, python, go, rust 都学过, 主业 Java, 也看了 go 的好几个开源项目的源码, 不太喜欢 go, 现在慢慢学习 rust 中. rust 复杂度太高. 但语言很棒

Java 算是各种语言的一个中间点吧. 没有那么多魔法. 但需要魔法的地方绕一点也能实现, 你去大一点的公司/项目, 就知道 java 的好处了.. 当然缺点也是有的.
nothingistrue
166 天前
门槛低但上限高,同时学习曲线是阶梯型的(有资质的人平缓前进,无资质的人被淘汰,没有捷径)。这个是 Java 最特色的,同时是优点和缺点。

比较编程语言,这就跟比较英语跟法语一样,毫无意义。
Martens
166 天前
占内存,启动慢,打包体积大
更偏向于应用层,封装度高
Leviathann
166 天前
你在 java 项目里会使用 ADT 和 pattern matching 的吗

这就是 java 的发展趋势
steelshadow39
166 天前
@CaptainD 偏底层研究的人应该更偏向于 cpp 和 rust ,这可能是一个原因
ProphetN
166 天前
JAVA 语言本身和全家桶是两码事。JAVA 作为一个中古语言,肯定和现代语言没法比,但是 Kotlin 用起来很爽。其它语言要想达到 JAVA 的稳定度和维护性,势必也要搞一堆全家桶,反过来说为啥不直接用 JAVA ?
feirisu
166 天前
这贴太水了....
RainCats
166 天前
当你工作后发现水平不一,实习生和架构师的代码你都能比较容易看懂并且维护的时候,大概就不会吐槽 java 语法的事了。
当然我没有怎么接触过其他语言,只是看过一点点
Greendays
166 天前
就是写起来麻烦,而且工作中很多企业会用很旧版本的 JAVA ,新特性用不了,写起来更麻烦了。功能上没啥可挑剔的,常规业务都有很好的解决方案。作为程序员学好几种语言是非常正常的,如果今后就打算进互联网公司做普通的工作,JAVA 作为第一种深入学习的语言没啥毛病。如果有往算法方面研究的打算,那肯定会接触到 Python 这些的,应该也不需要网友来提建议。
Nazz
166 天前
说一下 springboot ,依赖注入自动化程度很高,但是,一旦出现问题就难以排查,而且官方文档稀巴烂
StoneHuLu
166 天前
都不用跟别的比,就跟完全重合的 c#比,java 都比不了,表达能力和糖差太多了
ggvoking
166 天前
实在用不来 java ,算是半个 java 黑,占内存(大学时玩 mc ,自建服务器老是 oom ,映像非常不好),啰嗦,以及非不喜欢那个注解的方式,以前大学学 java 的时候,非常讨厌那个注解,很不直观看出跑起来的原理,但是各种框架都是用那个注解方式。现在工作这么多年 Unity C#技术栈,看到 C#代码是通过反射和属性标签跑起来的框架嗤之以鼻,一个是反射性能拉,一个是框架流程不直观。现在更多喜欢 go 和 rust
aLazarus
166 天前
java 就算再不好,起码代码规范还是有的,不会像 js 一样把一万个方法全丢在一个 js 文件里……
ocean1477
166 天前
java8 没有字符串插值,很难受。
gitrebase
166 天前
见过一个 Java 项目,全是 static field 和 static method ,当 C 语言写……就写出这种生命周期看着很混乱的东西,看着脑壳疼:

class A {
public static A a = new A();
....
}

class B {
public static A a;
public static B b = new B(a);
public B(A a) { ... }
....
}
jeesk
166 天前
别人的意见真的很重要吗? 是技术引导业务还是业务引导技术呢? 用合适的语言就足够了。java 语法的落后不是开发者能力不行, 很多时候是为了兼容性。 我个人觉得 java 可能是为数不多兼容性做得不错的语言之一了。
musi
166 天前
@RainCats #30 就算是 java 也做不到你说的“实习生和架构师的代码你都能比较容易看懂并且维护的时候”,如果有只能说项目简单,不然按你这个逻辑用 java 就写不出来屎山了
llhhss
166 天前
缺点就是没得玩
你和技术能力远高于你的同学写出来的东西看上去和跑起来可能都是一样的

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

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

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

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

© 2021 V2EX