本篇為KMP技術(shù)的技術(shù)及實(shí)踐系列文章的第二篇。在這篇技術(shù)文章中我們會(huì)以百人移動(dòng)研發(fā)團(tuán)隊(duì)的工程化視角,探討Kotlin Multiplatform的核心技術(shù)及優(yōu)化。UEz28資訊網(wǎng)——每日最新資訊28at.com
Kotlin: 語(yǔ)言與編譯
人們?cè)谟米匀徽Z(yǔ)言溝通時(shí),內(nèi)容可以不明確,甚至小的錯(cuò)誤,而聽(tīng)的人仍然可能理解說(shuō)的人想要說(shuō)的內(nèi)容。但電腦不同,電腦“只做被告知要做的事”,無(wú)法理解程式設(shè)計(jì)者想要寫(xiě)的程式。語(yǔ)言的定義、編程以及編程輸入的組合需完整定義程式執(zhí)行時(shí)的外部特性。 而程序語(yǔ)言正是人類和計(jì)算機(jī)的橋梁, 順著這個(gè)邏輯,我們把我們?nèi)粘5木幊坦ぷ骱鸵恍┖诵母拍罱Y(jié)合起來(lái)。UEz28資訊網(wǎng)——每日最新資訊28at.com
- 人控制計(jì)算機(jī),所以編程語(yǔ)言是給人寫(xiě)的。那么自然就要符合人類的思維習(xí)慣,例如面向?qū)ο螅瘮?shù)式編程等。這也是為什么有那么多的編程語(yǔ)言的不同之處。
- 計(jì)算機(jī)世界只有0/1,而交付0/1對(duì)人類來(lái)說(shuō)在現(xiàn)代實(shí)在太困難了,所以我們發(fā)明了了指令集架構(gòu),發(fā)明了匯編,發(fā)明了各種例如JVM的字節(jié)碼。而這些也就是計(jì)算機(jī)所需要的輸入。
- 人類的思維和計(jì)算機(jī)的所需要的輸入之間有一個(gè)翻譯的過(guò)程,這個(gè)過(guò)程就是編譯器。編譯器的目的就是把人類的思維翻譯成不同level的計(jì)算機(jī)所需要的輸入。
- 我們通過(guò)編程語(yǔ)言與計(jì)算機(jī)溝通,那么自然希望這個(gè)語(yǔ)言是一種擴(kuò)展性強(qiáng)的,讓我們不被語(yǔ)言語(yǔ)法本身所限制,通常對(duì)人類抽象層面越高的語(yǔ)言他們的表達(dá)能力反而更弱,這也是插件系統(tǒng)的重要性所在。插件主要的作用就是在不增加原語(yǔ)言復(fù)雜度的前提下擴(kuò)展出更強(qiáng)的能力,當(dāng)然并不是所有的語(yǔ)言都通過(guò)插件體系來(lái)實(shí)現(xiàn)核心能力(例如類似的compose&swiftui,前者是通過(guò)插件生態(tài)擴(kuò)展能力,后者(雖然在swift5.9 之后支持了macro的插件體系)依然是通過(guò)為語(yǔ)言本身增加更多的表達(dá)能力來(lái)達(dá)成。
接下來(lái)我們就結(jié)合KMP從編程語(yǔ)言的角度來(lái)刨析實(shí)際工程化中的實(shí)踐。UEz28資訊網(wǎng)——每日最新資訊28at.com
語(yǔ)言(language)
默認(rèn)可見(jiàn)性為public
本文鏈接:http://www.tebozhan.com/showinfo-26-97283-0.html工程化視角的 Kotlin Multiplatform 核心解讀及優(yōu)化
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: ECMAScript 2024 正式發(fā)布,新特性一覽!
下一篇: 從此告別程序崩潰:Python 中的異常處理秘籍
標(biāo)簽: