Web App在移動裝置上的發展趨勢
談到Web App我們會談到移動裝置上的瀏覽器。所以我們會先探討移動裝置上瀏覽器發展的歷史,以及智慧手機上的瀏覽器發展情況,同時會在PC以及手機上技術發展和演進的歷史。
談到瀏覽器大家印象非常深,不管是PC還是移動終端。看一下最早的手持裝置,大家有多少人知道最早的手持裝置出現在什麼時候嗎?是Palm。它成立於1996年,但是為什麼先從Palm開始呢?看兩個圖片。
左邊是Palm,大概2005年左右出來的,但是事實上把這個時間拉早一點點,大概2002年、2003年的時候,大家找出有索尼的SG33,那個時候大家可以看到右邊的是Palm最火的網站。他們透過什麼方式上網呢?是透過一個藍芽裝置,把藍芽和網路連線,這是最早的透過手機上網的一種方式。這個已經成為了歷史。
但是在早期的PALM裝置上,跟我們現在看到的Web差不多,沒有太多太複雜的可以做展示,也可以展示一下簡單的網頁。
他們往手機裝置上走得太激進了,2010年被惠普收購,並且所有的Web裝置被拋售,甚至後來出現的版本也沒有太多人應用。只是因為他們走得太激進。往智慧手機領域做的時候,很多人不太一樣。大家可以看到很多手機做工不錯,但是銷量不夠。
再看看NOKIA,我寫的2004,為什麼是2004年呢?因為諾基亞2004年推出第一款智慧手機S66,是諾基亞最早的彩屏手機,上面有一個非常簡單的瀏覽器,大家看得很熟悉,標準Web裡的簡單演示。
諾基亞發展過程中,不管是後面做的一些系列,做的瀏覽器一直在做演進,諾基亞瀏覽器最早使用WebK核心來使用。諾基亞面對的機型大家有所瞭解,主要是一般的裝置,而沒有應用,大家現在還可以看到兩百塊、三百塊的手機。諾基亞一直認為他們的利潤來源是硬體方面,一直到2007年蘋果手機出來之後,他們的核心做得還不是太好。大家如果開發過諾基亞的時候,都會知道。導致沒有什麼應用之後,他們自己在智慧手機上發展不夠,到現在諾基亞甚至把自家的系統毀掉了,採用了Window系統。
再看看山寨機,山寨機依然有手機上網裝置,可以看新聞,還有一些小的音樂、娛樂。在山寨及當中有創意的是機型,2008年福娃的手機,還有這一款手機可以做什麼呢?是防狼手機。這一個是飛鏢手機,也比較前衛。這是所謂的非常多的音箱的手機。山寨機是透過非常簡單的Web來做,早期的在瀏覽器一直有的。
回顧了剛才的歷史,在2006年,或者再早一點,中國移動網際網路元年2009年之前,大多數手機上網是Web,手機Oopera大家知道嗎?他們做得比較早一些,但是後來就沒有了。原因在於他們創始人接近的是Wap會成為手機主流,包括在當時3G門戶、空中網大家都認為手機上面會出現新的方式,比如Wap頁面。所以談到手機Web趨勢,為什麼會在手機上出現一批、甚至更多的頁面,這個想法沒有錯,但是低估了手機發展的能力。包括空中網以及3G門戶,他們認為Wap頁面發展會發展得更好,因為Wap格式更簡單。
opera最早也是Wap瀏覽器的一種。在不同時間之後發生一些改變,這種改變在哪裡呢?我們剛剛提到的犧牲使用者瀏覽體驗,剛才我們提到在Wap頁面上,沒有發展得多,把PC頁面做壓縮,重新在手機上做展示。有些人會說Wap是非常合適的格式。但是我們看一看,製作核心在什麼地方呢?當你開啟一個PC頁面的時候,會抓取下來,存一個純文字,把所有的標情過濾掉,把所有的標清之外的拿下,這是手機上顯示PC頁面的方式。對於opera來做的事情好一些,除了做頁面壓縮和過濾,他們更多在伺服器上做了一個壓縮,根據手機不同尺寸做了頁面調整和壓縮,有圖片的壓縮,同時打包。所以在迷你上有兩種方式可以看到,一種和PC結構一樣,但是要瀏覽全貌要不斷放大。這是手機瀏覽器上,2006年到2011年主流瀏覽器都採用這種方式做。我們認為這種會成為一個過渡。
原因是什麼呢?看看Android和iPhone,Android是全功能核心,可以完全展示PC頁面。包括在現在手機瀏覽器上,最開始出來400兆到現在雙核,功能比PC強大得多。可以在手機上持續展示PC頁面。第二對所謂流量也不會產生大的問題。打一個比方,大家去用了1080P高畫質電視,再回過來看天線的模擬電視,會選擇哪一種?手機發展也是這樣,當你會以無縫體驗來講,那麼大家會慢慢覺得壓縮的方式不是那麼好。
再看看iPhone,在iPhone做了很多改進,這種改進舉一個簡單的例子,如果大家用iPhone選擇一個日曆選擇框,會發現一個變化,手機瀏覽器不僅顯示頁面,應該和手機互動方式有一定改進,這種改進會更容易幫你做選擇和互動。我們認為未來手機瀏覽器上會出現更多互動方式,幫助在手機上做。
如果回顧PC操作方式和手機操作方式是什麼樣的狀況,PC上基本上是滑鼠很少人用鍵盤上網,用鍵盤能不能上網呢?當然可以了。如果加一個外掛完全可以用鍵盤做導航。但是更多人是用滑鼠點選,你不會看滑鼠怎麼移動,可以到非常精準的部位。但是到手機上就不同了,手經常會擋住你的操作,而且需要經常看著手。但是把PC頁面在手機上展示的時候,PC展示方式在手機上並不是那麼適合。其次是輸入上,在手機上輸入只有按鍵,這是我剛才提到蘋果在提供互動方式為什麼會成為創新的原因。
那再來看看,手機圖片有什麼特點和方式,第一是在iPhone,會拋棄Flash,早期Android也不支援Flash。為什麼喬布斯拋棄flash?事實上看看Flash為瀏覽器帶來了什麼東西。為什麼Flash不重要?再看一下瀏覽器,瀏覽器大多數操作做的都是顯示操作,點選、拖拽。Flash帶來什麼東西呢?用Flash的時候可以有玩遊戲的可能。其次用得不是那麼多,提供了讓你訪問本地應用的能力。如果一直看一個Flash外掛是否允許PC上麥克風、攝像頭。這是一種。為什麼要拋棄Flash?這個原因在於:第一會導致宕機,第二會導致安裝外掛麻煩。
Flash對瀏覽器提供非常強的擴充套件,這個擴充套件會帶來什麼可能呢?在PC瀏覽器上直接達到原生應用程式部分功能提供訪問能力。,如果我們去想象,如果Flash一家獨大所有的頁面都需要Flash,那麼作業系統就變得不重要了。並且Flash有非常強的拖拽方式,實現了在PC上操作的方式。 為什麼蘋果打破他的壟斷?蘋果在智慧裝置上不希望第三方阻斷他的操作方式。這是為什麼flash被蘋果拋棄的原因。拋棄了Flash為蘋果帶來了什麼?就是HTML5。
我們認為HTML5加了幾個新特性:第一頁面描述規範,來幫助你識別頁面上到底哪一塊是什麼內容,可以出於更加方便的查詢。對於這種方式來說有用嗎?包括回顧過去十年IE標準,亂七八糟的標準都不識別,所以強制執行比較困難。第二個是新的互動方式。所以大家知道提供拖拽功能,對於Flash來說提供了一個可能,可以做一些操作,這種操作實際上是把Flash部分功能替代,當如果你來做的時候,這些功能可以做到為什麼還用Flash?拖拽的可能也為Web頁面做出PC體驗提供了一種可能。第三是新的影片解碼標準,這個可能沒有那麼重要,Flash是目前最主要的影片網站播放的方式。但是對於谷歌來說,我們看它解決什麼問題呢?只解決瀏覽器不要裝外掛的方式,但對於這個,我們往深裡看,意味著是一個新的影片格式標準,誰掌握了這種標準可以要求專利費。所以瀏覽器裡,也有商業的原理,不同的模式在打架,到現在也沒有定下來,原因也在當初做新的標準,本身不是一個技術問題,而是一個標準問題。
最後也是最重要的是提供訪問本地的問題,有兩種方式,如果想深一點,提供一種可能在Web頁面可以訪問本地應用,跟原生應用訪問有什麼區別呢?其實沒有什麼區別,我們可以稍微來看一看,是不是把這個東西結合在一起的話,是不是可以得出結論,可以做一個程式達到本地應用的程式。回顧到這裡Flash最重要的幾點,提供本地效應價值,並且不需要用專門的Flash來做,這是為什麼谷歌提供很多方式來轉。所以為什麼有幾家公司蘋果、Android支援HTML5,大家一起把Drop提出去了。所以iPhone不讓Flash進去,Android部分讓它進去,為什麼新的IE9、IE10支援HTML5。
對之前開放的標準,催生更多應用而不是一家獨大的情況。回過來做一個對比,結合業界的趨勢來看,為什麼Web這塊有非常大的發展空間。看一個桌面上的發展趨勢:
第一是大家可以看從單機到區域網到網際網路的發展模式。這是過去二十年間發生的事。這個上面,我們看一看開發上做的演變,最開始透過一個單機應用程式,最早是透過彙編、簡單的DOS程式,然後出現了單機資料庫,網路進入之後,區域網大家把資料庫、應用服務分開。再往後到2000年左右是Web程式,到現在大家可以看到,絕大多數應用都出現在Web開發方式。現在還有哪些非常厲害的PC軟體開發公司?很少了。技術導致在PC上的開發應用非常少,轉向WBE。轉向雲計算的時候,又像回到最開始的時代,所有的服務都跑到雲端。
做一個對比,首先來看商業軟體公司,九十年代初曾經出現過的蘋果,2000年出現的最火的是網際網路公司,傳統的軟體開始逐漸下架。現在開始出現基礎平臺網際網路公司,比如亞馬遜。
另外程式語言趨勢,程式語言來看,大家可以很清楚,如果大家做對比,從彙編到C到C++ 對應桌面發展趨勢單機是C做主導,到但機加資料庫是C++做主導。到.NET之後,是JavaScript,這是2005年之後做的事。轉到移動裝置之後,我們看看會不會在移動裝置上出現類似PC上一樣的用JavaScript的開發方式?
對比這幾件事有幾個結論:第一個是技術發展趨勢讓開發為什麼簡單,開發者使用者基數越來越大。看一下桌面和編輯語言發生的事情。越到後面開發者基數越大,會不會C++的人多一些?請回顧為什麼商業上會出現同樣的方式?當你要去僱一個兩萬一個月開發彙編和C開發程式,和三千塊做一個簡單的PHP做應用程式的,會用哪一種?商業選擇既然能夠達到同樣應用,肯定選擇便宜的。另外一種Web不會在PC上做大量部署,技術開始越來越多、使用者兩越來越大的時候,普及應用之後,我們看到技術發展趨勢讓開發越來越簡單。包括谷歌提出可以拖拽的框架幫助大家寫應用程式,甚至很多幫助大家用應用程式做拖拽,讓開發變得越來越簡單。這樣才有價值。
第二是商業發展趨勢讓開放網際網路公司越來越多,傳統軟體開始衰落。傳統PC上寫一個軟體要很複雜地分發。但是網際網路的時代直接放到網上就可以用,這就導致成本降低。儘可能選擇Web原因在這裡——商業原因。
最後一個結論其實也是最重要的,談到很多PC上發生的事,如果看手機、智慧手機上,會不會把PC上的事複製一遍?做一個對比,九十年代初共享軟體非常流行,而現在大家寫的是手機客戶端。但隨著技術發展,大家開始往Web做,手機上會不會轉向Web?其次商業上來說,很多商業公司並不懂技術,比如出版商、做內容網站的的,但也想做應用,一個方法是把頁面做得更好一些,另外一個方法會僱人做一個iPhone上的程式。這也是現在發生的事。僱人去做Android、做iPhone的程式。你不可能又懂Android看法又懂iPhone開發的,找人給你做,但是如果在Web方式能夠有原生Web體驗,絕大部分非專業人士都將轉到Web,取決的原因在於產品質量。上次和噹噹網的工程師聊天,他們就是會先拿一個Web View+Android外殼實現的。所以我們看到智慧手機應用正在慢慢往Web走。
另外看看Web發展,技術發展,從任何商業上的決定也是有技術上的決定,如果沒有網際網路發展,網際網路公司不存在一樣。Web發展提供了哪些可能?Web最早出現在1998年,沒有太多技術含量,做了之後呢,後面稍微有技術含量點,難在動態互動,2009年ASP、JSP等等,當比較複雜的時候透過C++寫程式,為很多內容動態操作方式提供了可能,存取可以動態做到。2005年穀歌推出GMail,可以有更強的互動方式。2005年之後出現了強互動的Web,包括到現在也有很多前端公司,但是要找一個很好的前端工程師很難,真正厲害人的覺得太簡單了不做,都是由一些懂程式不太多的人來做。更多專業程度是在做怎麼做一個非常強的互動頁面、非常好的互動方式。這是我們看到Web做的事。
第四是我提到的RIA,為什麼Adobe很流行?。2006年以後大家越來越多用Web開發程式,但是原有技術不能支撐,Flash面向企業收費,到了2.0就想到做免費讓大家用Flash寫程式。很不幸這兩個都沒有成,原因在於對於Adobe來說,不是經營開發者社群的公司,所以雖然想到了那個東西,但是沒有做。對於微軟來說,雖然花了很多錢做但是Flash已經成為市場主導,目前是兩敗俱傷。
2010年開始火起來了就是HTML5,2006年大家認為Web有更多互動方式,2007年兩家公司開始打架。後來覺得還是不要打了,做一個新的標準。所以看一看HTML5提供的新的功能,能做的事都是需要做的。我們看到的都是趨勢,做一個對比,有些是打一個問號。對比是什麼意思呢?看一看如果開發一個程式的話,早期PC上開發的程式所有都不是問題,訪問資料庫、本地資源都不是問題,Web上很多都是問題。
第一訪問本地硬體資源能力,還是原生應用效率高,包括C++寫,開發效率最高、效能最好,不僅訪問CPU資源還能訪問GPU資源進行壓縮。
在Web之外,允許瀏覽器裡訪問GPU,提升了效能。除了這個之外所有瀏覽器都採用主流硬體加速能力,這是第一個基礎,拿Web開發和原生開發的基礎。第二個訪問硬體能力大家差不多之後,就是效能問題,拋開不談。另外還有本地離線儲存能力,本地事情可以做到,再看看為什麼HTML加速,原因很簡單,可以拿Web寫一個程式存大量在本地,也可以一樣在瀏覽器啟動應用程式之後寫好。當有了Tast,其實和本地開發程式沒有太大區別。
AJAX是一邊重新整理資訊,主頁面沒有什麼重新整理,提供了一種非同步互動的方式,並且同時對使用者體驗做了改進。
三是桌面互動能力,桌面互動也是比較重要的因素,重要在於原生的時候可以拖一個圖表、拖一個檔案到資源管理器裡。這是原生程式上經常做的事。也提供一個拖拽功能,如果用Gmail可以拖到附件框裡,是一種互動處理能力。可以在Web裡做,和本地類似的做應用。
還有介面渲染方式。在原生程式上,Android的開發也是類似的方式,把前面的介面寫好,如果也做了類似的,但是顯示不是這樣,但是沒有做類似互動,要本地程式、遠端應用、介面展示方式,提供了非常多的可能,這種可能,提供介面上更強的表現能力,如果這幾個技術做對比的話,結論很簡單,Web上做開發已經提供了技術基礎,以達到和本地應用一樣的能力。這種能力當你技術做成熟的時候,再對比一下PC上發生的事,開發的程式從C/S到B/S,手機上做的事都是一樣的。
為什麼呢?原因在於,開發的難度都導致很多開發者往這邊轉。很多市場上非常難求的Android開發工程師,非常非常難培養出來。如果這個技術成熟到拿Web、拿CSS可以做一個和原生的程式抗衡的程式,會發現市場上大量的都冒出來了。這是技術上的對比。這就是為什麼說Web App已經在市場上打好基礎。
可以看看Web App,如果裝上驅動發現和原生程式在操作方式上沒有太大的區別。但是還有一些區別,用拖拽會比較慢一些,除了這個之外互動方式和做的方式,給一個不懂的人看會發現他看不出之間的差別。
再看一個例子,可以在Web上透過訪問GPU方式,很多廠商拿一些瀏覽器展示Web能力,在遊戲上做得比較多的,也可以有一個基礎,往瀏覽器轉的基礎。 那麼來看一看對於Web App來說,沒有必要侷限於是PC還是Web,還是什麼什麼。來看一下做得比較早的,如果看谷歌的WebStore,有各種應用,一個典型的是Googel Mail,點開以後你可以做拖拽,如果全屏的話可以發現和本地的應用沒什麼區別。為什麼Google在HMT5上這麼熱心。就不需要那麼強的作業系統來做。這是新的一輪洗牌開始,谷歌不遺餘力做拓展。當你在Gmail收到一個郵件的時候,會有一個彈窗的提醒,桌面上有很多彈窗來提醒,Web是另外一個方式,如果來做的話會有一個通知和提醒支援。Web可以做到,也可以提供一個操作方式。
我們前面談到很多,幾個方面談到的,首先瀏覽器發展,談到了一個結論,因為智慧手機功能會越來越強大,這種強大功能會導致顯示Web方式是一樣的。另外技術趨勢來談,談到現在HTML5已經做好了準備,第三方面談到對比,在PC上發生的事情是大量桌面應用轉向Web應用的歷史。
下一步的發展,第一會充分發揮HTML5優勢的App,對於顯示新聞、BBS等不需要特別多的互動、檔案商務的設定、比價程式、甚至天氣預報這種程式都可以做。第二種是會充分發揮移動互動優勢,剛才反覆提到移動裝置上會出現新的互動方式,原因在於手機互動方式和PC互動方式不一樣,我們做手機應用的時候,一定有新的互動方式會出現,作為新的創新,會利用這些Web技術出現新的創新。新的互動方式可能提供一種對比、提供一種可能。第三種是需要一個時間能夠充分和本地應用匹敵的APP,效能和應用都可以全面和本地應用抗衡。
Web App在移動裝置上的發展趨勢
談到Web App我們會談到移動裝置上的瀏覽器。所以我們會先探討移動裝置上瀏覽器發展的歷史,以及智慧手機上的瀏覽器發展情況,同時會在PC以及手機上技術發展和演進的歷史。
談到瀏覽器大家印象非常深,不管是PC還是移動終端。看一下最早的手持裝置,大家有多少人知道最早的手持裝置出現在什麼時候嗎?是Palm。它成立於1996年,但是為什麼先從Palm開始呢?看兩個圖片。
左邊是Palm,大概2005年左右出來的,但是事實上把這個時間拉早一點點,大概2002年、2003年的時候,大家找出有索尼的SG33,那個時候大家可以看到右邊的是Palm最火的網站。他們透過什麼方式上網呢?是透過一個藍芽裝置,把藍芽和網路連線,這是最早的透過手機上網的一種方式。這個已經成為了歷史。
但是在早期的PALM裝置上,跟我們現在看到的Web差不多,沒有太多太複雜的可以做展示,也可以展示一下簡單的網頁。
他們往手機裝置上走得太激進了,2010年被惠普收購,並且所有的Web裝置被拋售,甚至後來出現的版本也沒有太多人應用。只是因為他們走得太激進。往智慧手機領域做的時候,很多人不太一樣。大家可以看到很多手機做工不錯,但是銷量不夠。
再看看NOKIA,我寫的2004,為什麼是2004年呢?因為諾基亞2004年推出第一款智慧手機S66,是諾基亞最早的彩屏手機,上面有一個非常簡單的瀏覽器,大家看得很熟悉,標準Web裡的簡單演示。
諾基亞發展過程中,不管是後面做的一些系列,做的瀏覽器一直在做演進,諾基亞瀏覽器最早使用WebK核心來使用。諾基亞面對的機型大家有所瞭解,主要是一般的裝置,而沒有應用,大家現在還可以看到兩百塊、三百塊的手機。諾基亞一直認為他們的利潤來源是硬體方面,一直到2007年蘋果手機出來之後,他們的核心做得還不是太好。大家如果開發過諾基亞的時候,都會知道。導致沒有什麼應用之後,他們自己在智慧手機上發展不夠,到現在諾基亞甚至把自家的系統毀掉了,採用了Window系統。
再看看山寨機,山寨機依然有手機上網裝置,可以看新聞,還有一些小的音樂、娛樂。在山寨及當中有創意的是機型,2008年福娃的手機,還有這一款手機可以做什麼呢?是防狼手機。這一個是飛鏢手機,也比較前衛。這是所謂的非常多的音箱的手機。山寨機是透過非常簡單的Web來做,早期的在瀏覽器一直有的。
回顧了剛才的歷史,在2006年,或者再早一點,中國移動網際網路元年2009年之前,大多數手機上網是Web,手機Oopera大家知道嗎?他們做得比較早一些,但是後來就沒有了。原因在於他們創始人接近的是Wap會成為手機主流,包括在當時3G門戶、空中網大家都認為手機上面會出現新的方式,比如Wap頁面。所以談到手機Web趨勢,為什麼會在手機上出現一批、甚至更多的頁面,這個想法沒有錯,但是低估了手機發展的能力。包括空中網以及3G門戶,他們認為Wap頁面發展會發展得更好,因為Wap格式更簡單。
opera最早也是Wap瀏覽器的一種。在不同時間之後發生一些改變,這種改變在哪裡呢?我們剛剛提到的犧牲使用者瀏覽體驗,剛才我們提到在Wap頁面上,沒有發展得多,把PC頁面做壓縮,重新在手機上做展示。有些人會說Wap是非常合適的格式。但是我們看一看,製作核心在什麼地方呢?當你開啟一個PC頁面的時候,會抓取下來,存一個純文字,把所有的標情過濾掉,把所有的標清之外的拿下,這是手機上顯示PC頁面的方式。對於opera來做的事情好一些,除了做頁面壓縮和過濾,他們更多在伺服器上做了一個壓縮,根據手機不同尺寸做了頁面調整和壓縮,有圖片的壓縮,同時打包。所以在迷你上有兩種方式可以看到,一種和PC結構一樣,但是要瀏覽全貌要不斷放大。這是手機瀏覽器上,2006年到2011年主流瀏覽器都採用這種方式做。我們認為這種會成為一個過渡。
原因是什麼呢?看看Android和iPhone,Android是全功能核心,可以完全展示PC頁面。包括在現在手機瀏覽器上,最開始出來400兆到現在雙核,功能比PC強大得多。可以在手機上持續展示PC頁面。第二對所謂流量也不會產生大的問題。打一個比方,大家去用了1080P高畫質電視,再回過來看天線的模擬電視,會選擇哪一種?手機發展也是這樣,當你會以無縫體驗來講,那麼大家會慢慢覺得壓縮的方式不是那麼好。
再看看iPhone,在iPhone做了很多改進,這種改進舉一個簡單的例子,如果大家用iPhone選擇一個日曆選擇框,會發現一個變化,手機瀏覽器不僅顯示頁面,應該和手機互動方式有一定改進,這種改進會更容易幫你做選擇和互動。我們認為未來手機瀏覽器上會出現更多互動方式,幫助在手機上做。
如果回顧PC操作方式和手機操作方式是什麼樣的狀況,PC上基本上是滑鼠很少人用鍵盤上網,用鍵盤能不能上網呢?當然可以了。如果加一個外掛完全可以用鍵盤做導航。但是更多人是用滑鼠點選,你不會看滑鼠怎麼移動,可以到非常精準的部位。但是到手機上就不同了,手經常會擋住你的操作,而且需要經常看著手。但是把PC頁面在手機上展示的時候,PC展示方式在手機上並不是那麼適合。其次是輸入上,在手機上輸入只有按鍵,這是我剛才提到蘋果在提供互動方式為什麼會成為創新的原因。
那再來看看,手機圖片有什麼特點和方式,第一是在iPhone,會拋棄Flash,早期Android也不支援Flash。為什麼喬布斯拋棄flash?事實上看看Flash為瀏覽器帶來了什麼東西。為什麼Flash不重要?再看一下瀏覽器,瀏覽器大多數操作做的都是顯示操作,點選、拖拽。Flash帶來什麼東西呢?用Flash的時候可以有玩遊戲的可能。其次用得不是那麼多,提供了讓你訪問本地應用的能力。如果一直看一個Flash外掛是否允許PC上麥克風、攝像頭。這是一種。為什麼要拋棄Flash?這個原因在於:第一會導致宕機,第二會導致安裝外掛麻煩。
Flash對瀏覽器提供非常強的擴充套件,這個擴充套件會帶來什麼可能呢?在PC瀏覽器上直接達到原生應用程式部分功能提供訪問能力。,如果我們去想象,如果Flash一家獨大所有的頁面都需要Flash,那麼作業系統就變得不重要了。並且Flash有非常強的拖拽方式,實現了在PC上操作的方式。 為什麼蘋果打破他的壟斷?蘋果在智慧裝置上不希望第三方阻斷他的操作方式。這是為什麼flash被蘋果拋棄的原因。拋棄了Flash為蘋果帶來了什麼?就是HTML5。
我們認為HTML5加了幾個新特性:第一頁面描述規範,來幫助你識別頁面上到底哪一塊是什麼內容,可以出於更加方便的查詢。對於這種方式來說有用嗎?包括回顧過去十年IE標準,亂七八糟的標準都不識別,所以強制執行比較困難。第二個是新的互動方式。所以大家知道提供拖拽功能,對於Flash來說提供了一個可能,可以做一些操作,這種操作實際上是把Flash部分功能替代,當如果你來做的時候,這些功能可以做到為什麼還用Flash?拖拽的可能也為Web頁面做出PC體驗提供了一種可能。第三是新的影片解碼標準,這個可能沒有那麼重要,Flash是目前最主要的影片網站播放的方式。但是對於谷歌來說,我們看它解決什麼問題呢?只解決瀏覽器不要裝外掛的方式,但對於這個,我們往深裡看,意味著是一個新的影片格式標準,誰掌握了這種標準可以要求專利費。所以瀏覽器裡,也有商業的原理,不同的模式在打架,到現在也沒有定下來,原因也在當初做新的標準,本身不是一個技術問題,而是一個標準問題。
最後也是最重要的是提供訪問本地的問題,有兩種方式,如果想深一點,提供一種可能在Web頁面可以訪問本地應用,跟原生應用訪問有什麼區別呢?其實沒有什麼區別,我們可以稍微來看一看,是不是把這個東西結合在一起的話,是不是可以得出結論,可以做一個程式達到本地應用的程式。回顧到這裡Flash最重要的幾點,提供本地效應價值,並且不需要用專門的Flash來做,這是為什麼谷歌提供很多方式來轉。所以為什麼有幾家公司蘋果、Android支援HTML5,大家一起把Drop提出去了。所以iPhone不讓Flash進去,Android部分讓它進去,為什麼新的IE9、IE10支援HTML5。
對之前開放的標準,催生更多應用而不是一家獨大的情況。回過來做一個對比,結合業界的趨勢來看,為什麼Web這塊有非常大的發展空間。看一個桌面上的發展趨勢:
第一是大家可以看從單機到區域網到網際網路的發展模式。這是過去二十年間發生的事。這個上面,我們看一看開發上做的演變,最開始透過一個單機應用程式,最早是透過彙編、簡單的DOS程式,然後出現了單機資料庫,網路進入之後,區域網大家把資料庫、應用服務分開。再往後到2000年左右是Web程式,到現在大家可以看到,絕大多數應用都出現在Web開發方式。現在還有哪些非常厲害的PC軟體開發公司?很少了。技術導致在PC上的開發應用非常少,轉向WBE。轉向雲計算的時候,又像回到最開始的時代,所有的服務都跑到雲端。
做一個對比,首先來看商業軟體公司,九十年代初曾經出現過的蘋果,2000年出現的最火的是網際網路公司,傳統的軟體開始逐漸下架。現在開始出現基礎平臺網際網路公司,比如亞馬遜。
另外程式語言趨勢,程式語言來看,大家可以很清楚,如果大家做對比,從彙編到C到C++ 對應桌面發展趨勢單機是C做主導,到但機加資料庫是C++做主導。到.NET之後,是JavaScript,這是2005年之後做的事。轉到移動裝置之後,我們看看會不會在移動裝置上出現類似PC上一樣的用JavaScript的開發方式?
對比這幾件事有幾個結論:第一個是技術發展趨勢讓開發為什麼簡單,開發者使用者基數越來越大。看一下桌面和編輯語言發生的事情。越到後面開發者基數越大,會不會C++的人多一些?請回顧為什麼商業上會出現同樣的方式?當你要去僱一個兩萬一個月開發彙編和C開發程式,和三千塊做一個簡單的PHP做應用程式的,會用哪一種?商業選擇既然能夠達到同樣應用,肯定選擇便宜的。另外一種Web不會在PC上做大量部署,技術開始越來越多、使用者兩越來越大的時候,普及應用之後,我們看到技術發展趨勢讓開發越來越簡單。包括谷歌提出可以拖拽的框架幫助大家寫應用程式,甚至很多幫助大家用應用程式做拖拽,讓開發變得越來越簡單。這樣才有價值。
第二是商業發展趨勢讓開放網際網路公司越來越多,傳統軟體開始衰落。傳統PC上寫一個軟體要很複雜地分發。但是網際網路的時代直接放到網上就可以用,這就導致成本降低。儘可能選擇Web原因在這裡——商業原因。
最後一個結論其實也是最重要的,談到很多PC上發生的事,如果看手機、智慧手機上,會不會把PC上的事複製一遍?做一個對比,九十年代初共享軟體非常流行,而現在大家寫的是手機客戶端。但隨著技術發展,大家開始往Web做,手機上會不會轉向Web?其次商業上來說,很多商業公司並不懂技術,比如出版商、做內容網站的的,但也想做應用,一個方法是把頁面做得更好一些,另外一個方法會僱人做一個iPhone上的程式。這也是現在發生的事。僱人去做Android、做iPhone的程式。你不可能又懂Android看法又懂iPhone開發的,找人給你做,但是如果在Web方式能夠有原生Web體驗,絕大部分非專業人士都將轉到Web,取決的原因在於產品質量。上次和噹噹網的工程師聊天,他們就是會先拿一個Web View+Android外殼實現的。所以我們看到智慧手機應用正在慢慢往Web走。
另外看看Web發展,技術發展,從任何商業上的決定也是有技術上的決定,如果沒有網際網路發展,網際網路公司不存在一樣。Web發展提供了哪些可能?Web最早出現在1998年,沒有太多技術含量,做了之後呢,後面稍微有技術含量點,難在動態互動,2009年ASP、JSP等等,當比較複雜的時候透過C++寫程式,為很多內容動態操作方式提供了可能,存取可以動態做到。2005年穀歌推出GMail,可以有更強的互動方式。2005年之後出現了強互動的Web,包括到現在也有很多前端公司,但是要找一個很好的前端工程師很難,真正厲害人的覺得太簡單了不做,都是由一些懂程式不太多的人來做。更多專業程度是在做怎麼做一個非常強的互動頁面、非常好的互動方式。這是我們看到Web做的事。
第四是我提到的RIA,為什麼Adobe很流行?。2006年以後大家越來越多用Web開發程式,但是原有技術不能支撐,Flash面向企業收費,到了2.0就想到做免費讓大家用Flash寫程式。很不幸這兩個都沒有成,原因在於對於Adobe來說,不是經營開發者社群的公司,所以雖然想到了那個東西,但是沒有做。對於微軟來說,雖然花了很多錢做但是Flash已經成為市場主導,目前是兩敗俱傷。
2010年開始火起來了就是HTML5,2006年大家認為Web有更多互動方式,2007年兩家公司開始打架。後來覺得還是不要打了,做一個新的標準。所以看一看HTML5提供的新的功能,能做的事都是需要做的。我們看到的都是趨勢,做一個對比,有些是打一個問號。對比是什麼意思呢?看一看如果開發一個程式的話,早期PC上開發的程式所有都不是問題,訪問資料庫、本地資源都不是問題,Web上很多都是問題。
第一訪問本地硬體資源能力,還是原生應用效率高,包括C++寫,開發效率最高、效能最好,不僅訪問CPU資源還能訪問GPU資源進行壓縮。
在Web之外,允許瀏覽器裡訪問GPU,提升了效能。除了這個之外所有瀏覽器都採用主流硬體加速能力,這是第一個基礎,拿Web開發和原生開發的基礎。第二個訪問硬體能力大家差不多之後,就是效能問題,拋開不談。另外還有本地離線儲存能力,本地事情可以做到,再看看為什麼HTML加速,原因很簡單,可以拿Web寫一個程式存大量在本地,也可以一樣在瀏覽器啟動應用程式之後寫好。當有了Tast,其實和本地開發程式沒有太大區別。
AJAX是一邊重新整理資訊,主頁面沒有什麼重新整理,提供了一種非同步互動的方式,並且同時對使用者體驗做了改進。
三是桌面互動能力,桌面互動也是比較重要的因素,重要在於原生的時候可以拖一個圖表、拖一個檔案到資源管理器裡。這是原生程式上經常做的事。也提供一個拖拽功能,如果用Gmail可以拖到附件框裡,是一種互動處理能力。可以在Web裡做,和本地類似的做應用。
還有介面渲染方式。在原生程式上,Android的開發也是類似的方式,把前面的介面寫好,如果也做了類似的,但是顯示不是這樣,但是沒有做類似互動,要本地程式、遠端應用、介面展示方式,提供了非常多的可能,這種可能,提供介面上更強的表現能力,如果這幾個技術做對比的話,結論很簡單,Web上做開發已經提供了技術基礎,以達到和本地應用一樣的能力。這種能力當你技術做成熟的時候,再對比一下PC上發生的事,開發的程式從C/S到B/S,手機上做的事都是一樣的。
為什麼呢?原因在於,開發的難度都導致很多開發者往這邊轉。很多市場上非常難求的Android開發工程師,非常非常難培養出來。如果這個技術成熟到拿Web、拿CSS可以做一個和原生的程式抗衡的程式,會發現市場上大量的都冒出來了。這是技術上的對比。這就是為什麼說Web App已經在市場上打好基礎。
可以看看Web App,如果裝上驅動發現和原生程式在操作方式上沒有太大的區別。但是還有一些區別,用拖拽會比較慢一些,除了這個之外互動方式和做的方式,給一個不懂的人看會發現他看不出之間的差別。
再看一個例子,可以在Web上透過訪問GPU方式,很多廠商拿一些瀏覽器展示Web能力,在遊戲上做得比較多的,也可以有一個基礎,往瀏覽器轉的基礎。 那麼來看一看對於Web App來說,沒有必要侷限於是PC還是Web,還是什麼什麼。來看一下做得比較早的,如果看谷歌的WebStore,有各種應用,一個典型的是Googel Mail,點開以後你可以做拖拽,如果全屏的話可以發現和本地的應用沒什麼區別。為什麼Google在HMT5上這麼熱心。就不需要那麼強的作業系統來做。這是新的一輪洗牌開始,谷歌不遺餘力做拓展。當你在Gmail收到一個郵件的時候,會有一個彈窗的提醒,桌面上有很多彈窗來提醒,Web是另外一個方式,如果來做的話會有一個通知和提醒支援。Web可以做到,也可以提供一個操作方式。
我們前面談到很多,幾個方面談到的,首先瀏覽器發展,談到了一個結論,因為智慧手機功能會越來越強大,這種強大功能會導致顯示Web方式是一樣的。另外技術趨勢來談,談到現在HTML5已經做好了準備,第三方面談到對比,在PC上發生的事情是大量桌面應用轉向Web應用的歷史。
下一步的發展,第一會充分發揮HTML5優勢的App,對於顯示新聞、BBS等不需要特別多的互動、檔案商務的設定、比價程式、甚至天氣預報這種程式都可以做。第二種是會充分發揮移動互動優勢,剛才反覆提到移動裝置上會出現新的互動方式,原因在於手機互動方式和PC互動方式不一樣,我們做手機應用的時候,一定有新的互動方式會出現,作為新的創新,會利用這些Web技術出現新的創新。新的互動方式可能提供一種對比、提供一種可能。第三種是需要一個時間能夠充分和本地應用匹敵的APP,效能和應用都可以全面和本地應用抗衡。