【问题标题】:Should I use Python or Ruby for creating a cross-platform, compiled application? [closed]我应该使用 Python 还是 Ruby 来创建跨平台的编译应用程序? [关闭]
【发布时间】:2012-01-03 02:16:22
【问题描述】:

我是 Ruby 的粉丝,但我不反对 Python。 (我有 2 年以上的 Ruby 经验和 2 个月的 Python 经验)。

无论如何,我需要为 Mac 和 Windows(实际上是 Linux)创建一个服务,从不同的目录获取某些文件并将它们发送到 S3。我可以在 Windows 上使用 .NET,但我不想使用 Objective-C,我希望在所有平台上保持我的代码库相同。

所以经过一番挖掘之后,看起来我应该能够将 Ruby 或 Python 编译为字节码并分发解释器来运行代码。

但是,假设 Python 对编译代码有更好的支持,我错了吗?如.pyc字节码?

另外,我希望最终用户能够阅读我的源代码,但我不会去世界尽头试图阻止他们。

谢谢!

【问题讨论】:

  • stackoverflow.com/questions/940149/… 的可能重复;本质上 py2exe 和 OCRA 执行相同的任务。
  • 我不确定这是不是重复的。链接的问题是关于分发 ruby​​/python GUI 应用程序而不要求用户预先安装 ruby​​/python。这个问题是关于你是否可以在不分发源代码的情况下分发 ruby​​/python 字节码。
  • 额外提示:学习如何在 Windows 和 Linux 中打包 mercurial(和 tortoisehg)。它们都在python中。 Toroisehg 使用 PyQT 来驱动 GUI。
  • 除了像OCRA这样的工具,相信JRuby也可以让你编译成字节码。

标签: python ruby compilation distribution


【解决方案1】:

您确实可以分发 Python 字节码(.pyc 文件)以避免分发您的 Python 源代码。

根据this answer,一些Ruby实现也支持编译成字节码。

听起来,根据您选择的 Ruby 实现,您可能会发现使用 Python 和 Ruby 之间几乎没有区别。

请记住,字节码并不难反汇编,因此有动力的用户仍然能够找到有关您程序内部结构的大量信息。使用混淆器会使逆向工程字节码变得更加困难(但并非不可能)。这在this Python questionthis Ruby question 中有更多讨论。

【讨论】:

  • 我认为 PYC 文件不能保证是可移植的。
【解决方案2】:

使用您熟悉的任何语言,我知道 python 并使用它来开发 Windows 桌面应用程序,最终用户无法将其与 C# 或 C++ 应用程序区分开来

【讨论】:

    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多