ruby - 以性能为中心的桌面程序 : Ruby or Go?

标签 ruby performance image-processing programming-languages go

我目前不会两种语言中的任何一种。一款软件的设计接近完成。

有趣的是:

  • Ruby:愉快。遵循思维过程。为人类而生。
  • Go:表现良好。快速编译时间。

我不知道 Ruby 的性能如何。如果它比 Go 慢很多,我会选择后者(这里谈论典型的速度)。

我最终会同时学习两者,但现在,这将决定先学哪一个。

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

最佳答案

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

您没有告诉我们您想要哪种桌面,我假设它是 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 许可的旧版本代码并重新使用它的很多代码)。

对于 Mac,我会推荐 Objective C——它是该平台的原生语言,拥有最好的文档和最好的免费开发工具 (XCode)。您可以使用 https://github.com/philippec/Pixen作为起点。

关于ruby - 以性能为中心的桌面程序 : Ruby or Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605051/

相关文章:

ruby - Rakefile 中的 Makefile 等效行为

ruby - Sinatra 应用程序无法运行

asp.net-mvc - 为什么 ASP.NET MVC 默认 Model Binder 很慢?它需要很长时间才能完成工作

java - 如何针对 vanilla 基准调整 Java GC?

matlab - 我可以找到单个图像的 PCA 吗? - MATLAB

image-processing - 如何使用 UnfoldingMaps 库处理处理中的这些错误消息

ruby-on-rails - RVM 安装错误

ruby - 将数组插入 postgresql 映射准备语句

sql - 使用 NULL 查询性能

python - 在python中找到图像中每个框的均值