我现在感觉 Java 有点底层了

2021-12-18 17:06:17 +08:00
 Features
啥都要自己实现,强行实现出来 BUG 一堆,不知道啥时候就崩了
没有框架感觉自己就是个废物😂

感觉 js ,php 这些太爽了,没有框架我都能干三大碗
8887 次点击
所在节点    Java
47 条回复
snw
2021-12-19 00:44:02 +08:00
想起当年劳动技能课玩过单片机,用的是汇编语言,
snw
2021-12-19 00:45:37 +08:00
…只是控制几个 LED 按各种规律发光,用汇编挺容易的。
snw
2021-12-19 00:51:53 +08:00
但要说爽,还是巨硬家那些语言爽。像 Java 得知道整数比较时 127 和 128 会有不同结果,js 以前用 var 时还得考虑变量作用域和闭包,用.NET 就没这么多奇怪的东西,可以少死几个脑细胞。
harwck
2021-12-19 06:30:44 +08:00
最近在看 React ,结果什么脚手架都有
charlie21
2021-12-19 07:21:25 +08:00
加利福尼亚的首府是萨克拉门托
yinzhili
2021-12-19 08:35:31 +08:00
bug 是写代码的人水平不够。不能怪语言。真的。
fiypig
2021-12-19 09:30:56 +08:00
最好的项目是自己写工具,不依赖别人的框架
fsdrw08
2021-12-19 11:19:56 +08:00
所以说学编程,应该直接上框架,学什么基础语法都是屁,把框架撸一遍踩坑了再看基础语法也不迟
Kylin30
2021-12-19 15:47:04 +08:00
这个在圈子里的黑话叫生态不行
moen
2021-12-19 16:47:28 +08:00
@Kylin30 但是我看很多人说转 Java 而别的平台不行的一个重要理由就是 Java 生态难波万。真是让人疑惑
shellic
2021-12-19 17:24:22 +08:00
要想写的爽还得 PHP
Kylin30
2021-12-19 19:43:49 +08:00
@moen
我的意思是他说的这种情形一般叫生态不行,不是说 java 生态不行。
industryhive
2021-12-20 10:08:37 +08:00
@Jooooooooo
@voidmnwzp 就看你怎么定义“底层”了,GraalVM 是完全由 java 实现的通用高性能虚拟机,做到了和真实物理机指令集对应而不是和某一门编程语言语法对应,也就是说你用汇编干的活用这玩意都能干,这个算底层不?
vincent7245
2021-12-20 10:12:59 +08:00
可见大学计算机专业从 C/c++ 语言开始入门是多么明智的安排
Jooooooooo
2021-12-20 10:21:08 +08:00
@industryhive 我认为 java 并不底层的原因在于, 一个 volatile 直接屏蔽各种软硬件的差异, 实现统一语义. 从这点看是相当不底层. volatile 已经是具备足够抽象的语义. jvm 帮助我们在不同软硬件上采用不同实现.
industryhive
2021-12-20 12:51:26 +08:00
@Jooooooooo 按照你这个观点,那正好说明 java 和 C 、C++一样底层。所谓跨平台,是因为 jvm 屏蔽了底层的细节,比如你说的 volatile 。但是 volatile 之所以能实现所有平台语义的统一,完全是靠底层的 jvm 实现的。所以现在有了下一代的通用高性能跨语言虚拟机 GraalVM ,GraalVM 是一个完全由 java 实现的 java 虚拟机,如果你有需要,你完全可以自己实现底层细节,你想要修改 volatile 的语义,你可以自己修改 GraalVM ,你甚至可以自定义 java 的语法规范。而在 GraalVM 出现之前,这些细节的工作是由 C++实现的。所以,GraalVM 的出现,说明 java 至少可以做到和 C++一样底层的事情。
Jooooooooo
2021-12-20 14:13:21 +08:00
@industryhive 正是因为 jvm 屏蔽了底层细节, 所以才说 java 并不底层.
industryhive
2021-12-20 14:20:59 +08:00
@Jooooooooo 所以当你自己写 jvm 的时候,要直接处理底层细节,你说这个时候 java 是否底层?
Jooooooooo
2021-12-20 14:25:45 +08:00
@industryhive 肯定不属于啊. Java 面对使用者来说, 是相当高层以及抽象的语言. 底下具体是怎么实现的完全不关心.

比如 volatile 在不同软硬件下有着完全不同的处理方式(比如有些强一致的软件下, volatile 直接被抹掉了), 用 java 的人可不知道这一点
industryhive
2021-12-20 14:53:28 +08:00
@Jooooooooo 那是否可以这么说,用 java 写上层应用的时候,java 是高层和抽象的语言,因为按你的说法,使用者不关心硬件或平台底层细节;用 java 写 jvm 或 OS 的时候,那按你的说法,java 是底层语言,因为这个时候使用者必须非常关心和了解硬件和平台底层细节。你觉得我这说法对吗?

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

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

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

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

© 2021 V2EX