#每週讀書挑戰# 第1期 黑客與畫家

cage發表於2020-03-11

“效率低下的軟體並不等於很爛的軟體" 這句話如何理解?作者的程式設計思維是?

這裡的軟體,準確的是程式語言. 作者眼中的"效率低下"是指在程式語言執行的速度效率"低下",.程式語言很時候是用各種效能指數去衡量價值,特別是執行的速度,佔用系統資源的大小,而忽略使用者的便捷和效率.作者認為提升開發工作量效率與帶來開發便利性更加重要.程式設計是面向人而不是面向機器.

作者程式設計思維:在程式執行效能之外,更加看重開發的效率與便利性,程式碼簡潔,乾淨,儘可能的"小".將語言的語義與實現分離開來,對於實現方式少做限制,使得程式獲取更大的靈活性.

提綱

參考了雲南大學張璇博士整理的資料《電腦科學技術史》進行總結了,同時再次拜讀了松本行弘的《程式碼的未來》裡面的'程式語言的世界'篇章. 書中對於未來程式語言發展特別提到“抽象化” : 提供一個抽象的概念,使用者只需要關注使用方式運用,而不需要了解內部詳細情況的知識和原理, 也被稱為 “黑箱化” 。其中資料抽象化與物件導向是相近相仿的.而很多程式語言之所以沒有流行起來或者消亡掉,主要就是不夠抽象.

Matz認為程式語言的進化動機,是通過這些工具和語言所得到的結果(解決方案)更簡潔地表達出來.

同時Matz預測未來20年隨著雲技術的發展,未來程式語言在分佈處理(多臺計算機協作處理)和並行處理(多個 CPU 協作處理)功能上進行強化,使得開發者不需要費工夫便能寫出完善的功能。

在這兩篇文章中,兩位老師都提到多層形式/抽象化,在應用開發者層面上,應該更加的靈活簡單,更加符合自然語言.編譯器層更加專注解決處理系統複雜性的工作,同時為上層提供profiler指導程式設計效率.

程式語言的進化史,是從人說機器語,到機器聽得人說的話的發展進化,這樣入門的門檻越來越低,但是目前對日益複雜的需求功能,將軟體開發分成多層化,抽象化,每個層次關注自身,同時又配套合併工作,從而提升軟體開發的效率.

心得:

如果一個程式設計師想獲取長期的發展,那麼他不應該停留在迷戀語言語義層面,他應該更加了解編譯器內部的工作原理,學會使用profiler去優化程式.更加努力學習語言編譯器調參優化. 這才是程式設計師進化之路.

程式語言進化史

相關文章