最適合做科學計算的程式語言分別有哪些?

每日一發小視頻


做科學計算,可維護性?不重要!健碩性?不重要!可擴展性?不重要!可重用性?不重要!做軟件編程,可維護性?很重要!健碩行?很重要!可擴展性?很重要!可重用性?很重要!

科學計算編程其實比較關注準確性以及執行效率

在軟件工程編程領域,尤其是企業級開發領域,通常要求代碼是方便維護的,代碼健壯性要好,可重用性要高,可擴展性要好,而且迭代起來要方便。畢竟工業級的系統必須考慮到需求變動的問題,在傳統軟件開發領域還不算突出,但是尤其是到了互聯網領域,互聯網需求變化快,C端用戶永遠是最難搞定的,需求變動極大,那麼上述條件就顯得非常重要。


做科學計算的程序是給自己人用的,但是軟件編程的基本上都是給用戶用的,不一樣這一點上,用戶群體完全不同。

做科學計算基本上沒有所謂的全新的項目,甚至可以說都沒必要強調項目,做科學計算基本上很少有所謂的生命週期的概念,你基本上不用考慮所謂的版本迭代的問題。項目開始完成就沒了,下個項目可能是完全不想幹的,但是解決問題的方法都差不多,但是軟件編程就不一樣,業務變化多端,迭代非常常見。


科學計算編程,往往你一個人或者極少數人玩,但是軟件編程不一樣,可能很多人要協作,以後還要不同的人來迭代,很多人會重構、重寫你的代碼,很多人會review你的代碼,很多時候效率什麼的都忽略了,畢竟硬件資源豐富,犧牲掉效率怕什麼!關鍵是別人要好用你的代碼。但是科學計算無所謂了,基本上不會有人會review你的代碼。軟件編程文檔、測試、UI等等都還是蠻重要的。

做科學計算編程,最重要的是準確性、執行效率。為了方便數學編程,能不能方便的構造數組,有沒有好的設計決策就比較重要了。


FORTRAN語言是Formula Translation的縮寫,中文意為“公式翻譯”,幾乎是專門為那些能夠用數學公式表達的問題而設計的,其數值計算的功能非常強。Fortran的語法規則極其嚴格,這用在科學計算領域最適合不過了。

Fortran可以直接用數組、複數進行運算,而用其他語言比如C/C++,你則要至少進行兩次循環,或者要調用的函數形式參數有好幾個。C++在處理很多矩陣類問題的時候也比較痛苦,而這也是Fortran的強項。相對於Mathematica、python和Matlab這樣的高級語言,Fortran效率更高,並且在並行計算領域,Fortran還是絕對的王者。

因此目前在科學計算變成領域,Fortran是目前使用最多的編程語言。


EmacserVimer


就科學計算而言fortran使用的領域最廣泛,科學計算主要考慮兩個因素準確性和執行效率,這點和企業級的編程的側重點不太一樣,企業級講究的功能體驗以及系統程序的穩定性,企業級對於算法的追求沒有科學計算那麼強烈,畢竟不是每個功能需求都用得上算法,而且在實際應用過程中C語言已經是公認的效率比較高的編程語言了,但相對科學計算而言就專業性而言還是fortran相對更加高效,簡單的矩陣操作直接在底層就封裝i起來了,但是C語言需要調用多次的函數才能搞定。

在科學計算領域現在編程語言裡面的python也開始涉足這塊,但是應用範圍比較有限,只是做數據報表統計方面有些優勢,在性能還是差距不少,術業有專攻,在效率上差異不是一點兩點,在快速製作報表以及粗略的數據統計方面還是有著獨特的優勢。

現在的科學計算慢慢向大型化發展,已經在某些地方向c++方向遷移了,畢竟現在的硬件配置以及工程量越來越巨大,之前簡單的單片機編程1,2個人就能搞定一件事,轉向嵌入式編程很多都需要團隊作戰,企業級的編程語言對於模塊化分工更加專業,現在都在各自融合各自的優點,互相選擇優勢點進行消化吸收。

當然在科學計算的編程語言還有MATLAB等等都有各自適合場所,沒有最好的,合適的就是最好的。

希望能幫到你。


大學生編程指南


Delphi其實是一個比較不錯的選擇。

原因在於科研人員一般要求語法簡單,運行效率足夠高,單個人員可以搞定相當的工作,也就是說開發效率高。


Seiswin


簡單高效,科學計算類庫多!沒什麼學習成本。


軟件編程指南


ORTRAN 是最好的科學計算語言。專門為科學計算設計的。Fortran 90 內置的操作數組的命令可以讓你簡單直接的完成別的語言需要多次循環判斷的任務。 Fortran + IMSL數學庫+ Unix服務器,效率最高,計算速度最快。


塞外暮雪


我所知道的是,mathematic,Matlab,cTex。都是科學計算、符號演算、公式推導以及專業文章編寫,屬於專業人士用的。

至於python,覺得不太可能,因為沒那麼大的專業庫做支撐。


分享到:


相關文章: