以性能为中心的桌面程序:Ruby还是Go?

时间:2011-07-07 02:01:30

标签: ruby performance image-processing programming-languages go

我目前不知道这两种语言中的任何一种。一个软件的设计已接近完成。

有趣的是:

  • Ruby:愉快。遵循思考过程。为人类制造。
  • Go:表现良好。编译时间快。

我不了解Ruby的表现。如果它比Go慢很多,我会选择后者(在这里谈论典型的速度)。

我最终会学到这两个,但是现在,这将首先决定哪一个。

更新:这是一个非常基本的图像编辑程序。技术和特别感知的速度应该很高。启动时间尤为重要。

3 个答案:

答案 0 :(得分:9)

可悲的是,这两种语言都不适合桌面图像编辑程序。

您还没有告诉我们您考虑过哪个桌面,我会假设它是Windows或Mac。

Ruby不合适,因为它失败了你的2个要求:

  • 它有一个糟糕的启动时间,因为在启动时它必须初始化一个相当复杂的VM,其中涉及加载其标准库的很大一部分
  • 执行图像处理所需的计算非常慢(与C / Java / Go相比)

Go是静态链接的,并且被编译为机器代码,因此它的启动时间非常好,速度接近于C(即它是您希望在C / C ++之后选择的最快的语言)。

但是,Go对编写Mac桌面应用程序没有任何支持(即它没有与Objective-C / Cocoa运行时的桥梁),并且对编写Windows桌面应用程序的支持非常差。

如果您正在使用Windows,那么为您提供快速启动时间的唯一语言是C / C ++ / Delphi。 C#可能具有可接受的启动时间并且它足够快以完成任务(非常流行的paint.net是用C#编写的,你可以找到旧版本的代码,它是BSD许可的并重复使用它的很多代码)。 / p>

对于Mac,我建议使用Objective C - 它是平台的本地语言,最好的文档和最好的免费开发工具(XCode)。您可以使用https://github.com/philippec/Pixen作为起点。

答案 1 :(得分:2)

你真的需要告诉我们你认为好的和坏的表现,因为它是一个非常主观的主题。

例如,人们通常愿意为易于使用或开发的系统交换一定数量的技术或感知速度。此外,它也很重要你要做什么。每种语言都有自己的优点和缺点。 Ruby可能比Go更快。然后,如果你真的需要速度,也许你应该看一种更接近金属的语言,比如C.

有时候,用户对速度的要求也是主观的。我曾经有过一个系统,用户认为这个系统花费的时间太长,无法完成特定的任务。技术上没有办法加快速度,所以我给“Processing ...”窗口制作了动画。因为用户现在可以在屏幕上看到“正在发生”的事情,他们认为它变得更快。在秒表上,它实际上花了几秒钟。

答案 2 :(得分:0)

我认为这些语言是您为性能关键型应用程序选择的最差语言。我对Go不太了解,但是Ruby与Python类似(甚至更慢),Python也很慢。正如我一直在阅读的那样,Go比Ruby快得多,但仍然比其他编程语言慢两三倍......这取决于你想要做什么,当然,即。我不会选择任何实时物理学或类似的东西。

http://shootout.alioth.debian.org/u32/performance.php?test=nbody

Why is go language so slow?

http://attractivechaos.github.com/plb/

我已经使用python工作了几年而且它真的很慢而且我确定你会讨厌它而且Ruby与Python非常相似而且速度较慢但是因为Go太新了我真的不知道很多,我不能说..