c++ - 长期绘制密集粒子系统的良好且安全的语言是什么?

标签 c++ haskell openframeworks

对不起,我今天的另一个问题比较模棱两可。

目前,我已经编写了一些半正经的软件,它们有一个“滚动你自己的”RESTful 客户端,它从 Twitter 中提取数据。然后使用 Open FrameWorks(一种与 c++ 一起工作的框架)通过大量粒子系统可视化该数据。

我的计划是在我的 VPS 上无限期地运行该软件,并构建某种前端 GUI 以允许用户探索漂亮的粒子等等。在我使用的 JSON 库、C/C++、OpenFrameworks 和该死的 Xcode4 之间,我产生了太多需要处理的 SIGBIRT 和 GDB 错误。我已经走到虚拟世界的尽头去修复它们,一遍又一遍地重写所有内容。我什至设法 SIGBIRT openframeworks 画圆的方法,哈哈!

(TL;DR 从这里开始)好吧,无论如何我都是从头开始,寻找一种强大的语言,它可以处理数学并通过一组好的粒子进行爆炸,并且可以在最长的时间内运行良好。现在我正在考虑 haskell,有什么想法吗?

在此先感谢大家!

最佳答案

Haskell(或更具体地说是 GHC)的数字运算速度正在接近 C++,但还是落后了一点。然而,这当然并不可怕,Haskell 在并行性方面的优势可能会变得重要。也就是说,如果您首先直接用 Haskell 编写它,那么现在或将来很容易重构它以并行运行。 C++ 并非如此。

'vector' 包(在 Hackage 上)对于适合数字运算的数组来说是一个不错的选择。如果需要这种方法,它支持可变数组。但是,如果您准备在最前沿进行更多研究并且您的算法可以并行化,您可能需要查看“repa”包,为了在 GPU 上获得极致性能,请查看“Accelerate”(有效,但仍被归类为实验性的)。

您提到的崩溃听起来可能表明您的问题有点复杂。 Haskell 擅长的地方在于管理……好吧,任何事物的复杂性。所以,如果问题很复杂,那么 Haskell 会非常适合你。

Haskell 中的外部函数接口(interface)设计得很好,尽管您需要在 Haskell 和 C++ 之间编写 C 胶水。所以,这是您处理数字的另一种选择。

对于 Web 界面,请查看“yesod”,它的开发非常活跃,并标榜自己采用 RESTful。

关于c++ - 长期绘制密集粒子系统的良好且安全的语言是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378675/

相关文章:

c++ - 排序数组最快的搜索方法是什么?

c++ - 指针追逐基准 : Read+Write(+CLFLUSH) faster than Read(+CLFLUSH)

performance - 对于小矩阵,纯 Haskell 比 HMatrix 快 10 到 100 倍?

c++ - glsl - 片段着色器(模糊)-> 黑屏

audio - FMOD 环绕声开放框架

c++ - std::set_Differences 不处理读取文件

haskell - 如何在 Either 中收集 ST 操作列表?

Haskell 中的 HTTP POST 内容

c++ - 使用 C++ 和 openframeworks 的 Color 图像检索系统

c++ - 在 Qt 项目中使用 STXXL