【问题标题】:What are the pros and cons of RemObjects PascalScript versus the DWS script?RemObjects PascalScript 与 DWS 脚本的优缺点是什么?
【发布时间】:2011-02-03 17:59:03
【问题描述】:

我打算在我的应用程序中包含一个 pascal 脚本。它不需要任何网络访问,只需访问我的应用程序中的类。它应该很快(编译)。我看到有许多可用的脚本,有些是解释器,但在编译器 RemObjects pascal scriptDelphi Web Script (DWS) 中似乎很强大并且积极追求。

谁能提出一个比另一个的优势? 谢谢

【问题讨论】:

    标签: delphi compiler-construction pascal dwscript


    【解决方案1】:

    归根结底,恕我直言:

    • Delphi Web 脚本正在积极且积极地开发中。

    • PascalScript 在开发和增强方面几乎处于休眠状态。

    但是,DWS 是一个社区项目,本质上是由一个(非常有才华和能力的)人开发的。 RemObjects 支持 PascalScript。

    但是:参与开发/支持产品的人数/组织规模并不像他们实际提供的开发和支持的效率和热情那么重要。

    在这两种情况下都提供了来源,因此即使“官方支持”枯竭,您也不会完全迷失。

    据我了解,DWS 引擎是一个比 PascalScript 更容易理解的实现,这可能会使“自我支持”更容易,但在这种情况下,你习惯的东西很重要(我之前曾研究过一个完全不同的脚本引擎我理解它比 PascalScript 更类似于 DWS)。

    最后,我目前正在做一个使用 PascalScript 的项目,现阶段打算尽快切换到 DWS。

    【讨论】:

    • +1 我倾向于 DWS,因为它发展迅速。
    • 你推开了一扇敞开的门,谢谢。我已经尝试过 DWS 并且印象非常深刻。布赖恩。
    【解决方案2】:

    我最初选择 DWS 的三个主要原因是:

    1. 在 DWS 中,您可以/可以在脚本中声明全新的类,包括继承、元类等,并且不限于您公开/导入的那些类。
    2. 更具限制性的公开模型(脚本只能访问您公开的内容),这允许沙盒和随时安全终止脚本。
    3. 更简单、更易读的源代码结构,具有直接、无字节码的执行模型,相对更易于扩展、调试和维护。

    请注意,我实际上根本没有使用 DWS 的“Web”端。

    【讨论】:

    • +1 我目前在多个 Web 服务上使用 DWS(:感谢 Eric 的工作!!
    【解决方案3】:

    我已经使用 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 个。

    【讨论】:

      【解决方案4】:

      也许考虑第三种选择。我知道 OP 专门询问 PascalScript 和 DWS,但我建议查看 TMS Scripter StudioTMS Scripter Studio Pro 作为可能的解决方案。您可以获得 Pascal 和 BASIC 解释器,当最终用户对学习 Pascal 不感兴趣但有 VB 背景时,我可以使用它们。

      【讨论】:

      • 是的,谢谢我拥有 TMS 产品并对其进行了评估。正如我在帖子中所说,我不能容忍口译员的懒惰,但谢谢。
      • @Brian:您是否针对已编译的脚本测试了解释器?这些脚本都被编译成字节码并由虚拟机执行;无论如何,它们并不像实际编译编译代码那样快。
      • +1 为石匠。衡量,并衡量好(使用项目中的相关代码,而不是空闲的 for 循环)
      • @Mason:是的,Mason,我有,你说得对,他们很快。对于实时硬件应用程序来说还不够快:-)
      • @Brian:好吧,如果您追求的是快速,那么 DWS 无疑是赢家。
      【解决方案5】:

      你说它应该很快,当速度很重要时,你无法击败PaxCompiler。它不是免费的,但值得考虑。该功能集是独一无二的,并且多年来一直在积极开发。

      【讨论】:

        【解决方案6】:

        Pascal 脚本的最大问题是语言本身的文档为零。我的意思是。当然,有各种通用的 Pascal 站点,它们有点适用,但并不完全适用,当然还有其他不完整的临时教程。但是当涉及到真正的、全面的文档时,这简直就是个笑话。为了为 InnoSetup 编写一些“高级”脚本,我必须查看源代码并弄清楚编译器的真正作用。

        我认为任何考虑使用 Pascal 脚本的人都应该重新考虑一下。如果没有公开可用的文档,它几乎是无用的。 InnoSetup 不应该使用它,恕我直言,当您想做一些没有人费心为(尚未)编写教程的简单事情时,这真是太痛苦了。

        【讨论】:

          【解决方案7】:

          我已经使用 tms scripter 3 年了,它运行良好 良好的文档、良好的支持、生产者不断开发、快速解析器、ui 组合是我为我们的 bpm 软件选择它的原因

          【讨论】:

            【解决方案8】:

            在 PS 上做了大量工作,并将引擎扩大和改进为自己的脚本引擎,这意味着该应用程序“开箱即用”(自包含),无需安装或注册: https://sourceforge.net/p/maxbox/news/2021/11/maxbox-47610-released-/

            我的所有客户都要求在 32 位的工业机器(物流、医药和能源工厂)上运行,因此,我决定在我拥有的旧 Delphi 2007 上编译 maXbox。 选定的脚本引擎可以执行我们需要的所有任务,也可以在线程中稳定工作。我们已经将此解决方案整合到我们的原始应用程序 - maXbox4 中。 https://maxbox4.wordpress.com/

            【讨论】:

              猜你喜欢
              • 2016-03-26
              • 1970-01-01
              • 1970-01-01
              • 2012-05-12
              • 1970-01-01
              • 2010-10-31
              • 1970-01-01
              • 1970-01-01
              • 2010-10-26
              相关资源
              最近更新 更多