思蘆隨筆

人隻不過是一根蘆葦,是自然界最脆弱的東西;但他能夠思想。
個人資料
思蘆 (熱門博主)
  • 博客訪問:
歸檔
正文

鴻蒙已死,哄蒙萬歲

(2020-05-13 07:27:09) 下一個

鴻蒙已死,哄蒙萬歲

一年前,華為剛揭示鴻蒙時,我的博文“殺器還是噱頭?詳解華為的操作係統”做了預測。當時華為公布的鴻蒙的信息還很有限。博文說:“華為的手機操作係統備胎,新東西少,隻是集成了華為對安卓的一些優化。最後結果就是自己玩,難逃塞班和Palm OS的命運,噱頭而已。華為公司工程能力強,但不是一個技術創新的公司。”有小粉紅留言:“你說得也許對,但我願意做小白鼠,華為這個係統出來了我肯定買,讓華為有機會改進提高,最後做到最好。”我回複:“希望你長壽,能等到鴻蒙出來的那一天。”

一年以後,轉身回看:我的預言基本都說中了。

當時華為消費者業務總裁餘承東說最快今年秋天,最晚明年(2020年)春天,華為自己的手機操作係統將可能麵市。2019年7月3日任正非接受法國《Le Point》雜誌專訪時表示,鴻蒙操作係統主要應用於物聯網,並不是用在手機中,做這個係統的時候並不是想替代穀歌的。 2019年8月9日,餘承東在華為開發者大會上正式發布手機操作係統鴻蒙,但隻有PPT,未有展示。說該係統雖然主要麵向IoT設備,但也可支持手機。如果穀歌安卓係統不向華為開放,將“可以隨時啟用鴻蒙”。10月23日,華為輪值董事長徐直軍在華為媒體溝通會上稱,鴻蒙本來是用於華為內部一個內核的名字,後來被媒體誤傳為華為的操作係統。2020年4月22日,任正非表示:華為的操作係統要想超越安卓和蘋果的操作係統,可能需要很長時間,但不會超過 300 年。

華為的立場不斷後退。先宣稱鴻蒙是今後華為手機的操作係統。然後改口說鴻蒙是針對物聯網開發的。隻會在安卓不能用時才會啟用。而穀歌從來沒有對華為關閉安卓。安卓是開源的,穀歌不能也不會阻擋任何公司用安卓。穀歌限製華為使用的隻是穀歌的應用程序-GMS。而鴻蒙是操作係統,和GMS是兩回事。所以不存在安卓不對華為手機開放的情況,這樣鴻蒙永遠隻能當備胎。備胎是打造不出生態係統的。沒有生態係統的操作係統隻能閉起門來自己玩。任正非說要300年才能超越安卓和蘋果,那時華為在不在都是問題,實際上是承認這是一個不可能完成的任務。徐直軍幹脆否認鴻蒙是一個操作係統,這都是為以前的牛皮找台階下。

華為的宣布互相矛盾。說明華為的鴻蒙戰略比較混亂,隻是一個概念,覆蓋的領域不清晰。為了宣傳,倉促上馬,問題很大,很可能已經流產。按英國傳統,當老國王死掉,新國王即位。使者各地宣示“The King is dead, Long live the King”。(老)國王已死,(新)國王萬歲。徐直軍和任正非實際上宣示:鴻蒙已死,哄蒙萬歲。

審視華為揭示的鴻蒙構想,新意不多。簡而言之是兩個拚盤,一個替換。拚盤是安卓架構和LiteOS的拚盤。LiteOS是華為的輕量級物聯網操作係統,麵向智能家居、車聯網等領域,集成LiteOS和安卓是為了麵向手機和物聯網。一個替換是用方舟編譯器取代JAVA虛擬機,用靜態編譯取代動態解釋,以適應各種硬件平台。華為的鴻蒙在構想上抄襲穀歌的Fuchsia。Fuchsia是穀歌的下一代操作係統,采用微內核架構,用於嵌入式係統。Fuchsia的設計目標之一是可運行在眾多的設備上。Fuchsia的部分代碼已經放在Github上。

安卓係統使用JAVA為編程語言。為了跨硬件操作,使用了虛擬機,將各種硬件抽象成Java的運行環境。JAVA運行在虛擬機上,虛擬機負責連接具體硬件。因此安卓可以跨硬件平台。虛擬機裏有一個解釋器,將JAVA語言逐句翻譯成硬件懂得的機器碼,這個動態解釋會降低代碼的運行速度。方舟編譯器替代了Java虛擬機,在應用打包的時候就將所有程序,包括靜態和動態的部分直接編譯成機器指令。為了在不同硬件上工作,方舟編譯器需要先編譯出對應所有硬件平台的二進製文件,之後在具體手機安裝的時候選擇針對當前硬件平台的二進製裝入手機。因此會出現安裝包容量大的問題(因為安裝包包含所有硬件平台的二進製文件)。據估計,方舟編譯器重新編譯的安裝包要比安卓大兩三倍,手機安裝後的機器碼要大0.5-1倍。帶來的問題是占用存貯和內存顯著增加。用戶下載安裝包會消耗越來越多的時間和流量。這是一個用空間換取運行速度的策略。華為宣稱這個替代能夠讓係統響應快44%。

方舟編譯器有嚴重的生態問題。首先華為必須將編譯器代碼開源,並讓應用開發商免費下載,開發商將其應用用方舟重新編譯,並再次對安卓的所有版本和所有硬件平台進行測試,改正Bug後,重新發布,在所有應用商店上架。這個工作必須讓各個應用開發商自己做,華為不能代勞,因為每個應用都要有開發者的簽名。這基本上是一個不可能完成的任務。你可以在愛國情懷下忽悠國內的部分開發者,但不可能讓全球的應用開發者來跟隨。大多數的應用開發商是中小規模的,甚至是個人,怎麽可能有時間有精力開發編譯測試如此多的版本?

當一個新手機硬件發布後,方舟編譯器必須及時跟進,並將新版本推送給所有的開發商。隨著越來越多新硬件的發布,方舟編譯出的安裝包勢必會越來越大。用戶下載安裝包會消耗越來越多時間和流量。同時開發商編譯時間會越來越長,需要測試的硬件會越來越多。

大多數應用開放商不跟隨,又不能覆蓋所有的手機硬件,上下流生態環境都打不開,生態係統培養不出來,這樣的手機係統隻能哄蒙小粉紅。

這麽大的麻煩換取的是最多44%的係統響應速度。而且這個提升是在實驗室特定條件下測得的。體現在用戶感知上,很可能要大打折扣。根據用戶感知測試,一般人對在0.2秒以下的速度提升沒有感知。在這個區間,人的感知已經達到飽和。換句話說,把響應速度從0.2秒提升到0.1秒,人感覺不到區別。目前中高端安卓手機的性能瓶頸不是CPU的處理速度。所以對這個方舟的優化,用戶很可能無感。

總之,鴻蒙缺少革命性的創新,隻是拚湊式的工程集成。以增大存儲空間和應用開發的不便換取有限的速度提升,很難贏得生態係統。胎死腹中,是必然命運。現在已經過了餘大嘴宣稱的最晚的麵市時間,鴻蒙仍舊神龍首尾兩不見。不過鴻蒙的使命就是哄蒙。所以這個名字還會存在,繼續哄蒙。

[ 打印 ]
閱讀 ()評論 (37)
評論
instein 回複 悄悄話 不懂你的專業,但讀懂了你主題。謝謝你的介紹。
胡同巷 回複 悄悄話 不會超過300年??
無法弄 回複 悄悄話 “鴻蒙”這名字就烏裏烏塗的,起這個名就不吉利。怎麽也不找個算命的相相?
wudaniang 回複 悄悄話 其實華為做得好不錯!就是牛逼吹得讓你煩!和厲害國一個德性
wudaniang 回複 悄悄話 博主是專業人士!分析得有理有據!
行道堂主 回複 悄悄話 我早說了,鴻=大,蒙=忽悠,鴻蒙=大忽悠。
選民 回複 悄悄話 "至於中國其他廠商,十之八九是不願意用鴻蒙的,硬件已經弄不過華為了,軟件在交給他家,還玩什麽.除非華為把鴻蒙的控製權徹底放棄,這就要看華為有沒有這個魄力了"

你說的對, 如果有選擇, 他們是會用 Android 而非鴻蒙的. 但是在沒有選擇的情況下呢?難道也自己從頭開發一個新的操作係統嗎?為了華為手機能生存, 華為放棄鴻蒙的控製權也是完全可能的.
思蘆 回複 悄悄話 回複 '選民' 的評論 : 鴻蒙不能代替穀歌的GMS, 穀歌移動服務。兩碼事。
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 :
“老美還是有辦法的,比如不讓你access他的服務器,即使你有權使用,但拿不到代碼也沒用”
除非穀歌不對世界上開發者開放,所以不存在這種可能性。
一師是個好學校 回複 悄悄話 現在華為離開西方技術真的還不行。任正非都在說“如果華為還可以活下去。。。”雲雲。。。
選民 回複 悄悄話 "先看看開源的license,你就知道安卓不會被禁用。"

我的意思是禁用 Android Service, 和其他 Google 的Apps, 否則華為也不需要自己開發鴻蒙了.
下城學文 回複 悄悄話 自從華為有鴻蒙備胎時,我就仿佛看到了老任頭,坐在城頭哆哆嗦嗦的彈古琴。
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 :
是你搞混了吧。
華為的方舟不必須支持安卓。
和堅持三七二十四的人沒法討論。
cn_abcd 回複 悄悄話 回複 '思蘆' 的評論 :
老美還是有辦法的,比如不讓你access他的服務器,即使你有權使用,但拿不到代碼也沒用
封泥巴 回複 悄悄話 隻有一種可能性就是做成閉環的生態象IOS那樣,同時把Android的APP頻移過來。
思蘆 回複 悄悄話 回複 '選民' 的評論 :先看看開源的license,你就知道安卓不會被禁用。
cn_abcd 回複 悄悄話 回複 '思蘆' 的評論 :
方舟最初是為了android的,沒錯吧?那麽方舟是android的一部分嗎?

你是不是把編譯器和執行搞混了?
cn_abcd 回複 悄悄話 回複 '選民' 的評論 :
Android本身是不可能被禁用的,他的license已經規定死了.至於中國其他廠商,十之八九是不願意用鴻蒙的,硬件已經弄不過華為了,軟件在交給他家,還玩什麽.除非華為把鴻蒙的控製權徹底放棄,這就要看華為有沒有這個魄力了
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 :
不是有人定義。你回去看看架構。
大部分操作係統(安卓、華為的鴻蒙)都把編譯器歸為操作係統。尤其是為了跨平台操作。
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 : “再加一句,OS的開放不是一個必要條件,如果鴻蒙需要在不同手機廠商上得到部署,那麽開放開源是有幫助的,不然對App開發,幾乎沒有任何益處.

至於其他手機廠商會不會用鴻蒙,我看希望不大,但華為自己在做硬件的時候,別人是不會來用他的OS的”

華為為了生態係統,必須開源開放。這個討論沒什麽意義。華為承諾,如果鴻蒙能麵市,一定開源。
選民 回複 悄悄話 "至於其他手機廠商會不會用鴻蒙,我看希望不大,但華為自己在做硬件的時候,別人是不會來用他的OS的"

正常情況下你是對的, 但是現在的情況是中國的所有手機廠商都麵臨著某一天被美國禁用 Android 的可能. 我想這些廠商不會不做最壞的打算, 在準備第二手. 采用鴻蒙也許是最小成本的方案.
思蘆 回複 悄悄話 回複 '選民' 的評論 :
"象 Apple 一樣, 華為也可以有大量的第三方應用開發商, 在早期華為可以資助,扶持第三方應用開發商. 華為有巨大的中國市為其優勢.
塞班 和 PalmOS 都早於 iOS, 所以先發並不保證優勢, 關鍵在於市場的接受程度."

真正的智能手機領域,iPhone是最早的。
不認為大多數第三方應用開發商會支持華為。
按照華為定義,鴻蒙永遠是備胎,沒有人會為備胎開發應用。
cn_abcd 回複 悄悄話 回複 '選民' 的評論 :
主要還是有多少流量,多少利益,以及需要多少時間和精力去兼容.如果華為能夠提供IDE,一次編譯,產生包括Android和鴻蒙兩套執行碼,那麽開發者的成本就會小很多,就有動力去開發兼容產品
qdknight 回複 悄悄話 老任已經徹底暴露,在二胖手裏不再有太大的利用價值,快成二胖的夜壺了,慢慢地就會被扔掉了。
cn_abcd 回複 悄悄話 思蘆2020-05-13 14:29:53

現在有人定義Compiler是OS的一部分的?在Linux上都有多個C編譯器,在Android上也有不同編譯器,更不用說Windows了

隻有蘋果除外,他家是徹底封閉式的

和你說了,App開發者完全可以針對不同OS編譯不同下載包,這也是可以自動化的,可能會編譯時間較長,但對終端用戶來說,下載的可能更小(相對現在Android)
cn_abcd 回複 悄悄話 再加一句,OS的開放不是一個必要條件,如果鴻蒙需要在不同手機廠商上得到部署,那麽開放開源是有幫助的,不然對App開發,幾乎沒有任何益處.

至於其他手機廠商會不會用鴻蒙,我看希望不大,但華為自己在做硬件的時候,別人是不會來用他的OS的
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 :
編譯器是操作係統的一部分。
Windows不是跨平台操作係統。
下載包太大有流量和下載時間的問題,下載後要占用存儲。區別下載管理和實現都有困難,為了有限的速度優化,不值得。綜合起來,沒有優勢。
選民 回複 悄悄話 “華為是後來者,如果做封閉的操作係統,就是自己玩,沒有生態係統,沒有應用開發商支持,和塞班和palm OS一樣,死路一條。”

象 Apple 一樣, 華為也可以有大量的第三方應用開發商, 在早期華為可以資助,扶持第三方應用開發商. 華為有巨大的中國市為其優勢.

塞班 和 PalmOS 都早於 iOS, 所以先發並不保證優勢, 關鍵在於市場的接受程度.
catoyy 回複 悄悄話 很有見地
選民 回複 悄悄話 @lostman 我理解作者本意是進行一個有關技術和市場嚴肅討論. 你這樣充滿個人情緒的罵街, 就不要到這裏來摻和了.
cn_abcd 回複 悄悄話 思蘆 發表評論於 2020-05-13 14:07:07

====================================
1.你說的是操作係統開放,不是編譯係統開放,這是兩回事
2.如果OS能夠兼容硬件並提供API,上層應用不用直接支持硬件,Windows,和DirectX非常好的示範
3.你說的是下載時間而不是存儲空間的問題,這個可以由AppStore解決,AppStore可以存儲不同版本,根據用戶機型和OS下載,當然如果App能夠和不同OS兼容,那麽這根本就不是問題
思蘆 回複 悄悄話 回複 '選民' 的評論 : 蘋果是封閉的,隻需要支持蘋果的手機硬件。想想安卓在多少種類型的手機上跑。蘋果有先發優勢,封閉仍然能占領市場,華為是後來者,如果做封閉的操作係統,就是自己玩,沒有生態係統,沒有應用開發商支持,和塞班和palm OS一樣,死路一條。
lostman 回複 悄悄話 華為有什麽創造力,本來就是偷技術起家,三陪行賄狼性占有市場,壓榨貪財不要命碼農降低成本,996997007違背人性,這公司還是死了好,一群愛國蠢貨叫智商稅
選民 回複 悄悄話 "隨著越來越多新硬件的發布,方舟編譯出的安裝包勢必會越來越大。用戶下載安裝包會消耗越來越多時間和流量。同時開發商編譯時間會越來越長,需要測試的硬件會越來越多。"

為什麽需要對所有新硬件都兼容呢?至少在初期隻需要兼容華為的新硬件就夠了. 就象 iOS 和 iOS Apps 隻在 iPhone 硬件上運行一樣, 鴻蒙和鴻蒙 Apps 隻需要在華為硬件上運行就夠了.
思蘆 回複 悄悄話 回複 'cn_abcd' 的評論 :
1.想讓你的操作係統有生態環境,讓上下遊都跟隨,你必須開放。穀歌就是用開放的係統,以後來者超越了蘋果,贏得90%的市場。
2.編程代碼人懂但機器不懂,需要編譯器為每個硬件翻譯成機器碼。
3.所有的代碼都占用存貯和內存,隻是華為的方舟因為是打包前靜態編譯,需要對所有的硬件類型都先編譯好再下載,其體積是其他OS的數倍。
cn_abcd 回複 悄悄話 1.為什麽需要編譯器代碼開放,你用編譯器時需要看Source Code?
2.你為windows寫的代碼需要在每種硬件/OS都重新編譯?
3.至於空間占用,安卓也是把常用代碼在運行時編譯成二進製放在"硬盤"上,同樣占用空間,隻是你不知道而已
格利 回複 悄悄話 我之前有過看你前麵那篇文章,雖不懂很專業的手機知識,但佩服你對這方麵的專業分析。我會繼續關注。
[1]
[2]
[尾頁]
登錄後才可評論.