目前祺佑三层开发框架(猫框)已经完成了HTTP 1.1协议的VFP实现,也部分完成了MQTT协议的VFP实现,这些是我在VFP的无人区探索,而那些只会打嘴炮的伪专家在哪里?有些看了我的文章,学了知识,还要贬低我,真不知道那些人是怎么想的。
有部分狐友学习了我的框架,总想着去创建自己的轮子,但是框架是整套体系,内核是面向对象的开发思想,如果没有掌握面向对象的方式,是没有办法整体超越的。我说这个,其实不是打击大家,猫框会用就好,但我希望的是,大家朝着VFP的无人区前进。
目前猫猫在做MQTT的VFP实现,以后VFP在物联网中一定能发挥更大的作用。最近发现了一块新的无人区,我希望有人能在这里拓展一下VFP的边界。
用VFP混合JS,js的免费库是非常多的,甚至可以说是多于牛毛(VFP本身的库少之又少,就连做一点收费库,经常被某些人白PIAO,还理直气壮,我还是服了。)
牛逼的Qiuickjs引擎
生猛!FFmpeg 开发者徒手撸了一个 JS 引擎文章,这是我前两年看到的文章,当时觉得里面一定有东西非常好用。QuickJS引擎为纯C写的,只有少数几个文件,整个工程下包括测试用的,一共包含十几个.C文件。相当精简。所有东西的编译用一个Makefile文件即可,自己要动手改点什么东西也是容易得很。
先说QuickJS的作者,貌似有两位,其中的Fabrice Bellard是大牛。Qemu、FFmpeg的作者。这一辈子有FFmpeg一个就足以青史留名了。我简单从百度百科上摘抄了Bellard的履历。感觉上面这些语言都太简陋了,完全无法体现Bellard的厉害。
QuickJS 是一个小型且可嵌入的 Javascript 引擎。它支持 ES2020 规范,包括模块、异步生成器、代理和 BigInt。它可选地支持数学扩展,例如大十进制浮点数 (BigDecimal)、大二进制浮点数 (BigFloat) 和运算符重载。
主要特点:
-
小且易于嵌入:只有几个 C 文件,没有外部依赖,一个简单的 hello world 程序需要 210 KiB 的 x86 代码。
-
启动时间极短的快速解释器:在台式 PC 的单核上运行 ECMAScript 测试套件的 75000 次测试大约需要 100 秒。运行时实例的完整生命周期在不到 300 微秒内完成。
-
几乎完整的 ES2020 支持,包括模块、异步生成器和完整的 Annex B 支持(旧版 Web 兼容性)。
-
选择 ES2020 功能时,几乎 100% 通过 ECMAScript 测试套件测试。Test262 报告中提供了摘要。
-
可以将Javascript 源代码编译为没有外部依赖的可执行文件。
-
使用引用计数(以减少内存使用并具有确定性行为)和循环删除的垃圾收集。数学扩展:BigDecimal、BigFloat、运算符重载、bigint 模式、数学模式。
-
在 Javascript 中实现上下文着色的命令行解释器。
-
带有 C 库包装器的小型内置标准库。
这篇文章讨论无人区,猫猫昨天开夜车到凌晨4点,也有测试了相关代码,查询了相关资料,目前能做的工作是:
- 将JS生成dll供VFP调用
- VFP代码中直接运行JS
1 将JS生成dll供VFP调用
qjsc -e -o hello.c hello.js
就会生成C源程序,就可以改写成DLL供VFP调用了
这种方式也非常有用,这样大量的JS库我们就能应用了,但终级王炸是下面这个。
2 VFP代码中直接运行JS
VFP的FLL 就是C开发的,如果把QuickJS引擎置于FLL之中,那么VFP直接运行JS,大大扩展了VFP应用的边界。