2012-01-03 38 views
3

我是Ruby的粉丝,但我不反对Python。 (我有2年以上的Ruby经验,也许有2个月的Python)。我应该使用Python还是Ruby来创建一个跨平台的编译应用程序?

无论如何,我需要为Mac和Windows(实际上是Linux)创建一个服务,它将来自不同目录的某些文件发送到S3。我可能在Windows上使用.NET,但我不想使用Objective-C,我很乐意让我的代码库在所有平台上保持一致。

因此,仔细研究一下,看起来我应该能够将Ruby或Python编译为字节码并分发解释器来运行代码。

但是,我错在假定Python更好地支持编译代码?如在.pyc字节码?

此外,我更喜欢最终用户而不是能够阅读我的源代码,但我不会试图阻止他们到世界末日。

谢谢!

+2

的可能DUP http://stackoverflow.com /问题/ 940149 /分发-红宝石中的python-桌面应用程序;基本上py2exe和OCRA执行相同的任务。 – SimonJ 2012-01-03 02:21:47

+0

我不确定这是否重复。链接的问题是分发一个ruby/python GUI应用程序,而不需要用户预先安装ruby/python。这个问题是关于你是否可以分发ruby/python字节码而不必分发源代码。 – Ben 2012-01-03 04:41:26

+0

额外提示:请研究如何将mercurial(和tortoisehg)打包到Windows和Linux中。他们都是蟒蛇。 Toroisehg使用PyQT来驱动GUI。 – aitchnyu 2012-01-03 09:19:17

回答

3

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

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

所以,听起来像是,根据您选择哪个Ruby实现,您可能会发现使用Python和Ruby之间的差异很小。

请记住,字节码不难反汇编,所以一个有动机的用户仍然能够找到你的程序的内部相当多。使用混淆器可以使其更难(但仍不是不可能)对您的字节码进行反向工程。这在this Python questionthis Ruby question中有更多的讨论。

+0

我不认为PYC文件是可移植的。 – 2012-01-03 17:53:50

0

使用任何一种语言,你完全知道的,我知道蟒蛇,并用它来开发windows桌面应用程序和最终用户无法区分它与说C#或C++应用程序

相关问题