解讀軟體2 0思想框架 把握技術發展趨勢

2021-04-13 11:25:02 字數 1938 閱讀 2829

軟體

開發與人類做過的任何其他工作都不一樣。其他的工作都是思維為工具,以客觀世界為目標,而軟體卻要求人類以計算機為工具來**我們自己的思維。一方面,人們對這樣的事情還很缺乏經驗,另一方面,軟體的規模越來越大,應用越來越廣,在現代社會中扮演的角色越來越重要,因此,我們就必須不斷地加深對軟體的認識,並革新軟體開發的思想和實踐。近五十年來,軟體技術的革新每天都在進行,然而,目前的技術發展卻呈現出前所未有的局面。

自2023年至今,軟體技術各個領域中的演化、進步和革新越來越頻繁,越來越激烈。這些新技術、新方法每一項單獨去看都意義重大,都是對過去50年軟體開發傳統的變革甚至革命。例如,在軟體設計領域,uml力圖成為表達軟體設計的統一語言,而更高階的軟體建模工具如mda、dsl等技術也在積極進展當中,這將根本上改變人們表達軟體設計的方式;與之相對,xml正在成為縱跨資料層、邏輯層和通訊層的統一資料模型,根本上改變人們表達資料的方式;使用者介面技術進入到新時期,大量的三維動畫效果的運用使得使用者體驗達到之前難以想象的水平,而ria的出現則綜合了瀏覽器與普通客戶端應用程式的最佳特性,找到了人們長期以來夢寐以求的平衡點;各主流語言都在積極加強自身的動態性,從而使資料與**之間的界限變得越來越模糊;移動裝置和無線網路技術的發展將計算能力滿布在地球的各個角落,使得分布式計算成為常態;而多核cpu的主流化也給傳統的序列化程式設計時代畫上了句號,其影響之巨大可謂數十年一遇。

web正在成為唯一真正的統一軟體平台,這有可能一舉結束長達數十年的平台割據**各自為站的局面;而soa的目標在於調整業務與it的關係,承諾讓it與業務齊合,實現靈活應變的業務,這更是企業it領域裡的乙個根本性變革;在基礎計算環境領域,多核與超大規模伺服器集群的出現,使得對於平行計算的要求變得空前迫切,從而也直接地將函式式程式語言從實驗室推向前台,並且進而要求硬體和網路基礎設施的重大變革。這麼多重大的技術變革竟然在幾乎同時發生,自2023年代以來還是第一次。

然而更有趣的是,稍微深入地研究之後我們發現,所有這些看上去分散的、孤立的技術變革,事實上確實互相密切關聯著。web正在成為統一的、面向服務的分布式計算平台,從而為在企業內和企業間實施soa建立了基礎設施。資料模型向xml的統一,不但將web更好地整合起來,而且為soa提供了標準環境,更使不同平台、不同裝置的廣泛分布式計算協同成為可能。web和soa對於開發效率、靈活性和軟體質量的訴求,恰好由新的軟體過程方法和語言工具來滿足。在以網際網路為平台的面向服務計算的年代,對單個計算節點的計算能力、規模和節能提出了前所未有的要求,而這一點又由多核cpu、大規模伺服器集群和新的並行程式語言的發展予以滿足。總而言之,所有這一切技術變革,過去在各個領域裡遵照自己的規律發展著,穿越幾十年的時間,卻恰好在今天這個時候匯合到一起,彼此互相支援,相互彌補,呈現前所未有的和諧與一致。為什麼竟然會這麼巧?難道僅僅是巧合嗎?或者在這些單獨的分散的技術進步背後,有乙個尺度更大的,更巨集偉的變革?

我們相信是後者,並且將這個更大尺度的技術變革命名為「軟體2.0」。我們確信,整體大於部分之和,「軟體2.0」是正在發生的技術革命,其意義遠遠大於任何乙個單項的新技術和新方法。從其目的來看,是要以前所未有的力度削除由於技術**、歷史包袱以及工具和方法的落後,給人們開發和使用軟體所帶來的不必要的麻煩,從而調整人與軟體的關係,重申人在it時代的主體性地位,讓軟體更好的為人服務,為商業服務。從長遠來看,「軟體2.0」將把人類的資訊化帶上乙個全新的境界,從而強烈地塑造人類的文明程序。即使從短期來看,「軟體2.0」為理解當今軟體新技術和新方法提供了乙個整體的思想框架,不但能夠幫助我們理解各個領域內的技術進步,而且能夠幫助我們洞悉這些新技術、新方法之間的內在聯絡,從而把握技術發展的趨勢和走向。

「軟體2.0」是乙個歷史機遇。csdn和《程式設計師》雜誌將堅定而積極地完善和宣傳「軟體2.0」的概念和思想,並將在2023年11月舉辦的「軟體開發2.0技術大會」上,邀請中外技術名流高人,具體而微地闡釋「軟體2.0」的各個方面。我們也呼籲中國軟體開發社群中的有識之士共同努力,把握住這個機遇,,為個人、為企業、進而為整個中國的軟體產業帶來新的居民。

Struts 2 0 解讀筆記

凱文 公尺特尼克今年2月初採用安裝了winxp版本的筆記本準備黑掉某網域名稱為cn的中國 誰知剛登陸該站點時就被安裝了50個難以解除安裝的外掛程式,導致計算機網路癱瘓,導致攻擊失敗。沒辦法只能格式化硬碟,重灌系統!經過了這次教訓之後,凱文 公尺特尼克事先安裝了多種防火牆及防毒軟體,一切準備就緒之後,...

Struts 2 0 解讀筆記

1 在資料庫層做設計,充分利用空間換時間的方法,使用資料冗餘。精心優化加入索引 2 開啟資料庫cache,並根據試執行結果,除錯到最佳引數 3 php adodb使用cache快取sql語句的結果 4 使用pear的cache快取系統內資料 5 使用鉤子函式將前台html頁面快取成靜態檔案存在硬碟上...

web2 0程式設計思想

1 在你開始之前,先定乙個簡單的目標。無論你是乙個web 2.0應用的建立者還是使用者,請清晰的構思你的目標。就像 我需要儲存乙個書籤 或者 我準備幫助人們建立可編輯的 共享的頁面 這樣的目標,讓你保持最基礎的需求。很多web 2.0應用的最初吸引之處就是它的簡單,避免並隱藏了那些多餘的複雜性。站在...