回覆列表
-
1 # 青丘涼
-
2 # codechurch
對於rust這門程式語言,我向來在潛意識裡對其產生嫌惡。為了改變這種偏見,我學習了它,還是感到嫌惡。
從語言思想上說,所有權和生命期是其精髓。但以C語言來說,所有權不過是一種使用指標的方式,rust的確可以提供所有權的檢查,C無法做到。這的確是rust方便的地方。但其帶來的不便是毀滅性的,對於複雜機制的實現,我可以斷言:rust無法作為第一實現的語言。
為何這樣說?
很多人都活在一個軟體工業的謊言裡,他們認為軟體工程可以嚴格切分為設計、實現和測試三個階段。但是,只有不具備創新價值的專案才可以這樣劃分。如果有未知的新結構出現,則獨立的設計就絕不可能成功。
但這與rust有什麼關係呢?
我想說的是,rust鼓勵你做所謂深思熟慮的設計,它不善於結構調整,在其他語言裡簡單的調整,時常在rust裡並不簡單。我們會發現,一個設計上的隱含錯誤往往會在敲程式碼中發現,而僅將物件做一個儲存類別的改變,往往對rust而言卻是非常昂貴的,它可能需要改變一連串結構及相關的函式的定義。
程式語言,實際上是設計工具,而不僅僅是實現的手段。
另:本人接受的是程式碼即設計的軟體工程思想,其詳細的表述可由網際網路搜尋Code as design。
rust是一門新語言,也是一門很棒的語言,雖然生態還不夠完善,但是在迅速發展。基金會由華為,亞馬遜雲,谷歌,微軟,mozilla五個創始成員建立。由此可見,這個語言至少有國際巨頭支援,發展應該會很迅速。這幾個公司中有華為我認為可能令人比較意外,畢竟中國的基礎軟體比較差,在程式語言這一塊同樣如此,但是華為擔任創始成員,我認為這也能體現中國的軟體生態也開始向下紮根,加大了對基礎軟體理論的研究。期待著中國能出現世界流行的一門甚至於多門程式語言。