在使用C ++进行编码之前,我已经使用F#进行算法建模,之后再使用它来检查C ++代码的结果以及实际记录的数据。
对于建模方面,这非常方便,但是对于“数据混搭”类的东西,从CSV和其他来源中提取数据,生成统计数据,绘制图表等,我的同事却无休止地挑逗我(“为什么您呢?自己编写代码吗?它内置在MatLab中”)。
我还有另一个同事向R发誓,R也具有“内置”图表功能。
我知道MatLab,R和F#并不是严格可比的,因此我并不是要进行“功能比较测试”。我只是想知道其他人在这种分析之前和之后的方案中使用什么,以及他们对此是否满意。
(如果有人在那里将Microsoft Charts包装为F#友好的东西,让我知道,我很乐意参加...)
(注意:这个问题的答案将是主观的,但请根据经验)
回答:
我对F#的经验很少,但是对于C ++ / Matlab / R:如果程序的
执行速度最重要,请使用C ++。如果
实现的速度是最重要的,请使用Matlab或R。这是有很多原因的,其中最重要的是它们庞大的数学/统计信息包库。
Matlab和R都可以通过并行化来加速:因此,总的来说,我认为实现的速度和质量应该是一个更大的问题。这就是应用程序设计中真正的编程“价值”所在的地方。如果您可以同时编写3或4个优秀的R程序,同时又要编写1个优秀的C ++程序,这不是一个小命题。
关于F#:就它作为Microsoft框架的一部分而言,它必须提供很多东西。如果您正在Visual Studio中进行开发或正在处理大型.Net项目(例如),则可能会使用F#。另一方面,您可以从.Net应用程序中调用Matlab和R,因此我可能会认为它们的库应该是一个更大的问题。例如,请参阅
本文作为R和
Matlab Builder 的示例 。
长话短说:
比较F#和Matlab / R并不是一个很好的比较 。 F#是一种通用编程语言,而Matlab / R可以看作是大量的数学/数据分析工具包。有人从F#调用Matlab或R,以利用每种语言的优势(例如,请参见
本讨论 ,
Matlab / F#上的 本文或
R / F#上的本文 )。
就图表而言:R在这方面非常强大。看一下
CRAN上
的图形视图以及
LearnR博客上有关Lattice和ggplot2的系列文章 。
更多&回答...