繼上篇《計算機歷史的我的見解》(http://www.javashuo.com/article/p-sbkzziqb-mz.html)這篇,在這裏我想說說軟件,在上篇我也曾提到過,軟件只是爲了積累計算機經驗以便更好地發展計算機而想的策略。在很早的時代,經過電路設計計算機已經具有了一些運算能力,爲了積累計算機經驗也出現了好的辦法,就是計算機語言0和1,由於早期以電路爲主,用0,1表示了引腳是否上電,假若有一個電路輸入時開關的開、開、閉、開那麼就能夠對應0010,輸出燈泡是滅、亮、亮、滅,就也能夠用0110來表示,那麼將這個對應關係存進記憶體,下次用到的時候直接讀記憶體找到結果就行了,不用專門去給這個電路上電等待結果了。這就簡化了計算機,同時也出現了計算機語言,當不少電路用這種方式不斷積累,來設計計算機所能完成的工做時有人發現,不少功能都須要一些特定的步驟,在記憶體中讀取的規則好多都是相同的,因此有人就想簡化達到控制的目的出現了計算機指令,經過一條計算機指令讓計算值去執行這個指令規定的動做獲得結果,在讓其餘的指令去運用上一條指令的結果這樣的方式來完成有一個功能,這就是計算機軟件的起始,下面我會說軟件的發展。html
有了我上面一段最後說的那種思想後,人們又會對那些常常執行的計算機指令進行封裝,再按照必定的語法進行編輯,這就是早期的編程語言,按照這種思想,以及計算機的成熟,軟件的編程語言也變得愈來愈簡潔,不想早起的編程語言,要實現某個功能要寫很長的代碼。這就是如今的編程語言,再說說API吧,API就是封裝了那些有規律的代碼的產物,早期的固然是最底層的,這些API的特色是功能比較細,若是要調用也要用不少代碼來實現本身想要的功能,隨着編程語言的發展示代的API不對吸收着時代的編程的產物及經驗,如今的API已經可以實現有個單獨的功能使得如今的編程語言想要實現某個功能不須要太多的代碼,大多的代碼都是在處理返回的結果。說道軟件的發展還有一個東西不得不說,那就是協議,在計算機經驗不斷積累的過程當中,不一樣的單位或者我的想法都是不一樣的,這樣對發展形成了侷限性,因此就有了協議,讓你們遵照協議所規定的規範,對計算機而言這算是給計算機指定了發展的方向,這也是計算機可以發展這麼快的主要因素。這裏再說句題外話正是有這種協議,要想讓軟件那個領域迅速發展那最好的方法莫過於開源了,讓一羣感興趣的人去創新維護,比本身抱着去發展要快。好了軟件就說這麼多,這就是我對軟件的大體見解,若是不對還請你們指正。編程