BicaVM:基于JavaScript的JVM-为什么呢?

开发 后端
上个周末,我曾去过Codebits,并做过关于计算机语言的介绍,你可以在这里看到它。如同这个帖子,我知道其语言组织的不好。

上个周末,我曾去过Codebits,并做过关于计算机语言的介绍,你可以在这里看到它。如同这个帖子,我知道其语言组织的不好。

它的要点是:对于Javascript,我没有与其它人相同困难。Javascript当然是可爱的语言。每个人都喜欢它的函数特性,基于原型(prototype)的继承,但它缺乏一些我们20年前就确定是必不可少的东西(如模块化),甚至有一些严重的问题(如== VS ===是一种糟糕的处理标识的方式)。
还等什么?

我相信,浏览器应该有某种虚拟机,其中的语言之一,将是JavaScript,但如果你是用其他语言实现一个个项目,为什么不用相同的语言实现客户端功能呢?只要提供该语言的运行环境即可。越是如此,如我在讲演中指出的那样,我真正看到语言是作为工具的。你应该为每一问题争取***的(结果)。
超越语言。

浏览器上的虚拟机,也有一些有趣的副作用。***个是,你必须自动沙箱(automatically sandboxing),所以你可以允许页面中运行不可信的外部代码而没有问题。还可以冻结客户端的虚拟机,并将其发送回服务器端,让您有一个非常简单的方法,实现独立于浏览器的状态持久化。便携式设备没有插件架构,并不能运行Java Applets(并非我如此想但却是事实)。更激动人心的一点是,如果你的代码出现麻烦,你可以打包你的虚拟机,并将其发送回服务器端解剖分析。毫无疑问,写这样实现的最重要的原因是:因为我可以。

因为在一些项目中,我已经开始思考,我一直在寻找JavaScript虚拟机。我更倾向JVM,由于存在一个围绕它的很大的生态系统。然而,在JavaScript中唯一可用的JVM是Orto;我没有收集到没有任何文档或代码,是一个字节码到(Javascript)源码的转换器,转换器存在问题(诸如:在GWT中,你不能使用反射,因为在转换过程中将丢失所有类信息)。正因为如此,我决定从头开始一个JVM实现,这就是BicaVM出生的缘由。BicaVM是JVM实现的JavaScript实现,6个月前着手编写,上周五公布。
快或慢?

我所听到的最常见的抱怨之一是说Java和JV运行慢,在JavaScript中实现,它会更慢。我可以用很多解释来告诉你,你可以使用先发制人的代码转换,另外,在此类VM下,JIT实际上实现简单,你可以下载初始化包将加快初始化进程,但我想敬告克努特博士:“早期的优化是一切罪恶的根源”。

所以在这一点上BicaVM可以运行Java代码。您现在可以使用Java改变DOM,因为我对JNI的支持(映射为JavaScript函数)。哇!确实可以在iPad/iPhone上运行。

BicaVM下载:http://github.com/nurv/BicaVM

附现场速写:

 

原文链接:http://simpleframework.net/blog/v/74076.html

【编辑推荐】

  1. 用JavaScript编写JVM可成功运行Java程序
  2. 用JavaScript编写Java虚拟机?谈谈哗众取宠的BicaVM
  3. JVM优化引起的逻辑错误
  4. JVM基础之介绍基于JVM的脚本语言
  5. 详细介绍JVM结构基础
责任编辑:林师授 来源: 赵老师的博客
相关推荐

2011-01-18 15:27:30

Postfix

2017-06-12 15:48:26

2013-03-06 16:56:47

2013-08-12 17:41:42

Angular.jsAngularJS

2019-08-30 14:58:47

JavaScript程序员编程语言

2011-11-24 15:18:04

2022-01-17 15:55:52

程序员技能开发者

2021-12-29 07:18:20

重构工具资源

2016-03-08 09:50:42

2021-05-12 08:15:53

HTTPSHTTP安全

2024-02-01 08:32:03

Nginx服务器代理

2019-08-01 07:48:27

物联网模块物联网IOT

2015-09-10 09:21:14

google play

2022-01-11 14:55:14

Python垃圾回收解释器

2018-11-06 15:59:05

2018-06-04 15:17:10

编程语言中文编程

2023-09-26 22:15:49

JavaScrip开发

2019-08-28 10:53:35

JavaScriptOptional Ch代码

2011-12-07 09:19:49

JavaJ2MEBicaVM

2012-08-20 09:16:15

Go语言
点赞
收藏

51CTO技术栈公众号