编程Fortran科学计算计算化学计算物理学

面向对象编程为什么没有在科学计算领域获得普及?

问题描述

像计算化学,材料模拟领域的gaussian,gamess,vasp,castep这些流行的计算软件毫无例外的面向过程。

像分子动力学领域的gromacs,lammps用c++,但没有见到他们着重宣传oop的概念。

科学领域计算也是可以抽想成类和对象的概念啊。
地铁风
不会撸程序的设计狮不是好科研狗

謝邀~~

我用過五套領域內的程序:

  • 兩套面向對象的,其中一套是我們自己寫的。抽象程度很高,用起來改起來都很爽。
  • 兩套面向過程的,其中之一是一套很老的 C 程序,另一套是一個面向對象不怎麼完整的 c++ + cuda, 姑且算面向過程了。抽象程度很高,用起來改起來都很爽。
  • 一套 Scheme 寫的函數式的,抽象程度很高,用起來改起來都很爽。

結論:

  • 至少在我的領域內,面向對象應該算是普及了。
  • 只要寫得好,主流範式都可以寫出高效易用且擴展性強的程序。
  • 兩套程序給你選,一套面向過程的 4k 核並行無壓力,一套面向對象的 200 核性能就開始掉,難道你會選後者?
15 赞同 2 感谢 5 收藏 4 条已备份评论 发布于 2015-03-14 知乎原页 ↗

评论 4

最后一段话没听懂,方便解释吗?谢谢
一套面向過程的 4k 核並行無壓力,一套面向對象的 200 核性能就開始掉,難道你會選後者?
0 赞
乎治回复 子寒

面向对象写出来的代码可能有性能问题,你还会选面向对象的吗?

0 赞
朱辉回复 乎治

性能不够不是面向对象的问题,是算法和数据结构的问题。

0 赞
您的意思是,通常面向对象的程序可扩展性不好吗??为什么啊
0 赞