【问题标题】:Is Perl a good option for writing platform independent desktop applications?Perl 是编写独立于平台的桌面应用程序的好选择吗?
【发布时间】:2011-01-07 07:30:19
【问题描述】:

Perl 是编写(可能和部分)独立于平台的桌面应用程序的好选择吗?我知道有一些有趣的小部件库,例如 GTK2 PerlwxWidgets,但我不熟悉 Windows 上的开发。

是否有可能用 Perl 和那些工具编写一个好的应用程序,也许嵌入所有需要的东西以避免要求用户安装外部(对于许多人来说可能是非常规的)库?周围有这类应用的例子吗?

【问题讨论】:

  • 桌面或网络应用程序?标题说明一件事,正文说明另一件事。
  • 对不起,标题胜过正文:我的意思是桌面
  • 你问是因为 Perl 是你唯一知道的语言吗?为什么语言必须是 Perl?你还在考虑什么?
  • 我问是因为我喜欢 Perl,我希望能够编写可以在 Windows 上运行的应用程序,但我对 .net 的东西不感兴趣因为我的主要工作环境是linux。我没有真正的需要,因为它是出于个人兴趣,所以我可以选择我的游乐场。
  • 使应用程序“独立于平台”的一种简单方法是创建一个 Web 应用程序...您首先应该考虑的是:“我真的需要桌面应用程序吗?”

标签: perl user-interface gtk wxwidgets desktop-application


【解决方案1】:

有点。您当然可以编写 Perl 脚本来提供可以在任何平台上运行的 Tk GUI,您甚至可以打包他们需要与 PAR 一起使用的库,以组成一个应用程序,该应用程序可以在安装了适当版本的 perl 的任何地方运行,而无需最终用途是从 CPAN 安装一堆东西以使其正常工作。

然而,一个可以在任何地方运行的应用程序 需要现有的 perl 安装(假设普通 Windows 用户将拥有 perl 可能不安全)实际上并不可行。一种解决方案是分发一个“除了 Windows 之外的任何地方”版本,它只使用 PAR 来包含必要的库,以及一个为 Windows 构建的 PAR::Packer 版本,这将是一个功能齐全的 .exe,包括 perl 解释器和图书馆。

编辑:根据 daotoad 的回应,ActiveState 的 PerlApp 似乎可以为 Windows、Mac OS X、Linux、Solaris 和 AIX 构建跨平台二进制文件;我没有尝试过,但如果它像宣传的那样工作,它似乎可以满足您的要求。

【讨论】:

    【解决方案2】:

    我的雇主使用ActiveState's PerlApp 来生成我们应用程序的可执行版本并取得了巨大成功。

    在选择我们的打包方法之前,我们测试了 PAR 和 PerlApp。那时,PerlApp 的加载时间更快。从那时起,每种工具都有几个版本来了又去,所以我建议在选择工具之前先对每个版本进行测试。

    可执行打包对我们来说非常有效。

    Perl 存在一些可移植性问题,但如果您注意perlport,则很容易避免大多数问题。我们最大的问题总是在 Win32 上。有时,一些简单的事情将需要愚蠢、奇怪的变通办法或挖掘 Win32 API 以获得特定于平台的 hack。

    我们同时使用了 Wx 和 Tk guis。

    Frozen Bubble 是一个广为人知且广泛可用的应用程序,您可以看看。

    【讨论】:

      【解决方案3】:

      请查看 PAR(可通过 CPAN 获得)了解您的捆绑要求。

      考虑查看Padre,了解使用Wx 以perl 编写的复杂应用程序示例。

      所以是的。您的所有要求都是可以实现的,包括便携性。

      【讨论】:

      • 我还没有发现 Padre 是可移植的,主要是因为 Wx 在某些平台上是如此痛苦。当然,你最终可以让它工作,但我不认为这是现实世界的可移植性。可能与合理有点不同。
      • 是的,我使用的是 Mac,但我也无法让 Wx 在 Windows 和 linux 上工作。星星必须正确对齐才能使一切正常进行。然而,那总是当我试图自己编译东西的时候。 Mac 测试人员的问题可能是他们都不需要 Padre。我对我的编辑器非常满意,我认识的大多数 Mac 用户也是如此。
      【解决方案4】:

      我正在开发 CPAN 上的模块 XUL::Gui,它使用 Firefox 显示来自 Perl 的跨平台 gui 应用程序。它正在开发中,但很稳定,可能已经足够满足您的需求。您可以使用 HTML 和/或 XUL(Firefox 本身编写的 Mozilla gui 语言)构建您的 gui,然后使用 CSS 为所有内容设置样式。如果您有任何功能要求,请告诉我。

      【讨论】:

        猜你喜欢
        • 2012-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-09
        • 1970-01-01
        • 2011-05-27
        • 1970-01-01
        相关资源
        最近更新 更多