对不起,我今天的另一个问题比较模棱两可。
目前,我已经编写了一些半正经的软件,它们有一个“滚动你自己的”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/