楊爽
摘 要:計算機已經成為一種日常生活不可缺少的工具,在人們的生產生活的各個領域發揮越來越重要的作用。計算機通過其應用軟件為人們提供服務,計算機軟件的發展很大程度上擴大了計算機的應用。現在社會需要的軟件功能也越來越大,怎么樣開發功能強大的軟件,怎么樣降低軟件的開發成本是一個比較重要的問題,作者對軟件的現狀和趨勢做了一些研究,繼而對計算機軟件的發展趨勢提出了自己的一些看法。
關鍵詞:軟件;模塊;發展趨勢;看法
現在計算機軟件高度集成,開發出來的軟件規模越來越大。當然可以幫助人們解決更為困難的問題和工作。按理說,復雜的工作需要復雜的工作量,那么對于一個程序員來說要求是越來越高的,可是現實是怎么樣的呢,其實現實是程序員的工作越來越簡單化!為什么出現這么一種復雜的問題能夠更容易的去解決的現象呢?
其根本在于計算機軟件的高度發展,它的發展使得現在開發程序可以模塊化,說白了就是現在你開發一個軟件不再需要從底層做起,你要做的就像拼積木。拼積木是小孩的游戲,那么現在社會的程序就是成人化的游戲而已。比如一個要解決的現實問題我們可以想象為一個要搭建的巨大建筑,那么在這個建筑的建造工程中,有人給你提供了建筑這個建筑物所需要的模塊,你只需要根據自己的要求拼接便可以。你并不需要開發很細節性的應用實現,這樣你便可以減輕自己的開發難度。在減輕你自己工作量的同時,現實中很多人也給你提供了一些很實用的框架結構,這樣你甚至可以不用思考如何搭建你的系統架構,你要做的僅僅是根據需要選擇一種好的架構方式然后把自己需要的模塊填充進去就可以了。如此簡單的說出現在程序的本質,很多程序員覺得自己是不是太沒有價值了,其實也不然,因為現在社會的問題過于龐大你也不可能一個人完成一個系統需要的所有工作。所以程序員的價值就是我在利用別人的工作成果的同時也在給別人提供一個可用的模塊。這應該是現在軟件發展的方向,每個人也應該為此而努力。
那么計算機的軟件是從什么時候開始發展成這樣一種模式的呢,說到計算機的軟件不能不說起計算機的操作系統OS,在計算機發展之初,計算機所做的各種指令只能是機器語言,那么機器語言都是01代碼。這樣一個現代程序的機器代碼如果讓人看明白,其可能性幾乎為零。也就是說一個電腦裸機,提供給人們的是機器接口,人們使用它們必須編寫出機器能識別的代碼。雖然現在計算機業是要實現這個目的,但是現在計算機程序面向的卻是計算機的操作系統。操作系統對計算機機器做了抽象封裝,讓人們覺得安裝了操作系統的計算機是一臺比較人性化的,方便和人進行交流的機器。那么這個封裝的功能促進了計算機軟件的飛速發展,并使人們發展越來越強大的軟件成為可能。比如你開發一個計算機應用系統,這個系統的登錄模塊你可以不用自己去做,別人做好了這個模塊并提供相應的接口,你便可以使用這個模塊對輸入的數據進行驗證了,輸入模塊根據你輸入的情況給出對應的結果。但是這個驗證模塊是不是就自己實現了對數據庫的訪問了嗎?不一定,它同樣也可以使調用別人的模塊去實現,其實我們在實際中開發用的數據庫也給我們提供了一個定義良好的接口只要傳入相應的SQL語句它便給你對應的結果。從這個角度講,整個數據庫系統也應該是你自己的軟件的構成模塊,是不是應該很有成就感呢,因為如果你調用了SQLServer數據庫不是相當于MicroSoft在為你打工嗎?
上面簡單討論了計算機底層上的封裝,即os對硬件的封裝,如此便開始了一個后續無窮的封裝鏈。從上面的內容可以看出計算機軟件封裝的一個好處就是實現了計算機軟件的快速開發,提高了軟件的開發速度。另一方面就是計算機的模塊化運行可以在很大程度上減輕程序員的工作量,當然此處不是指代碼量的多少,而是指相關知識的提取,因為一旦了解了一門課程的相關知識以后代碼的工作便不會是過于復雜的過程。比如獨立寫一個計算機間通訊的程序,那么最大的工作量首先是你要弄明白計算機之間通信的各種協議,然后開始寫代碼。那么這個工作的很大一部分便是你先去查看計算機網絡相關知識,但是現實中你開發的時候卻有很多部件(或許不很準確,在面向對象語言中它叫類)已經是別人寫好的可以供您使用,以此你便不需要去查看大量的枯燥的理論知識了,直接根據別人的接口便很快寫出一個很有成就感的應用系統了。不是嗎,當別人在用QQ聊的不亦樂乎的同時,你卻可以讓你的一些朋友使用你自己開發的一個聊天工具,這可能比聊天更不亦樂乎。但是切記是現代軟件的發展模式幫了你很大的忙。如果沒有他們我們用的聊天工具可能沒有那么強大,如果沒有他們我們可能很難再計算機軟件方面有所成就。
然而我們在使用別的大公司生產的各種模塊的同時,卻沒有想著自己也應該為軟件的發展做出點什么,回歸我們上面的論題,我們做出來的軟件模塊如果也能為別人所使用的話那么這將能極大的縮短別人的開發時間,前提是都作出健康的軟件來,所以應該有一種專門的第三方機構能站出來,每個程序員或者公司在自己的模塊構造完成之后提交給這個第三方,第三方綜合評鑒了該模塊后提供給別人下載使用,這樣的機構或許應該以現在的各種開源機構為基礎而發展起來,如此在不遠的將來程序員將不再去搭建應用軟件,只負責功能模塊的開發,而把功能模塊的搭建交給公司的內部業務精英去完成,企業的業務精英根據自己的要求去這個第三方平臺或者付費或者免費的去下載所需要的模塊,如此應該能極大的促進軟件的發展和降低系統的開發成本及提高開發速度。
如果這個第三方平臺搭建成功以后可以給別人提供模塊的方式也是多種多樣的, 除了傳統的程序模塊下載之外還可以使用WebService。前者可能搭建的系統還會占用一定的本地資源,而如果完全采用WebService之后就有可能是的一個軟件所占用的本地資源為最小。若干年后人們發布的軟件將不再是傳統意義上的軟件,或者僅僅是一個布局或者部署文件,也或者個這個部署功能也有了專門的提供機構了完成,你只需要提供自己的部署編號便可以得到你需要的軟件系統。