笔者于 2020 年 7 月提出 HVML 编程语言并公开了相关的规范。一年后,即 2021 年 7 月,我们成立了一个攻坚团队并正式开始了 HVML 解释器(PurC)的开发。次月起,即 2021 年 8 月,我们通过“考鼎录”公众号发表 HVML 的开发月报,向关注 HVML 的各位朋友汇报相关研发进展。
本文是 HVML 开发月报的第四期。
在笔者发表于 2018 年的《三谈操作系统》一文中提到,一个操作系统区别于其他操作系统最为重要的技术特征就是围绕某个特定编程语言形成的应用编程接口(API)。我将这个技术特征比喻为操作系统的基因。要设计一个全新的操作系统,就必须在某个编程语言基础上设计一套完备的、可扩展的、易用的应用编程接口,而 HVML 就是笔者为正在开发中的下一代操作系统——合璧操作系统——设计的全新编程语言。
第一次听说 HVML 的朋友,可以阅读如下文章以了解其背景:《合璧操作系统的大胆技术突破:漫谈 HVML,它的由来和未来》。
本文作为 HVML 开发月报的第四期,主要包括如下内容:
- 10 月完成的工作内容
- 下一步计划
- HVML 兴趣小组
- 常见问题及解答
10 月完成的工作内容
2021 年 10 月,在研发团队的努力下,我们完成了如下工作:
- 重构了十三种内建执行器的语法,并完成了解析部分。
- 从 WebKit 中抽离出了独立的 NetProcess 源代码,重新组织为 PurC Fetcher,使其可作为 PurC 的外部数据获取器,以支持 FILE、HTTP 等协议。
- 大幅修订 HVML 1.0 规范文档,并进入 RC(Release Candidate)阶段。
下一步计划
2021 年 11 月,团队将完成:
- 用于支持 FILE、HTTP、HTTPS、FTP、LCMD、LSQL 等协议的数据获取器以及 PurC 中的数据获取器实现。
- 除 SQL 之外的十二个内置执行器的实现。
- HVML 解释运行模块的如下功能:
- 增强变体模块,根据 HVML 规范要求,实现变体的数值化、布尔化、字符串化等。
- 增强变体模块,可监听容器的变化。
- 初步实现栈帧及变量的管理。
- 表达式及目标文档元素对应的原生实体对象。
- 一个调试用渲染器。该渲染器可运行在字符终端上,基于 ncurses 库,使用文本方式展现 uDOM 树,并提供修改 uDOM 树的交互接口,使之可用于 PurC 解释器的开发和调试。
预计 2021 年 12 月,团队将完成 PurC 的初步版本,正式发布 HVML 规范 V1.0。
HVML 兴趣小组
HVML 兴趣小组是一个虚拟小组,主要成员是对 HVML 及相关技术感兴趣的业内人士,这个小组主要通过微信群聊沟通。
如有兴趣加入该群聊,您可以通过点击“Contact”在后台留言,留下您的微信号,小编加您好友之后拉您入群。
目前 HVML 兴趣小组正在围绕如下两个规范文档展开工作:
- HVML 规范:
https://gitlab.fmsoft.cn/hvml/hvml-docs/blob/master/zh/hvml-spec-v1.0-zh.md - HVML 预定义变量:
https://gitlab.fmsoft.cn/hvml/hvml-docs/blob/master/zh/hvml-spec-predefined-variables-v1.0-zh.md
常见问题及解答
Q:HVML 是针对嵌入式和物联网使用的吗?
A:不仅仅是。HVML 是一种通用的胶水语言,主要用来开发跨平台的 GUI 应用,因此,HVML 的目标平台包括传统的桌面、智能手机、平板、嵌入式设备和物联网设备。
Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?
A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目的并不是取代现有的 Web 前端开发技术,而是为跨平台 GUI 应用的开发提供另外一种技术框架。
Q:在哪里可以看到 PurC 和 xGUI 的源代码。
A:PurC 和 xGUI 仍然处在开发状态,暂时不向公众开放其代码仓库。
Q:未来会开源 PurC 和 xGUI 吗?
A:会的,而且我们会使用商业友好的宽松许可证(如 LGPL)发布 PurC 和 xGUI。
Q:如何赞助 HVML 相关的项目?
A:个人打赏性质的赞助,您可以点击文后的原文链接。大额的赞助,可点击“Contact”留下联系方式,我们的小编会联系您。
原文链接
https://store.fmsoft.cn/campaign/denoteoss-lt
附:商标声明
本文提到的产品、技术或者术语名称,涉及北京飞漫软件技术有限公司在中国或其他地区注册的如下商标:
- 飛漫
- FMSoft
- 合璧
- HybridOS
- HybridRun
- MiniGUI
- xGUI
- miniStudio
- HVML
- 呼噜猫
- Purring Cat
- PurC