http://www.loongson.cn/news/company/629.html
自2017年9月“中国龙芯-汇利斯通智慧医疗联合实验室”成立以来,龙芯和汇利斯通一同致力于开发自主可控智慧医疗解决方案。经过四个月的合作研发,龙芯中科系统研发部和汇利斯通合作完成了Electron的适配工作。
Electron 是一个使用JavaScript、HTML和CSS等Web技术创建原生程序的框架,能让开发者像写网页一样完成应用程序开发。用户可以使用这个框架快速搭建应用,并且可以占用少量资源实现绚丽的交互效果。我们熟悉的钉钉、网易云音乐、腾讯微云等应用都有Electron的身影。
Electron开发的前端部分配合已经在龙芯平台适配的JAVA和Go开发的后台应用,可以替代目前在医疗服务设备上使用的Windows .Net方案。此外,在金融、政务等Windows方案占支配地位的自助设备上,也有了可靠的自主可控替代备选方案,Electron的适配具有重大意义。
为什么用 JavaScript 来开发桌面应用
曾经的 JavaScript 脆弱、简陋、甚至有被边缘化的危险,不过 JavaScript 在经过了两次飞跃后(以 V8 为首的 JavaScript 引擎和 Node.js 的问世),不再受人欺负,早已升级为绿博士(复仇者联盟 4 中班纳博士和绿巨人的合体,强大而充满智慧)。 V8 引擎让 JavaScript 的运行速度飞快,Node.js 让 JavaScript 不仅仅能做 Web 前端页面,还能开发后端应用。
尽管有了 Node.js,JavaScript 可以开发服务端应用,但有一类重要的应用它还是无法胜任——桌面应用。目前 Web 应用和移动应用看似成为主流,但如果没有桌面应用,Web 应用和移动应用甚至都不会存在。所有的 Web 浏览器(IE、Chrome、Firefox、Safari 等)都是桌面应用,如果没有桌面应用,Web 页面根本没地方运行;用于开发移动应用的开发工具(IDE)也是桌面应用。而且 Windows 的开始菜单和 Mac OS X 的 Docker 中的每一个图标都对应一个桌面应用,可以说,桌面应用无处不在。
如果将 Web 应用和移动应用比作国王,那么桌面应用就是国王头上的那顶王冠,没有了王冠,国王什么都不是,而赐予 JavaScript 制作王冠之神力的正是 Electron。这是一个基于 V8 引擎和 Node.js 的开发框架,允许用 JavaScript 开发跨平台(Windows、Mac OS X 和 Linux)桌面应用。
有哪些著名应用是使用 Electron 开发的
目前有相当多的桌面应用是使用 Electron 开发的,例如,著名的 Visual Studio Code(微软推出的一个跨平台源代码编辑器)就是用 Electron 开发的、蚂蚁小程序(在支付宝中运行的小程序)也是用 Electron 来开发的;以小米、华为为主的众多手机厂商推出的快应用(类似于微信小程序)的 IDE 也是用 Electron 开发的。
蚂蚁小程序 IDE:
此外,大家熟悉的 Slack、Atom、XMind ZEN、WebTorrent、Hyper 等都是基于 Electron 的应用。
从 Electron 的主要用户来看,很多都是大厂,如蚂蚁金服、小米、华为、GitHub(Electron 就是 GitHub 推出的)、微软等,由于现在 GitHub 被微软收购了,因而目前 Electron 的后台是微软。因此学习 Electron 不用担心以后没市场,毕竟,各大厂都在用 Electron。
Electron 开发的好处
用 Electron 来开发有什么好处呢?Electron 本身是基于 Node.js 的,这样就可以利用 Node.js 的现成资源。
而且 Electron 是跨平台的,可以同时开发 Web 应用和桌面应用,无论是 UI,还是代码(JS),大多数资源都可以共享,这也为开发者大大减少了工作量,甚至企业也无需重复投入人力来开发系统。
此外,Web 应用在网络环境不好的情况下,页面加载缓慢,它不仅仅要传递数据,而且要传递大量与 UI 相关的代码(如 CSS、HTML 等),非常耗时。
但桌面应用就不同了,运行时至少 UI 部分不需要从网络上更新,顶多是与服务端交互数据,就算网络不畅通,也可以暂时使用本地的数据。就算我们不开发这些“高大上”的产品,只开发相对容易的管理系统,在本地运行仍然会大幅度提升用户体验。最重要的一点,Electron 不仅仅支持 Web API,完成与 Web 应用相同的工作,而且还允许调用很多操作系统底层 API 来访问计算机的硬件设备,甚至可以自己用 C++、Go 来编写本地模块,可以完成很多 Web 应用无法做到的事情。
可能有很多读者以前开发过桌面应用,认为桌面应用也有缺点。比如,桌面应用很难做到实时更新,维护相对于 Web 应用费时费力,不过这个缺点是针对传统桌面应用的,而基于 Electron 的应用没有这个缺点。
Electron 之所以这么多人用,并不仅仅是因为它基于 Web 技术,而且它还能调用很多本地 API,在实现很多功能时与本地应用非常接近。
附:龙芯Intellij IDEA开发Spring web应用视频