打开网易新闻 查看精彩图片

1、WPS推出JSA,成为其默认脚本工具,让很多人喜出望外。毕竟站在JS基座上,获得全栈想象力是轻而易举的。就单凭跨平台,易于部署这条,就大有废除VBA之势。

更不用说,终于可以摆脱VBE呆板的语法风格了,从此用上现代IDE,B格一下子就上来了呀。还有,远离VB系,也终于可以在鄙视链中摘帽了,有一种让人高攀不起的得意洋洋。

打开网易新闻 查看精彩图片

2、可是当各大论坛社区修好JSA板块时,大家才发现,JSA都啥跟啥呀。官方文档一点都不像是与Office分庭抗礼的样子呀!VBA虽然沿用了VB语法,但人家还是老老实实地从语句到示例,出了整个工具的使用文档。

反观JSA就偷懒多了,JSA建立在JS基础上,同样沿用其语法,却默认JSA用户是懂JS的,没有语言文档。这要让以前的VBA用户怎么用啊?找了半圈互联网,竟然没有官方交流平台。所以,尽管WPS的JSA驱动WPS时,很像VBA,但它锚的其实不是VBA这样的业余用户,而是懂JS的专业用户。

如果VBA都闹不趁头的,尽早还是散了吧。否则到JS地界上咨询问题,怕受不了JSer们的优越感啊。还是VB/VBA的教育基因,更容易相处。

打开网易新闻 查看精彩图片

3、既然默认要具备JS基础知识,那就来看看JSA部分吧。基本上就是WPS的VBA对象的翻版,所以只要熟悉WPS的VBA对象,使用JSA问题不大。

打开网易新闻 查看精彩图片

语法表述上JSA明显具有类C风格,除此外写法上几乎与VBA相同,甚至缺乏VBA某些特性,如With语句,写法上比VBA更冗余。所以,那些骂VB语言风格的人,也可以来喷JSA了。

打开网易新闻 查看精彩图片

4、好不容易,一通摸索下来,竟然不支持系统API的调用,JSA所谓API可不就是原对象的成员函数么。那个神秘的CreateObject竟然不再神奇,是真的哑火了。所以,结论就是,能靠的就完全只有JSA中的JS基座和WPS对象体系了。

虽然,JSA可以通过共享内存、事件对象等技术实现了进程间通信,但并未暴露接口给用户。也就是说,跨平台的JSA,在本机上不能跨进程,甚至在跨二进制上似乎都缺胳膊少腿了。近在咫尺的资源,却只能望洋兴叹。有人说,JSA仍在初期,后续应该都会有吧。但是BtOfficer却不这么认为。

甭管VBA是不是脚本语言(压根就不是),VBA可以获得很高的本地权限,因此可以畅通无阻地执行本地代码。JS却不同了,它原本就是为Web服务的,如果获得同样的本地权限,那将是非常危险的。IE被抛弃,并不仅仅因为它我行我素的格式规范,也更在于其ActiveX的风险敞口

另外,如果JSA如果要想跨平台,就不得不放弃本地依赖。如果JSA一旦可以调用系统API,CreateObject可以跨进程通信,那能否跨平台就不是WPS能说了算的了。

所以说,要想跨平台,JSA一定也会和微软的Script Lab一样,立足于在线、轻量化,与本地化能力互为补充。届时,JSA也就是Script Lab的对标物而已。

欢迎关注BtOfficer,让我们一起学习成长!