當前位置:編程學習大全網 - 編程語言 - 面向對象編程為什麽沒有在科學計算領域獲得普及

面向對象編程為什麽沒有在科學計算領域獲得普及

兩方面原因,其壹在於絕大部分科學計算領域中的算法的是直接以面向過程來描述的,這很顯然,因為算法就是對數據進行處理以得到所需要結果的過程。這壹套邏輯是該領域研究人員所熟悉的,因此就算他們選擇了C/C++來進行編程,也很自然的就采用了面向過程的範式。其二在於科學計算領域的研究人員所受到的編程方面的訓練並不足以使他們足夠強地掌握面向對象的編程方法。當水平不足的時候,使用面向對象的方法寫出來的程序運行效率可能很差,這不滿足科學計算對於效率的高要求。

但是這並不絕對,比如在元胞自動機領域,可能多數程序都是面向對象的,因為該方法的描述與面向對象的方法是十分契合的,也因為這壹領域最近才迅速發展,領域中已經有足夠多的研究人員具備使用C++進行面向對象開發的能力。

此外,尤其需要註意的是,進入新世紀之後,越來越多的人開始采用C/C++甚至最近的Python進行科學計算了,但是這並不表明面向對象在他們的程序架構中占有優勢地位,多數科學計算的C/C++程序仍然是面向過程的,或者本質上是面向過程,只是基於對象在頂層上做了壹些封裝。我註意到題目的標簽中加了Fortran項,我想大家須要將面向過程/面向對象這種編程範式與具體的語言(Fortran/C/ C++/Python)區分出來 。我自己比較熟悉的Python/C++都是支持面向過程/面向對象多種編程範式的。況且Fortran語言的運行效率並不比C/C++高,兩方陣營表現幾乎壹致

最後,就我個人而言,我現在使用得更多的是以泛型編程技術為核心的多種範型並存的編程風格。前述已經給出定義“算法就是對數據進行處理以得到所需要結果的過程”,因此泛型這種將數據類型與操作過程相分離,最大程度上提高代碼復用程度並且基本不損失運行效率的範式,在我看來,十分契合數值計算的需求。但是科學計算領域的研究人員中少有人具備熟練掌握並最大程度上利用該範式的能力。

  • 上一篇:水土資源合理利用案例研究———以張掖地區為例
  • 下一篇:國家認可的bim證書有哪些
  • copyright 2024編程學習大全網