J2CL –迟到总比不到好

上周,Google团队终于发布了J2CL框架的源代码,自2015年以来就对此进行了讨论。将Java转换为JavaScript的想法根本不是什么新鲜事,而且每个人在使用Google Web Toolkit之前都遇到了麻烦该产品在社区中倍受关注-经过讨论并成为会议演讲的主题,但没人能看到它

自首次发布以来已经有3年多了,而且该产品似乎甚至在其诞生之前就失去了市场。 今天,我们有了Scala.js,Kotlin.js和JSweet,此外,该开发已经由TypeScript占用,并且Java不再有地方了。 这么长时间以来,即使是最热爱Java的人也对“ Java for Front end”失去了信心,并学到了一些JavaScript框架。

但是,由于它终于发布了,所以让我们看一下结果以及将其用于什么目的。

理念

在全球范围内,在浏览器中模拟JVM是一项相当复杂的任务。 Google Web Toolkit开发人员长期以来一直在尝试解决此问题并取得了一定的成功:他们建立了一个编译器,开发了标准的Java库仿真机制,为应用程序开发提供了工具。

这种方法具有许多优点:静态类型检查,浏览器中服务器代码的可重用性,以Java IDE表示的现成工具。 现在,TypeScript,Web Pack和其他前端开发工具中代表了GWT的许多内置方法。

优秀的旧版Google Web Toolkit因其笨重且抽象的UI构建方式而遭到反对。 J2CL的想法更简单–它使我们能够以最小的开销将Java转换为JavaScript,以便您可以轻松地从JavaScript调用Java,反之亦然。

即使在2015年末有一个非常不错的从Java到JS的转译器,都可以在没有哈希的情况下运行,但几乎不可能假设Web开发会如何发展。

J2CL前传

2015年初,Google GWT团队做出了艰难而紧急的决定-开发支持Java进行前端开发的新产品。

主要是由于Web开发趋势的变化及其新的内部客户,他们将Java for Web视为不是孤立的生态系统,而是将其视为大型堆栈的重要组成部分。 它需要一种完全创新的观点,并创建应该从头紧密集成到其余生态系统中的工具。

使用GWT几乎不可能实现这样的目标。 尽管GWT具有与JavaScipt双向交互的方式,但该框架无法摆脱UI,RPC库和其他应用API的巨大负担。

那是什么野兽

正如开发人员所声称的那样 ,J2CL将Java代码无缝集成到JavaScript应用程序中。 它代表了一个简单轻巧的Java-to-JavaScript 编译器 ,该编译器专注于借助Closure Compiler进行代码优化。

    • 在一个项目中轻松混合Java和JavaScript,以充分利用每种语言的优势。

实际上,J2CL将源Java代码转换为没有Java类字节码JavaScript代码。 这意味着,与Google Web Toolkit一样,项目编译需要所有使用的库源。 此外,它提出了最新版本支持的Java语言功能的问题。 在此阶段,开发人员承诺将支持Java 11的所有语法功能。

J2CL不支持GWT窗口小部件,GWT RPC和其他GWT库,仅支持基本的Java和JavaScript集成工具JSInterop 。

也就是说,这是一个非常有限的GWT版本,带有全新的编译器。 并且由于新产品不再与GWT兼容,因此称为J2CL而不是GWT。 总体而言,即将发布的GWT 3版本将代表基于J2CL的框架,其中所有适用的库都将与翻译器系统级别分开。

现有的Java兼容性限制在GitHub上进行了描述。 它们基本上与GWT中的相同-没有反射支持,没有网络Java API。 但是也有一些不同之处–不会模拟数组和列表的语义,例如,不执行数组中索引的检查。 开发人员重点放在JVM行为仿真上,而不是在语言的语法上,以最大程度地减少开销成本并避免生成大量JavaScript以确保完全兼容性。

尽管J2CL已准备好投入生产,但其OSS版本离它还很遥远。 例如, Windows上的项目启动存在一些问题,开发人员无法保证稳定的API。

选择Bazel作为内部Google产品的构建系统是很公平的,但是它对社区没有任何好处,除了学习该构建系统之外,没有其他方法可以使用J2CL。 同时,我们只能等待社区为Maven / Gradle制作插件。

开始工作

首先,J2CL需要Mac OS或Linux。

其次,您必须安装Bazel –而不是Google制造的异国情调的构建系统。

现在,您可以从官方存储库中构建一些东西,例如HelloWorld。

> bazel build src/main/java/com/google/j2cl/samples/helloworld:helloworld

当您查看输出时,您会惊喜地发现:

> cat bazel-bin/src/main/java/com/google/j2cl/samples/helloworld/helloworld.js
document.write('Hello from Java! and JS!');

当然,它什么都没有证明,但是很高兴在所有GWT模块之后都能看到如此的简约。 没有其他应用程序示例,因此我们将等它们显示出来。

如果我们有xxx.js是什么意思

目前,很难说出它的用途。 乍一看,J2CL包含一个大胆的想法–以与TypeScript相同的方式将Java重用于前端。 另一方面,该项目似乎错过了机会。

诸如Kotlin.js和Scala.js之类的新JS transpiler项目被实现为编译器的插件,并且不需要源代码解析。 从这个角度来看,J2CL落后了一步,因为它需要进行源分析。

还有一个问题是Java本身。 当您可以在简洁的Kotlin上同时编写服务器端和客户端时,为什么还要使用冗长的Java?

但是,与另一个类似的项目JSweet相比 ,我更信任J2CL。 JSweet工具更友好,更实用,但是JSweet社区很小,几乎完全由一个人编写。

所以你说它是开源的?

该项目获得了Apache 2.0免费许可绝对是一个好消息。

不幸的是, 开放源代码开放开发过程不同 。 社区最大的失望是由于当前的情况而出现的,J2CL项目是3年前宣布的,但是没有人显示其源代码,您无法影响其最终API或加快开发过程,因为无处可发送修补程序。

让我们希望情况会发生最好的变化,并且产品会投入使用。

翻译自: https://www.javacodegeeks.com/2018/12/j2cl-better-late-never.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[渝粤教育] 西南科技大学 工程测量 在线考试复习资料

工程测量——在线考试复习资料 一、单选题 1.属于沉降观测的特点是()。 A.一次性 B.周期性 C.随机性 D.无规律性 2.系统误差产生的原因是由于()。 A.观测误差 B.环境影响、仪器不完善 C.人为 D.偶然误差 3.竖直角的最大值为()。 A.90 B.180 C.270 D.360 4.某直线的坐标方位角…

aspen变压吸附塔_空压机科普:吸附式干燥机的结构和原理

精彩内容本文以主流的“变压吸附式”干燥机为例进行讲解。“吸附”原理一致,“脱附再生”流程有所区别。从而大致形成以下几种常见类型:●无热吸附式——使用一部分经过干燥后的压缩空气,经降压后吹扫吸附剂,实现吸附剂“再生”&a…

小学计算机管理,小学计算机室管理制度

小学计算机室管理制度 (2页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!19.90 积分芹菜小学计算机室制度1、计算机室由上电脑课老师负责管理。2、计算机室是进行电脑技术学习和操作的场所&#xff…

[渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(2)

建筑工程定额与预算——在线考试复习资料2021版 一、单选题 1.根据《房屋建筑与装饰工程工程量计算规范》(GB50854–2013),关于抹灰工程量说法正确的是( )。 A.墙面抹灰工程量应扣除墙与构件交接处面积 B.有墙裙的内墙抹灰按主墙间净长乘以墙裙顶至天棚底高度以面积计算 …

异形3×3魔方还原教程_【初级篇】(四)最简单的三阶魔方入门教程——中层还原...

本系列教程适合刚刚接触魔方,又比较有好奇心,是为渴望学会还原魔方,又不想死记公式的人准备的。全部教程只使用三种公式,还原过程以理解为主,公式为辅。第四部分 中层棱块还原4.1 预览中层棱块还原后的效果中层还原以后…

[渝粤教育] 西南科技大学 房屋建筑学 在线考试复习资料(1)

房屋建筑学——在线考试复习资料 一、单选题 1. 一部楼梯由( )组成。 A.楼段、平台、扶手 B.踏步、栏杆、扶手 C.踏步、平台、扶手 D.楼段、栏杆、扶手 2.( )不是涂料地面的特点。 A.施工方便 B.耐磨性差 C.造价高 …

吞吐量-Corda的故事

我最近开展了一个针对特定用例的Corda性能项目。 这个项目的结果使我们在170多个节点的网络上一天之内处理了1.15亿个请求。 此外,Corda每秒能够处理6300个请求,确认满足了网络的最高要求。 迄今为止,这是迄今为止已部署的最大的Corda网络&am…

计算机联锁系统组成及工作原理,计算机联锁系统的组成

计算机联锁系统由控制台 电务维护台 联锁机 输出输入接口 微机检测和电源组成。控制台由控显双机和车站值班员办理行车作业的的操作和表示设备组成。每台控显机内安装两个采用光缆连接的串行通信接口板INIO卡,用于同联锁机的2重系通信。控显双机互为备用&#xff0c…

[渝粤教育] 西南科技大学 数据库应用 在线考试复习资料(3)

数据库应用——在线考试复习资料 一、单选题 1.“表达式生成器”是用来书写什么的? A.代码 B.程序 C.表达式 D.数据库 2.在使用计算控件时,每个表示式前必须加上哪种运算符号? A. B. C.? D.* 3.以下属于非绑定控件的是哪一个? A.文本框 B.单选按钮 C.组合框 D.直线控件 …

httpurlconnect设置中文参数_数控三菱CNC机床参数的设置及报警解除!

数控三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮。而且在〔诊断〕――〔报警〕 画面上显示很多报警内容,哪些是开机时必须设置的呢?又如何解除故障报警呢?1.开机参数1.1 基本参数的设置原装系统…

[渝粤教育] 西南科技大学 机械专业外语 在线考试复习资料2021版

机械专业外语——在线考试复习资料2021版 一、单选题 1.( )improved the performance and enhanced the capabilities of both people and machines within specialized manufacturing components. A.Manual B.Mechanization C.Integration D.utomation 答案:看左边查询 2.FM…

计算机如何更新苹果系统,苹果系统怎么更新_苹果电脑mac如何更新升级系统-win7之家...

苹果电脑跟windows系统一样,也是会在发布之后不断的推送新版本让用户们进行升级,不仅可以修复bug还可以增加新功能,不过很多用户可能都会有一个疑问,就是苹果系统怎么更新呢?方法并不难,本文给大家讲述一下…

[渝粤教育] 西南科技大学 汉语写作 在线考试复习资料

汉语写作——在线考试复习资料 一、单选题 1.在消息写作中,按照新闻事实重要性递减为序进行材料安排的结构方式是( )。 A.倒金字塔结构 B.金字塔结构 C.自由式结构 D.提要式结构 2.在叙述中心事件的过程中,中断原来的叙述,插入另一与中心事件有关的事件的叙述方式属于( )。 A.…

手术步骤_近视飞秒激光手术和传统Lasik手术比较

传统LasikLASIK手术操作时分为两个步骤:第一个步骤医生需要制作一个角膜瓣;第二个步骤是掀开角膜瓣,以准分子激光雕琢角膜,进行视力矫正,雕琢完毕后将角膜瓣复位即手术完成。传统的角膜制瓣是用机械式的设备与一个微型…

[渝粤教育] 西南科技大学 理论力学 在线考试复习资料

理论力学——在线考试复习资料 一、单选题 1.已知W100kN,P80kN,摩擦系数f0.2,物块将( )。 A.向上运动 B.向下运动 C.静止不动 2.已知、、、为作用刚体上的平面共点力系,其力矢关系如图所示为平行四边形,因此可知( )。 A.力系可合成为一个力偶 B.力系可合成为一个力 C.力系简…

jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件

jenkins部署java这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序)的部署过程-生成项目,运行单元测试,上…

苹果电脑怎么更换计算机模式,图文详解苹果电脑如何切换成windows系统

苹果电脑默认安装的是Mac系统,有的人很喜欢,有一部分人却怎么都用不习惯,觉得windows系统用起来比较顺手。为了能提高办公效率,给苹果电脑安装双系统,那么有什么办法能将苹果电脑切换成windows系统?方法当然…

input内的字体颜色_嘉兴市硅胶喷涂颜色油订制

嘉兴市硅胶喷涂颜色油订制,博越硅胶服务惠万家,欢迎惠顾。嘉兴市硅胶喷涂颜色油订制, 而它配合硅胶原材制作时是按照相应的比例来进行分配在加上硫化剂的配合才能够得到制作产品的原材料,色母的性能选择也影响着一个产品的性能&am…

[渝粤教育] 西南科技大学 电能计量 在线考试复习资料

电能计量——在线考试复习资料 一、单选题 1.关于电压互感器下面说法正确的是( ) A.二次绕组不能开路 B.二次绕组不能接地 C.二次绕组可以短路 D.二次绕组不能短路 2.当功率因数升高时,电力系统中的变压器和输电线路的损耗会如何变化( ) A. 减少 B. 增大 C.…

[渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(5)

管理学原理——在线考试复习资料 一、单选题 1.通常所说的“小道消息”属于: A.双向沟通 B.口头沟通 C.非正式沟通 D.用含蓄的形式进行沟通 2.古人云:“运筹于帷幄之中,决胜于千里之外”,这里的“运筹帷幄”反映了管理中的: A.计划职能 B.组织职能 C.领导职能 D.控制…