编程Fortran科学计算计算化学计算物理学
面向对象编程为什么没有在科学计算领域获得普及?
问题描述
像计算化学,材料模拟领域的gaussian,gamess,vasp,castep这些流行的计算软件毫无例外的面向过程。
像分子动力学领域的gromacs,lammps用c++,但没有见到他们着重宣传oop的概念。
科学领域计算也是可以抽想成类和对象的概念啊。
像分子动力学领域的gromacs,lammps用c++,但没有见到他们着重宣传oop的概念。
科学领域计算也是可以抽想成类和对象的概念啊。
謝邀~~
我用過五套領域內的程序:
- 兩套面向對象的,其中一套是我們自己寫的。抽象程度很高,用起來改起來都很爽。
- 兩套面向過程的,其中之一是一套很老的 C 程序,另一套是一個面向對象不怎麼完整的 c++ + cuda, 姑且算面向過程了。抽象程度很高,用起來改起來都很爽。
- 一套 Scheme 寫的函數式的,抽象程度很高,用起來改起來都很爽。
結論:
- 至少在我的領域內,面向對象應該算是普及了。
- 只要寫得好,主流範式都可以寫出高效易用且擴展性強的程序。
- 兩套程序給你選,一套面向過程的 4k 核並行無壓力,一套面向對象的 200 核性能就開始掉,難道你會選後者?
评论 4
一套面向過程的 4k 核並行無壓力,一套面向對象的 200 核性能就開始掉,難道你會選後者?
面向对象写出来的代码可能有性能问题,你还会选面向对象的吗?
性能不够不是面向对象的问题,是算法和数据结构的问题。