軟體領域將向何處發展?
這個問題可能是所有IT人都在想的問題,誰掌握了這個問題的要點,誰能先知先覺,那麼就能引領這個行業。但是很多情況下,我們無法預測未來,只能在埋頭苦幹的過程中迷失方向。
最常見的預測未來的方式,就是分析歷史,以史為鑑,以史為尺來度量可能的未來。
軟體領域也有一段不長也不短的歷史。說她不長,是因為只有了了的幾十年,說他不短,是因為在這短短的幾十年,卻似乎經理了漫長的幾個世紀一樣,曲折離奇、英雄輩出。所以有很多很好的看點供我們研究,供我們學習。也能夠為我們提供分析未來的依據。
軟體行業從整體來說,可分為三個大的朝代。第一個朝代是上世紀四十年代到七十年代,這個年代是軟體的孕育期,多數時候軟體不能單獨成為體系,只是作為硬體的附屬物。第二個朝代是上世紀七十年代末到九十年代末,這個朝代,軟體翻身做了主人,能夠“脫離”硬體獨成體系。第三個朝代就是二十一世紀初到如今,這個時期硬體、軟體已逐漸與網路不可分離,成為了網路的附屬物,整個時代也變成了網路時代。
我們的這次旅行,主要是為了找到軟體及網路的發展,所以不考慮遠古的硬體時代,只從第二個時代開始分析。看看能否找到通向未來的康莊大道。
盤古開天
上個世紀80年代,微軟帶著讓所有個人使用者擁有一臺個人電腦並且這些電腦上都安裝了微軟的作業系統的夢想,發明了DOS和Windows,因此微軟也從一個小公司一躍成為了美國領先的軟體公司。這是一個神話,從來沒有人認為一段0和1組成的程式碼,竟然能夠成就一個財富的奇蹟。
90年代,隨著Windows3.X的釋出,個人計算機開始進入圖形化的時代。人機的互動更加友好,使微軟更上一層樓,成為全球領先的軟體公司。
隨之整個計算機界展開了一段新的歷史,微軟的作用不可磨滅。這段將利用程式碼來盈利的歷史,可比喻為個人軟體時代的“盤古開天”。
炎黃之戰
但是巨人在開天闢地之後,或許被突如其來的榮譽衝擊了一下,有些打盹。在不知不覺中,還沒有完全走向個人化的電腦時代,又被一個新的朝代——網路時代衝擊了。
94年出現了第一款瀏覽器軟體——Netscape。全新的計算機操作,拉近了人與人之間的關係,讓更多的資訊可以快速傳遞。於是這個瀏覽器開始了風光的歷程。
而微軟由於Windows 95等版本的問題,未及時發現這個小小的瀏覽器會有多大的市場(就像是當年IBM多麼不看重微軟小小的DOS一樣),會給軟體帶來多大的衝擊。因此並未在意Netscape的發展。
可是,網路的發展是不以微軟的意志為轉移的,爆炸式的使用者增長,使Netscape迅速成為眾人的焦點,佔據了幾乎全部的瀏覽器市場。任何一個產品,不管他是否真的賺錢,只要他擁有大量的使用者,那麼就擁有了真正的財富。
此時的微軟才發現,可能他錯了。於是開始研發自己的瀏覽器——Internet Explorer。由於倉促上線,最初版本的IE漏洞百出,操作不靈活,無法與Netscape競爭。後來微軟加大投入,並在很短的時間內推出了IE2.0、3.0、4.0等版本,這些版本作了大量的改動,並在97年將IE與Windows95捆綁起來,藉著Windows的市場迅速讓IE佔據了瀏覽器主動權。
因此引發的很多壟斷及法律問題在這裡不進行討論,我們重點關注瀏覽器的發展。
此後因為這個捆綁舉動,使得Netscape每況愈下,並逐步的退出了歷史舞臺。這就是第一次瀏覽器戰爭,最終是以微軟的勝利而告終。
這段戰爭,預示著網路時代黎明前的黑暗,好比是華夏文明起源之時炎帝和黃帝之間的爭鬥,奠定了後來文明的誕生。毫無疑問,微軟和Netscape的爭鬥,對於網路時代來說也有如此的功效。
戰國紛爭
那麼這場一個瀏覽器的爭鬥與軟體發展有什麼關係呢?
別急,這個需要慢慢來講。
在微軟為瀏覽器大戰的同時,另一個網路時代的諸侯Sun在95年推出了Java,並藉此開始逐漸顯現出他對網路時代開發的影響力。軟體開發方式開始出現B/S與C/S的紛爭。並越來越向B/S方向靠攏。正是因為有了瀏覽器的這種形式,才出現了軟體開發模式從C/S向B/S的轉變。從實質上來說,這兩種模式沒有真正的區別,當C/S程式過度的整合化之後,將控制元件及各項功能都指令碼化之後,其實就變成了B/S程式。只不過這個整合的過程交給了瀏覽器來完成,因此才無需安裝客戶端程式了。
而微軟是靠著強大的作業系統(這是世界上最大的C/S系統)發家的,執著於C/S技術的微軟不相信事態轉變的會如此之快。一個小小的Java怎能對微軟形成威脅?
所以在進行瀏覽器大戰時,微軟並未在開發模式上投入太多,去與Java抗衡。但是當他發現單純佔領瀏覽器市場也無法應對網路時代變化的時候,他做了又一個決定。
推出了另外一個重要的概念——.NET——他就是想通過該計劃與Sun相抗爭,並且想借此建立新的網際網路秩序。
此時Sun的Java在開發領域形成了一道新的風景線——軟體開發已經逐步變成了B/S模式,開發人員無需瞭解作業系統只需要知道指令碼和Java語言體系就可以開發軟體。這種軟體開發方式是前所未有的,而此時微軟還正在利用VB和VC等客戶端技術開發軟體,因此這也在挑戰微軟的權威。
.NET戰略似乎是Java的翻版,也具有虛擬機器,也具有與Java語法結構類似的C#語言。雖然這次是看起來模仿的舉動,但是投入卻是十分大的,因為Java是免費的,微軟的這套新的模式也不能收費太高。而且對於開發模式的創新,是需要大量的投入,因此微軟大量的人員又繼而投入.NET戰略。
可能是因為.NET忙於與Sun抗爭,所以IE瀏覽器在6.0版本之後,很長時間內沒有大的變動,整個微軟的網際網路時代進入了冰河時期。看來微軟這個巨人,也不能多線同時作戰,也是顧此失彼。
這個時期,是2001年到2006年底,IE接近6年沒有推出新的版本,同時Windows也有差不多6年沒有新版本。這種情況,預示著暴風雨就要來臨。
軟體產品不能持續的釋出新版本,就代表他的生命力正在減弱。
微軟沒有發展,但是Sun沒有停歇,Java繼續保持強勁的勢頭,逐步統治了Web應用的市場。大量的Java Web應用湧現出來,幾乎同時佔據了所有主流網站的市場。
微軟只有跟在Sun的後面,不斷的更新.NET的版本,從1.0到2.0掙扎了接近5年的時間。
這邊戰火繼續,那邊烽煙又起,Netscape的陰魂不散,與他有千絲萬縷關係的Mozilla基金會,在2003年Netscape解散不久,於2004年11月釋出了一個叫Firefox的新瀏覽器。
她趁著微軟在忙活著與Sun鬥爭的間隙,抓住了IE6.0的缺陷,迅速在瀏覽器市場崛起,佔有率開始逐步攀升。
在瀏覽器市場和開發市場多重壓力下,微軟倉促推出了IE7和Vista作業系統來應對這種現狀。但是為時已晚,隨後的IE版本並沒有挽回局面,作業系統操作不方便執行速度慢,瀏覽器也同時存在這個問題,導致IE的市場佔有率還是在繼續的下降。
在微軟遭受多重壓力的時候,Sun又與很多大鱷聯手,繼續領跑基礎技術,微軟的日子似乎越來越不好過。一波未平一波又起,在微軟通過完善IE打算與Firefox爭鬥的同時,另外一個虎狼之師殺入了戰鬥。那就是谷歌,谷歌在搜尋市場上,的成績讓他有了足夠的能量,他們看準了未來的發展方向。提出了一個很驚人的概念,那就是“瀏覽器作業系統”,該作業系統是以瀏覽器為主題,除此之外別無他物。全部的應用都通過瀏覽器去伺服器獲取,將整個計算機概念小型化。這個概念無疑對微軟是個打擊,因為微軟的主體業務是作業系統,如果谷歌的這個概念成立,那麼將來將沒有了作業系統的位置,那麼微軟將走向毀滅。
微軟、Sun、IBM、谷歌以及後來義軍崛起的開源軟體,形成了諸侯紛爭的局面。可見軟體行業是一個看不見硝煙的戰場,不發展,不改進,就會慢慢的被淘汰。直到現在為止,軟體行業的戰國時代也沒結束,而且還呈現出越來越複雜的局面。
大家都在搶佔軟體行業的唯一一塊地盤——網際網路。而這塊地盤中最容易看到的兩塊肉就是瀏覽器和Web應用,鹿死誰手難見分曉!
百家爭鳴
從“盤古開天”到“戰國紛爭”,可以看到大家圍繞的都是網路時代的兩塊大肉——瀏覽器和Web應用。
瀏覽器對於網路來說,就像作業系統對於計算機一樣的重要,因此他是網路時代諸侯必須爭奪的一塊土地。
而瀏覽器只是個載體,他是展示技術的舞臺,實際的網路技術才是決定將來發展的必然。
那麼什麼技術是瀏覽器的核心呢?首要的就是B/S與C/S的區別。
在軟體發展的遠古時代——上世紀五六十年代,軟體結構都是客戶端/伺服器模式,也就是我們所說的C/S模式。因為那個時期軟體規模很小,網路技術也不發達,所以大多數軟體只要在本地執行,與遠端伺服器做簡單的資料互動就可以了。
隨著軟體的不斷髮展,大型的系統越來越常見,這種C/S模式逐步暴露出了很多弊端,如安裝複雜程度太高、軟體更新複雜、維護部方便等等。隨著時間的推移,這種問題和矛盾愈演愈烈。從瀏覽器的誕生到Java的誕生,改變了這種開發模式,逐步形成了新的模式——B/S模式——瀏覽器/伺服器模式。通過這種形式,將軟體的主體資料和業務規則都放到伺服器上,然後通過一個統一的協議,下發給客戶端的瀏覽器。客戶端上只需要安裝瀏覽器而不再需要安裝其他東西,就可以執行一些程式。
這是Netscape帶給我們的,我們永遠都會記住他。
這次的變革,使得軟體行業的發展走向了另外一個開端。
也就是因為這種技術與微軟的作業系統有著本質的不同,所以微軟在初期才沒有太在乎她,因而落後於她。
第一次瀏覽器大戰結束後,在微軟的冰河時期,Sun、Adobe和各種軟體組織逐步發展出了各種基於B/S的新技術。比如Ajax、Flash、JavaFX。他們都是抓住了B/S的技術特點,創造出的新概念。旨在提高瀏覽器的速度、使用者的互動性以及提高娛樂性等,儘可能的達到在瀏覽器中的操作無限的接近C/S操作,因為C/S程式在某些領域還是優越於B/S程式的,比如使用者互動性、媒體展示等。
這些層出不窮的次生技術,堪稱軟體行業的百家。他們各有優點,各有特長。
Ajax,是想解決B/S中客戶端與伺服器的互動模式,讓使用者感覺操作更加流暢,看起來像是在操作本地的一個軟體。
Flash,專注於媒體,將動畫與程式設計有效的結合起來,逐步佔領了B/S應用的一個獨特領域。現在流行的各種不需要安裝既可以在瀏覽器上執行的網路遊戲,也都出自Flash之手。
JavaFX,則關注協議,想通過更加優化的協議,將各項技術統一起來。實現更復雜的Java系統。
除此之外,還有很多不同的技術都在各個層面上佔據地位,如HTML、指令碼語言等。
而這些技術,微軟都沒有參與,不知道他們是被什麼衝昏了頭腦。
這種百家爭鳴的態勢,使得網際網路從泡沫中走出來,迅速成為當今社會的主流。結合著瀏覽器,他們更加如魚得水。
瀏覽器就好比是春秋戰國的諸侯,而各種技術就好比是這個時期出現的百家爭鳴。一旦某個諸侯利用好了某個大家的思想,他就將統治這個時代。
微軟意識到了這一點,千呼萬喚中,他創造了他的諸侯和大家。Vista和.NET3.0。
天下歸一?
Vista和.NET3.0的最初思想是非常好的,他是想利用託管技術,將整個作業系統都架構在.NET3.0之上,讓整個作業系統都與網際網路打成一片。
很不幸,Vista和.NET3.0並就像是商鞅變法一樣,雖然看起來很美,卻沒有長時間的給微軟帶來利益,反而處處被罵。其原因就是,這個想法太龐大了,需要更長的時間來開發,也需要更長的時間來培養使用者。
2000多年前,雖然商鞅變法中商鞅的下場不是太好,但是他的影響極其大,最終他的這種思想使得秦國統一了六國,那就是法家的思想。
那麼微軟這次Vista和.NET3.0升級是否存在這種思想呢?
在我看來,確實存在這種東西,還是不能小瞧微軟的。在這次升級中,微軟大膽引入了幾個非常重要的概念,WPF、WCF、WF,他們關注了從介面層到通訊層再到管理層等方面,構成了新形勢的作業系統架構。
雖然Vista版本下,沒有太多作為,但是隨後微軟推出的.NET3.5和.NET4.0,以及相應的Windows7和將來會發布的Windows8,都將真正形成競爭力。當前的Windows7就已經出顯出他的才華。
說到這裡,看起來前後各不相同,他們有什麼關係嗎?從軟體發展史,到瀏覽器大戰,再到技術的百家爭鳴,現在又說道了作業系統和.NET。他們有聯絡嗎?
任何歷史的發展,都是這樣的,不到事情最終結果出來,大家是很難知道現在的事情與以前的事情有什麼關聯。
微軟想借此拯救他的未來,而其他人呢?他們也正在同樣的創造新概念來拯救自己。比如IBM、比如谷歌。
救世主誕生
拿什麼來拯救?
創新!
如何創新?
方便使用者!
如何方便使用者?
不需要安裝、不需要學習只需要網路。
谷歌在最初推出他的瀏覽器時,其實就是為了架構一個平臺,一個網路作業系統應用平臺。這是他的救命稻草,也是他的殺手鐗。
如何做?
先讓瀏覽器佔領市場,不惜任何代價的開發高可用性的瀏覽器。這一點今天來看幾乎做到,他的Chrome瀏覽器,是我最喜歡的,速度最快(只不過對於網上銀行支援的不太好)。虧本的買賣誰做?谷歌就在做,這個瀏覽器不需要錢來購買,他只需要佔領這個市場,有了客戶何愁沒有錢?
然後,在這個瀏覽器能夠達到要求時,推出平板電腦(iPad之類的只包含瀏覽器的電腦),平板電腦、手機都可以整合他的應用,這樣大量的硬體就帶來了源源不斷的收入。不過這一點似乎被蘋果先入為主,他的iPod,iPhone,iPad,iMac在這種模式下大賺了一筆。
微軟只能望著這個市場而嘆息!
在這種新型的方式之下,國內也在躍躍欲試。同樣是擁有大量使用者的QQ和360,相繼推出了自己的Web應用平臺,QQ推出的是WebQQ和桌面版。只要開啟IE訪問WebQQ,就可以看到一個類似作業系統的網頁。裡面格式的網路應用都有,似乎不需要Windows就能達到Windows的功能了。而且其中所有的應用也都來自於他的合作商,利用他的協議方式,開發基於他的平臺的應用。
同時,360也有這麼一套,而且介面樣式看起來跟騰訊的WebQQ相仿,大量的服務和應用整合在其中。
這種方式在十年前可能無法深入人心,但是現在和將來,隨著人們的習慣改變,會深入人心。等到將來的某一天,或許我們根本不知道還有微軟的Windows這麼個東西了。
從單機版的Dos,到Windows,再到Linux,再到瀏覽器,軟體一路發展到現在,已經改變了我們的生活方式。通過對這段歷史的分析,我們看到,將來的軟體可能不可拜託瀏覽器,也不可拜託Web應用模式。軟體將完全免費,而收費的是在某個平臺之下,大量實用的應用(在Windows體系下叫做程式、軟體)。各 大廠商,在火拼之後,將形成幾個重要的平臺,如百度平臺、谷歌平臺、WebQQ平臺、360應用平臺,他們也都有自主開發的網頁瀏覽器程式。他們廝殺之後,剩下的王者,或許會佔領平板電腦市場、手機市場。
軟體的發展也將不再是什麼C/S還是B/S,客戶端或者非客戶端。而是基於某個平臺下的應用,只需要有瀏覽器,就能完成所有電腦需要做的事情。
我們真的準備好了怎麼迎接這個時代嗎!