我打算在我的应用程序中包含一个帕斯卡脚本。它不需要任何网络访问,只需访问我的应用程序中的类。它应该很快(编译)。我看到有许多可用的脚本,其中一些是解释器,但在编译器中 RemObjects pascal 脚本和Delphi Web 脚本 (DWS)似乎很强大并且正在积极追求。
任何人都可以提出一个优于另一个的优势吗?谢谢
我打算在我的应用程序中包含一个帕斯卡脚本。它不需要任何网络访问,只需访问我的应用程序中的类。它应该很快(编译)。我看到有许多可用的脚本,其中一些是解释器,但在编译器中 RemObjects pascal 脚本和Delphi Web 脚本 (DWS)似乎很强大并且正在积极追求。
任何人都可以提出一个优于另一个的优势吗?谢谢
归根结底,恕我直言:
Delphi Web Script 正在积极且积极地开发中。
PascalScript 在开发和增强方面几乎处于休眠状态。
然而,DWS 是一个社区项目,本质上是由一个(非常有才华和能力的)人开发的。RemObjects 支持 PascalScript。
但是:参与开发/支持产品的人数/组织规模并不像他们实际提供的开发和支持的效率和热情那么重要。
在这两种情况下都提供了源,因此即使“官方支持”枯竭,您也不会完全迷失方向。
据我了解,DWS 引擎是一个比 PascalScript 更容易理解的实现,这可能使“自我支持”更容易,但在这种情况下,你习惯的东西很重要(我以前曾研究过一个完全不同的脚本引擎,我理解比 PascalScript 更类似于 DWS)。
最后,我目前正在做一个使用 PascalScript 的项目,现阶段打算尽快切换到 DWS。
我最初选择 DWS 的三个主要原因是:
请注意,我实际上根本没有使用 DWS 的“Web”端。
我已经使用 Rem Objects 的 Pascal Script 好几年了,在我看来,它是最好的。至于文档,请查看 Pascal 编程手册。脚本中没有奇怪的语法或函数调用。回答上面的答案 0,如果你知道 Delphi,就不需要公开可用的文档。我还没有遇到过一个必要的情况。有 2 篇文章介绍了如何在应用程序中实现脚本。如何导入类、方法和函数以及几个示例。对于其他任何事情,普通的 Delphi 文档就足够了。但是,对于 DWS,必须有明确的文档,因为语法完全不同。不得不使用 TProgramInfo 和 IInfo,使得脚本变得奇怪而乏味。
我使用 Rem Objects Pascal 脚本来控制电话呼叫 IVR 功能,类似于 Asterisk AGI 端口实现。每次对 Asterisk 的传入调用都会生成一个连接到我的服务器套接字的套接字。我通常同时运行多达 2000 个脚本。每个脚本都经过加载、编译和执行,每秒可以轻松处理多达 45 个来电。每个脚本控制所有呼叫的接听、播放文件、收集 DTMf、录音等。对于冗长的回复感到抱歉,但我不能说 Pascal 脚本的工作原理有多好。感谢 Rem Objects 和 Carlo Kok。多么棒的产品。他们可能不会主动进行更新,也许是因为没有必要。效果很好!!!PS。另一个很棒的特性是编译成字节码的脚本不能轻易地被逆向工程。因此,您的代码是安全的。还,如有必要,您可以预编译脚本并在运行时执行它们,而无需编译。但是,这对我来说不是必需的,因为我可以处理很多。也许有一天,希望我需要预编译。这意味着我们每秒处理的数据超过 45 个。
也许考虑第三种选择。我知道 OP 专门询问 PascalScript 和 DWS,但我建议将TMS Scripter Studio或TMS Scripter Studio Pro作为可能的解决方案。您可以获得 Pascal 和 BASIC 解释器,当最终用户对学习 Pascal 不感兴趣但有 VB 背景时,我可以使用它们。
您说它应该很快,而当速度很重要时,您无法击败PaxCompiler。它不是免费的,但值得考虑。该功能集是独一无二的,并且多年来一直在积极开发。
Pascal 脚本的最大问题是语言本身的文档为零。我的意思是零。当然,有各种通用的 Pascal 站点,它们有点适用,但并不完全适用,当然还有其他不完整的临时教程。但是当涉及到真正的、全面的文档时,这简直就是个笑话。为了为 InnoSetup 编写一些“高级”脚本,我必须查看源代码并弄清楚编译器的真正作用。
我认为任何考虑使用 Pascal 脚本的人都应该重新考虑一下。如果没有公开可用的文档,它几乎是无用的。InnoSetup 不应该使用它,恕我直言,当您想做一些没有人费心为(还)编写教程的简单事情时,这太痛苦了。
我已经使用 tms scripter 3 年了,它运行良好,良好的文档,良好的支持,生产者不断开发,快速解析器,ui 组合是我为我们的 bpm 软件选择它的原因
用 PS 做了很多工作,并且自己将引擎扩大和改进为脚本引擎,这意味着该应用程序“开箱即用”(自包含),无需安装或注册: https ://sourceforge.net /p/maxbox/news/2021/11/maxbox-47610-released-/
我所有的客户都要求在 32 位的工业机器(物流、医药和能源工厂)上运行,因此,我决定在我们拥有的旧 Delphi 2007 上编译 maXbox。选定的脚本引擎可以执行我们需要的所有任务,也可以在线程中稳定工作。我们已经将此解决方案整合到我们的原始应用程序 - maXbox4 中。 https://maxbox4.wordpress.com/