自己原来做后端,架构,然后创业写客户端软件,使用的技术是 sciter.js ,有感于在信息技术应用创新(信创)的背景下,国产化软件生态的构建成为国家战略的重要一环,未来需要大量的国产 PC 上的各种小型,大型软件,象 EDA 之类。
我认为Sciter.js 可以凭借其轻量化、高性能、跨平台连 ARM 平台都有很好支持的这些特性,以及对 JavaScript/HTML/CSS 技术栈的完整支持(js 语法支持到 ES2020),Sciter.js 必将成为国产化桌面开发方案中不可忽视的选择。
Sciter.js的优势
轻量化与高性能
Sciter.js引擎仅需一个 5MB 左右的动态链接库(DLL),相比 Electron 或 rust 中的 webview 套壳等等框架,它应用体积缩小 10 倍以上,内存占用更低,启动速度更快。这种特性尤其适合对性能敏感的桌面应用场景,如工业控制主机、ARM 终端、桌面应用、医疗设备等信创重点领域。
跨平台能力
支持Windows、Linux、macOS三大操作系统,最新的支持 且通过单一代码库实现多平台部署,显著降低开发与维护成本。国外被TeamViewer、Symantec、VMware等国际知名产品验证,国内象淘宝、baidu、360、深信服等都是它的客户。
前端技术栈无缝衔接
开发者可直接使用HTML/CSS构建界面,结合JavaScript实现逻辑交互,降低学习成本,是最广大前端爱好者,或其它后端的首选。例如,通过简单的HTML文件即可快速创建窗口,并有着丰富的本地接口如文件操作,网络操作。
资源打包与安全加固
Sciter.js支持将前端资源(HTML/CSS/图片)打包为二进制文件(如resources.cpp
),防止代码泄露,增强应用安全性。这一特性符合信创对软件自主可控与数据安全的要求。
国产化适配能力解析
兼容国产操作系统
Sciter.js 可以在统信 UOS、麒麟等国产 Linux 发行版上良好的运行(得感谢 todesk 之类的企业,深信服等),它对 Ubuntu 类似操作系统支持优秀,也支持无头的操作系统,无需操作系统的桌面,直接可以运行自己来管理窗口,其轻量级特性在国产CPU(如鲲鹏、龙芯)环境下表现优异。
对 ARM 良好的支持
由于美国对于中国的限制,我认为 ARM 未来会有良好的表现,目前俄罗斯等地区企业定购中国硬件时,会指定不使用 Intel 和 AMD 需要使用国产芯片,如瑞芯微, 根据 Sciter.js 作者在最新 6.0 作者测试可以在 Raspberry Pi 5 的 3840×2160 这种 4k 设备上实现 60 FPS。
开发者支持
中文资料确实少,但官方论坛的Andrew回邮件比顺丰还快(凌晨三点发bug报告,他四点就发来热修复补丁)。
信创自主可控的扩展能力
信创验收必杀技, 只花 $310 美元就购买每年的源码授权(比QT便宜个几个零吧),可以第一时间得到更新,作者邮箱第一时间支持,并且自己可以各种魔改。实现不能实现的功能和审核上面的安全上的白盒。
只需要很低立即可以入门
中国最多的程序员就是 JS 程序员,你要做复杂效果好的 GUI, 比如毛玻璃效果。其他框架如 qt 要折腾半天,在Sciter里加个css代码,加个blur-background: 10px;
立即搞定.最骚的是打包体积!Sciter的项目基本就 10-30M 内可以解决战斗。和网页一样的 fetch 接口, FS 接口,原生 websocket 支持,直接使用 socket.io. 要是用 QT,光搭环境就得两天.
说点大实话:Sciter.js 也不是神仙
用了几年当然也踩过坑:
中文文档确实少,但官方论坛回复快(凌晨三点提问题,俄罗斯老哥秒回你敢信?)。
想做超复杂 3D 界面还得上 Unity,但普通系统绝对够用。
接下来想试看可以联动 supabase 想想就激动。
源码是 C++ 写的,真要魔改引擎得有个大佬坐镇,所以这个东西国内用的都是高手。
给想入坑的兄弟划重点
如果你们公司正在搞国产化替代,记住这几个杀手锏:
用本身有存储组件,并且也支持 qlite3 直接操作数据库,省掉JDBC驱动
系统通知有Tray
组件
打包成 exe 本身项目目录内的bin/quark/windows
可以
注意 GUI 是单进程的,弹窗也是在一个进程内。
sciter.js 提供的 Signals 信号机制和 send 与 post 事件通知机制是神器。
语法重点,使用 Reactor 中的 jsx 语法。
作者:凯哥1970
链接:https://juejin.cn/post/7491866188621824015
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。