華為方舟編譯器可以編譯C/C++,Java,JavaScript以及Kotlin,方舟編譯器可以說是實現了幾乎所有操作系統平臺的通用開發語言的編譯環境。
不過要強調的是方舟編譯器并沒有實現Java像C/C++一樣的靜態編譯,方舟編譯器本質上還是基于GCC的交叉編譯套件,本身還是采用的預編譯的方式,至于效率到底怎么樣,目前也只是華為官方給出了一些數據,而且我找遍了華為開發者官網也沒有找到這個工具。
安卓為什么不直接把C++作為主要開發語言
C++作為應用開發語言其實并不奇怪,在Windows上除了基于C#和.NET的WindowsForm,macOS下則是Objective-C以及Swift,C++可以實現對幾乎Linux/macOS/Windows三大平臺的應用開發,諾基亞就曾將C++作為應用開發語言,當然最終也沒能把生態搭建起來。那么作為以C/C++為核心技術棧的Google為什么不選擇C++作為Android的核心開發語言呢?主要原因還是幾點:
C++開發門檻相當高。C++是主流編程語言當中學習難度最大,學習成本最高,C++正式因為功能太強大了,一方面要兼容結構編程,又增加了面向對象編程,不夠徹底的面向對象編程語言,又要做很多C語言才能做的事,學習門檻相對就高了很多。相對應的Java卻是比較徹底的面向對象編程,學習門檻要低了很多。 C++代碼能在任何平臺下運行,不過在每個平臺都需要單獨重寫、重新編譯。這一點就相當的麻煩,Java本身就是完全跨平臺的,也是完全開源免費的,一次開發到處運行,這樣可以極大的降低研發成本。 Java擁有最豐富的開發者群體、最好的開源社區支持。不論是在美國本土,還是在其他國家,尤其是我國市場Java編程語言是行業第一大編程語言,是連續多年占據著TIOBLE編程語言榜單第一的編程語言,Java開發者群體的壯大讓Android企業在人力方面的成本大大降低,基本上內部JavaWeb或者做企業級應用的都可以輕松轉崗Android開發。
選擇開發語言的時候我相信Google是做了很大的權衡的,毫無疑問Google最重要的技術棧是C/C++,要滿足開發者群體足夠、開源免費、門檻足夠低、完全跨平臺、兼顧到性能等等眾多特點,你就會發現除了自己像蘋果或者微軟那樣做一門編程語言,也就是Java最適合了。
方舟編譯器到底如何還不確定
盡管華為已經明確表示了方舟編譯器和鴻蒙OS操作系統都是開源的,不過到現在為止這兩款工具都還沒有正式開源,也許是華為還沒有完全準備好將這兩個重量級的產品推向開發者市場。
根據華為的資料顯示,方舟編譯器對于體驗的提升是非常明顯的,方舟編譯器讓系統操作流暢度提升24%,系統響應速度提升44%,第三方應用的操作流暢度提升了60%,不過目前這些數據都還是華為的實驗室數據,一旦進入真正大規模使用的階段,是不是能達到實驗室的數據,我們還不得而知。
華為方舟編譯器這事兒,如果要有機會還是的華為自己的鴻蒙操作系統上完全重新構建方舟編譯器,方舟編譯器本質上是基于GCC開發的交叉編譯器套件,而華為方舟編譯器僅僅也只是構建在Android這一個成熟的商業生態之上。從技術本質上講,華為采用的是預編譯技術,這玩意兒也不是新鮮事兒,Android也嘗試過,可是預編譯技術會產生一些大家眾所周知的后遺癥,你會產生大很多的固件文件。
華為是否能夠有足夠的號召力讓開發者來使用方舟編譯器,華為的消費者業務最終要走蘋果封閉的商業模式還是Android開放的商業模式,目前華為選擇了后者,可是華為自己也做手機,怎么處理和其他廠商的關系,這幾年華為懟天懟地懟友商,不管是誰都要噴上幾句,尤其是三星和小米,那么華為如何和這些廠商相處。
本文為字節跳動簽約作者EmacserVimer悟空問答原創文章,未經允許轉載、抄襲必究!