? ? 軟件:按照特定順序組織的計算機指令的集合
? ? 這個是百度的解釋曹锨,可是,對我們一般雖然會使用軟件亩冬,但是不知道軟件如何生產(chǎn)的人來說艘希,看了這個解釋依然云里霧里硼身。這周看到一個介紹軟件的文章的系列硅急,談談自己的想法,同時推薦你也讀一下佳遂。
? ? ?黑格爾說過:存在就是合理营袜。任何東西的存在都是有價值的,軟件的出現(xiàn)丑罪,發(fā)展荚板,豐富到最后成為一個強大的產(chǎn)業(yè)凤壁,必然有催生其出現(xiàn)的強大需求。那軟件到底是做什么的呢跪另?
? ? ?想想拧抖,如果如果老板安排你一份工作,用打印機打從1順序打印到10000000000免绿。
你有兩種方法可供選擇:
1.自己在打印機上輸入指令唧席,從頭打到尾
2.寫個小程序,程序直接幫你打印嘲驾。
? ? ?第一種方法淌哟,需要你要整整一天時間坐在打印機旁,而且極有可能出錯辽故。第二種方法徒仓,你只需要泡一杯咖啡的時間。
? ? ?軟件只需要電能誊垢,完全不需要休息掉弛。它們默默地幫助人類處理大量的勞動,不眠不休喂走,沒有怨言狰晚。隨著硬件越來越便宜,軟件能替代的人類勞動越來越多缴啡,最后壁晒,用軟件處理工作的單個人的能力,也變得越來越強大业栅。因此秒咐,軟件作為生產(chǎn)工具出現(xiàn)的歷史,是一部人類生產(chǎn)效率巨大提升的歷史碘裕。
軟件的目的:
降低成本
那軟件如何做到的呢:
軟件通過模擬人携取,來達到幫人類工作的目的
? ? ?軟件是跑在硬件上的程序,用來控制硬件的行為帮孔。而它們?nèi)绾慰刂朴布男袨槟乩鬃蹋€是用打印這份工作為例子,人類打印文兢,是在打印機上一個字符一個字符地打印晤斩。軟件也是,它們模擬人類大腦的工作方式(馮諾依曼結構--存儲器姆坚、控制器澳泵、運算器、輸入輸出)兼呵,按照要求打印所需的文件兔辅。不過腊敲,電腦和人腦之間的巨大不同在于,人類的大腦天生就不太善于處理重復性的工作维苔。軟件不同碰辅,軟件模擬人腦的計算方式,會按照你的要求介时,一字不差的去執(zhí)行乎赴。軟件處理重復工作的速度是人腦的很多倍,因為除了計算潮尝,它不需要額外的思考榕吼,只知道機械地重復。而人腦呢勉失,一旦重復羹蚣,就可能出錯。
? ? ?那軟件如何出現(xiàn)的呢乱凿?這就離不開一群喜歡通過創(chuàng)造來實現(xiàn)自身存在價值的聰明人--程序員顽素。
軟件的出現(xiàn):
程序員用程序來解決自己不愿去意重復的工作
程序員用軟件來解決別人的工作
軟件用來模擬人和社會,為人類提供成本更低和更加高效的生活
? ? 軟件最開始是用來解決一些簡單的重復性問題的徒蟆,隨著軟件功能越來越強大胁出,程序員發(fā)現(xiàn),軟件不僅僅可以解決自己的問題段审,而且可以幫助他人解決很多問題全蝶。再然后,軟件漸漸能夠為人類設備提供巨大價值了寺枉,因為它能解決的很多人的共有問題了抑淫。到這個時候,軟件代碼的規(guī)模本身也變得無比強大和復雜姥闪,以致于單個程序員已經(jīng)無法獨立完成整個軟件的開發(fā)工作始苇,軟件的生產(chǎn)開始有了分工,也就是架構的出現(xiàn):
架構出現(xiàn)的原因:
拆分責任
降低單個程序員的工作量
? ? ? ?由上面的討論筐喳,我們介紹了軟件的出現(xiàn)催式、發(fā)展、到最終變得復雜避归。就像生物的進化荣月,軟件的生產(chǎn)最開始由單個程序員獨立編寫的小程序,到最后出現(xiàn)微軟和蘋果這些IT巨頭的操作系統(tǒng)槐脏,是一個由簡到繁的演進過程喉童。這個過程離不開如何把現(xiàn)實生活中的問題轉變的電腦可以理解的編程語言,如何軟件的功能如何拆分顿天,軟件架構解決了一些什么樣的具體需求等一系列問題堂氯。后面隨著學習的深入我也會進一步介紹。
文章想法的出處牌废,推薦你也看看:http://www.infoq.com/cn/talk-arch