汽車行業(yè)的困局:軟件決定了生死
2021年6月10日 09:16 瀏覽:2024 收藏:1
知圈 |
進(jìn)“電子電氣群”請加微13636581676,備注架構(gòu)
最近這一年,SDV(Software Defined Vehicle,軟件定義)這個詞越來越火了,大家都在興高采烈的談著軟件如何改變汽車行業(yè),好像有了SDV之后,一切就都徹底變了。比如OEM可以靠軟件來賺錢了,整個產(chǎn)業(yè)鏈也要徹底洗牌了。咱們先不評論這些觀點(diǎn)的正確與否,畢竟尚未有結(jié)論的事情,所有人都可以發(fā)表自己的觀點(diǎn),只有當(dāng)未來已來的時候,大家才能知道哪種觀念才是最接近事實(shí)的。只是那個時候再回首已經(jīng)沒有什么意義了。
在談到SDV的時候,很多人都喜歡拿特斯拉和蘋果做比較,基本的觀點(diǎn)就是特斯拉創(chuàng)造了一種新的模式:軟件定義汽車,將傳統(tǒng)汽車的配置和性能的競爭轉(zhuǎn)變?yōu)檐浖δ艿母偁帲ㄖ悄芑妥詣玉{駛技術(shù)等。這個的確是特斯拉的一個優(yōu)勢,可是如果特斯拉連基本的汽車的屬性都做不好的話,軟件再好也是徒勞。
曾經(jīng)看到一個數(shù)據(jù):特斯拉的安全性已經(jīng)超越了很多的傳統(tǒng)豪華車。而且,在網(wǎng)絡(luò)上看到了很多用戶的評論,特斯拉的駕駛感是非常好的。這些是車輛的基本屬性,是一定要做好的。現(xiàn)在看到很多OEM,為了智能而去智能,為了先進(jìn)而去先進(jìn),就有些舍本逐末了。車輛的基本屬性都做不好,質(zhì)量問題一大堆,再智能化也是徒勞。
讓我們先回顧一下Nokia當(dāng)年的情況,在蘋果大行其道前,Nokia的Symbian系統(tǒng)是當(dāng)時的智能手機(jī)的王者,所謂的大屏手機(jī)也是Nokia率先推出的,大家可以看一下下面的這個Nokia N8的圖片,誰能說它不是智能機(jī)呢?而且Nokia也有自己的Nokia Store,可以下載各種APP。蘋果的APP Store應(yīng)該也是模仿Nokia吧。
而現(xiàn)在很多人這樣來描述Nokia倒下的過程:蘋果推出了智能手機(jī),這是Nokia所沒有的,而Nokia卻固執(zhí)己見,不愿意早做轉(zhuǎn)變,到了后來當(dāng)趨勢明確的時候已經(jīng)來不及了,從而導(dǎo)致了Nokia帝國的崩塌。
(我一直是Nokia的鐵粉,一個原因是因?yàn)镹okia的手機(jī)足夠結(jié)實(shí),而不像蘋果的手機(jī),如果你不好好保護(hù)它,就只能持續(xù)的賣腎了。)
關(guān)于Nokia手機(jī)業(yè)務(wù)的崩潰,有很多種評論,我觀點(diǎn)是Nokia輸在了操作系統(tǒng)。Symbian系統(tǒng)雖然足夠強(qiáng)大了,但是卻太復(fù)雜了,維護(hù)、擴(kuò)展和集成都成了大問題。Symbian有2000萬行(也有人說是4000萬)代碼,基本上等同于Windows XP的水平。下面引用一下我在網(wǎng)絡(luò)上找到的評論:
專家表示, 新的核心功能在Symbian上很難實(shí)現(xiàn)。諾基亞在應(yīng)對iPhone威脅時行動緩慢,Symbian改造費(fèi)時費(fèi)力是原因之一。
在縱觀塞班系統(tǒng)的整個發(fā)展軌跡時,我們可以發(fā)現(xiàn)這些發(fā)展軌跡,基本上只為功能機(jī)做出的操作系統(tǒng),所以把塞班系統(tǒng)移植到智能手機(jī)上就有些水土不服的意思了。除此之外,在智能的手機(jī)時代里,塞班系統(tǒng)也不過是做了小幅度的修改,和洗心革面的改變完全不掛鉤,在如今的智能時代,作為科技行業(yè)如果不隨應(yīng)時代的潮流和發(fā)展,最終也只能在行業(yè)的強(qiáng)大競爭壓力下被無情地淘汰。
結(jié)合我找到的其它信息,簡單的說,Symbian曾經(jīng)是不錯的,但是時代變革了,Nokia一直在試圖改進(jìn)Symbian系統(tǒng),但是它太復(fù)雜了,復(fù)雜到已經(jīng)難以大幅度修改去適應(yīng)新時代的要求了,而蘋果勝出的利器只有一個:IOS操作系統(tǒng)。IOS當(dāng)初的代碼量據(jù)說只有Symbian的十分之一左右。而性能和功能卻有過之而不及。
在一個簡潔的系統(tǒng)上進(jìn)行拓展的效率是很高的,就像一個輕裝前進(jìn)的人和一個背著100斤重物的人一樣,速度是肯定不一樣的,Nokia和蘋果的競爭是輸在速度上:蘋果作為一個后來者,可以根據(jù)最新的需求去設(shè)計一個更符合現(xiàn)代需求的操作系統(tǒng),而Nokia企圖用改造既有資產(chǎn)的方式來去面對新的挑戰(zhàn)。這就像一個汽車行業(yè)的人企圖通過在現(xiàn)有的車上添加翅膀來將其變成飛機(jī),另外一個沒有負(fù)擔(dān)的人直接從零開始設(shè)計飛機(jī)一樣,結(jié)果一定是全新設(shè)計的架構(gòu)更好,潛力更大。
為什么會有這么大差距呢?寫過代碼的人一定有這樣的經(jīng)驗(yàn):一個好的架構(gòu)能夠讓可以大幅度減少代碼行數(shù)。不好的架構(gòu),通常會讓你寫很多重復(fù)的代碼。舉個例子,當(dāng)年我曾做過一個嵌入式系統(tǒng),實(shí)現(xiàn)一些簡單的功能,最初想偷懶,所以就試圖移植一個別人已經(jīng)寫好的操作系統(tǒng)放進(jìn)去,結(jié)果研究了一個星期,還是沒有跑起來。
因?yàn)槟莻€系統(tǒng)雖然強(qiáng)大,但是太復(fù)雜了,最后我失去了耐心,自己設(shè)計了一個只有幾百行的小系統(tǒng),可是卻好用的很,那個程序一直被用了十幾年,后來接手的人基本上都可以快速進(jìn)行功能的拓展。舉這個例子只是為了說明一個問題:不論一個系統(tǒng)多么好,看上去多么完美,如果不合適現(xiàn)在的情況,就只能廢棄。沒有最好的系統(tǒng),只有最合適的系統(tǒng)。
再來看一個數(shù)據(jù):華為擁有1100億行源代碼,谷歌只有22億行。
看到這個數(shù)據(jù)應(yīng)該明白了為什么華為的人那么辛苦,而谷歌的人可以活的那么灑脫了吧。雖然,他們處在兩個不同的行業(yè),可是谷歌創(chuàng)造了那么多的東西,僅僅一個Android系統(tǒng)就是無數(shù)國人艱苦努力而無法企及的,如果不是有極其高明的架構(gòu)設(shè)計,谷歌的代碼量絕對要上一個數(shù)量級的。
代碼量絕對不是越多越好。人類的腦子是有極限的,代碼過多只會讓他們思維混亂、效率降低。所以很多老代碼(英文俗稱Legacy Code)最后的下場都是被刪掉重寫,就是因?yàn)楣芾怼⒕S護(hù)它們的代價,甚至要高于重新實(shí)現(xiàn)。這些Legacy Code對公司其實(shí)是負(fù)資產(chǎn):雖然部分還在使用,但是沒人敢改,沒人去改,沒人能改。當(dāng)一個系統(tǒng)復(fù)雜到無人能夠理解其全部內(nèi)容的時候,就是應(yīng)該去推倒重來的時候了。
讓我們回到汽車行業(yè),據(jù)說新的寶馬X5里面有3億行的代碼。而特斯拉只有一千萬行的代碼。這個數(shù)字可能不夠準(zhǔn)確,但是應(yīng)該差的不多。
現(xiàn)在的BCM的代碼一般在50萬行左右,寶馬X5車上的類似的控制器一般可以達(dá)到5、60個左右,也就是要有3千萬行的代碼,再加上自動駕駛(幾千萬行???)和多媒體主機(jī)(一億行左右?)等,有個兩億行左右肯定沒有問題的。為什么會有這么多的代碼呢?先看一下下面的AUTOSAR的軟件架構(gòu)。其實(shí),真正對控制有作用的只有Application Layer。
其他的RTE及以下層都是其輔助作用的,不論你要實(shí)現(xiàn)多少Application層的功能,下面的那些基礎(chǔ)設(shè)施都是差不多的。這就造成了一個問題,控制器數(shù)量越多,軟件行數(shù)也越多。而軟件行業(yè)里面人工費(fèi)用是主要的,行數(shù)越多,成本也就越高。設(shè)想一下,如果車上只有幾個控制器的話,是不是軟件成本就大幅度降低了呢?這也就是為什么現(xiàn)在有了域控制器的原因——集中將Application放到一起,降低軟件的開發(fā)工作量。可是,如果下面的ECU和執(zhí)行器還是要遵循AUTOSAR這個標(biāo)準(zhǔn)的時候,其實(shí)是無法大幅度減少代碼量的。
這就是特斯拉不用AUTOSAR的原因:他們的操作系統(tǒng)都是自己設(shè)計的。
我一直對AUTOSAR持有保留意見:對于大眾這樣體量的OEM來說,AUTOSAR的確可以減少開發(fā)工作量,但是對于大多數(shù)的小OEM來說,成本上未必劃算。
軟件行業(yè)絕對不是一個看苦勞的行業(yè),無論你寫了多少代碼,如果這些代碼的效率不高,那就是對這個系統(tǒng)的傷害,而且你可能越勤奮對整個組織的傷害越大。這也是我不同意996做法的原因,如果沒有好的上層架構(gòu)設(shè)計,底層的程序員越勤奮,系統(tǒng)中無效的代碼就越多,你的整個系統(tǒng)的效率與可擴(kuò)展性就會越差。上層架構(gòu)直接決定了整體實(shí)力。與其讓程序員們每天加班,還不如讓他們多一些時間思考帶來的收益更大!
說了這么多背景,其實(shí)就想告訴大家下面這幾個觀點(diǎn):
1. 靠從供應(yīng)商那里采購控制器來拼湊出電子電氣架構(gòu)的時代已經(jīng)過去了,因?yàn)楝F(xiàn)在的系統(tǒng)已經(jīng)復(fù)雜到無法通過簡單的疊加和整合來實(shí)現(xiàn)了。疊加的結(jié)果就是成本高,維護(hù)難,更新速度慢。與其努力改善城中村的設(shè)施,不如推倒重建。
2. 主機(jī)廠不懂軟件的話,就只能繼續(xù)維持著很低的利潤率,跟著別人的屁股后面喝湯了,亦或徹底出局。
3. SDV的目的不是為了通過軟件賺錢,而是決定了生死:Software determine who lives and who dies.
4. 這是一個程序員改變行業(yè)和世界的時代。
技術(shù)鄰APP
工程師必備
-
項(xiàng)目客服
-
培訓(xùn)客服
-
平臺客服