卧槽! JavaScript JVM运行Java!!
由于任何计算机语言都具有巨大的灵活性,软件世界变得有点疯狂。一旦你已经吸收了用这种语言编写的编译器的想法,那么它会编译还有什么可以留下来的?但是......用JavaScript编写的Java虚拟机JVM似乎是另一种疯狂的程度。
事实上,这是一个非常合理的想法,只会让Java,顶级狗和基础的JavaScript通常占据通常的位置。Java不是编译为机器代码而是编译为特殊字节代码,然后在通常在本机机器代码中实现的虚拟机上运行。然而,没有什么可以阻止一个勇敢的程序员用你能说出的任何语言来实现它。唯一真正的问题是您需要快速实现,以便字节代码以可接受的速度运行。
直到最近,由于效率问题,在JavaScript中实现JVM一直很困难,但JavaScript引擎的速度却大幅增加。因此,单独的编码器Artur Ventura使用JavaScript实现了大部分标准JVM,您可以在Github上检查代码。
这项工作的动机很好地体现在Artur的博客中。他认为,不是将JavaScript构建到Web浏览器中,而是应该有一个虚拟机,以便可以使用任何语言。除了这个优势之外,他还指出,使用JVM类型方法,您可以获得自动沙盒,只需将JVM发送到服务器即可提供与浏览器无关的持久性。
将JVM构建到浏览器中确实更有意义,但是为什么不能简单地模拟每个浏览器中内置的JavaScript中的JVM。这只是插件向JavaScript实现提供的功能稳定转换的另一个方面 - 编解码器,pdf,压缩等。
经过6个月的工作后,结果是BicaVM,据称它运行60%的字节代码。它尚未优化,但它确实在iPad / iPhone上运行,它支持DOM的JNI接口。
这会带来什么实际意义吗?
可能不是。它是一个概念证明,并且浏览器应该被视为一个虚拟机本身并不是一件容易的事。然而,想到JavaScript实际运行Java程序有点奇怪。也许它是互联网时代的汇编者。
资料来源:http://www.i-programmer.info/news/167-javascript/3360-javascript-jvm-runs-java.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决