首先是一些背景,我是一名数学家,接受过很少的正式编程培训。我对 MATLAB 最满意,并且已经使用它很长时间了。我的第二个选择是 C++。但在这两种语言中,我编写的最长最复杂的代码可能在一百到两百行之间。
我将很快开始编写一些代码来跟踪各种电磁场配置中的带电粒子,首先是 2D,然后是 3D。这引发了我和朋友的争论,我应该用 MATLAB 还是 C++ 来写这个。
我向这个社区提出的问题,在 MATLAB 上用 C++ 进行这样的计算到底有什么好处(如果有的话)?考虑 MATLAB 中可用的所有函数/工具箱
1.我可以在 MATLAB 中用一行代码完成在 C++ 中可能需要几十个的事情(我知道的老经典论点)
2.例如,我不必实现任何 ODE 求解器(如 RK45)。我需要的所有这些东西都已经过有效的测试和实现,所以我可以少做一件事来编码/调试/担心。
3.插值程序也是如此,2D-3D插值变得非常混乱,在MATLAB中超级超级简单
4. 可视化也是如此。一旦我有了数据,就很容易看。
5.其中很大一部分可以向量化,因此我认为 MATLAB 代码会非常高效。没有太多的循环或任何东西。
6.我只需要小规模的共享内存并行化(在 C++ 中我会使用 OpenMP),并且 MATLAB 已经有一个很好的易于使用的并行工具箱。
7.MATLAB 脚本可以从命令行运行,并且我们的本地超级计算机已经安装了它(具有足够多的许可证),所以我实际上可以在我们的超级计算机上运行我的 MATLAB 脚本。只需调用多个实例,如有必要,每个实例都有 6-8 个线程。
那么我应该使用 C++ 而不是 MATLAB 有什么真正的理由吗?我将是唯一一个开发,然后是唯一一个使用它的人。我肯定会在接下来的一两年内使用它,之后我还不知道。所有“真正的”程序员都告诉我,所有“真正的”编程都应该用“真正的”编程语言(即 FORTRAN 或 C)来完成。但是今天,至少对于数学/科学计算问题,它似乎非常陈旧和过时。有没有我没有考虑过的真正原因,还是只是历史上的非理性偏见?