选择与平台无关的语言进行数学密集型计算

时间:2011-06-16 08:52:40

标签: programming-languages

我打算制作一个火焰分形引擎(没有GUI),类似于flam3, 但我需要选择一种语言。我已经有一个用Java制作的这样的引擎,但它太慢了。

我所寻求的是一种编译语言,可以编译到Windows和Linux(因此没有.NET,GPU语言),最好是垃圾收集和面向对象(所以没有C和C ++)。

除D外,哪些语言满足这些条件? 还有其他想法吗?

编辑:由于D仍处于开发阶段,因此我更倾向于D之后的类似替代品。 我可能会选择D,因为它本身就支持复数等等。 但是,其他开发人员更容易使用C ++,但在我看来,它是一种难以理解的语言。

3 个答案:

答案 0 :(得分:0)

毫无疑问,这将开始一场新的火焰战争直到有人结束这个问题。我个人认为你应该使用C ++,你应该接受丢失的垃圾收集,因为手动内存管理为你提供了更多的性能调优选项。

Google昨天发布了一篇关于Java / C ++ / Go / Scala比较的研究论文,您可能会发现它很有用:

https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf

答案 1 :(得分:0)

你使自己成为一项非常艰巨的任务(顺便问一个有趣的问题)。

我脑海中浮现的唯一语言是Ada(它有optional garbage collectordiscussed in this thread,根据this book,它支持面向对象)。这个Ubuntu comparison表明Ada 2005非常快,基准测试通常比Java快,但比C / C ++慢。

免责声明:我并不认为Ada优于任何其他语言。事实上,我没有在任何合理的应用程序中使用它。我相信使用C ++会产生更快的代码;此外,可能在C ++中手动管理内存所需的工作值得提高速度,但我不是这方面的专家。这不是要开始一场火焰战(正如@Doc指出的那样,它可能会发生);只是我对这个话题的看法。

答案 2 :(得分:0)

我决定去D,因为它最接近我想要的。 我只是好奇其他与D相当的语言。