什麼是 native 程式語言?

+1 投票
最新提問 5月 19, 2015 用戶: 小小魚 (130 分)  
常常聽到這個語言是 native, 這是什麼意思?

3 個回答

0 投票
最新回答 5月 19, 2015 用戶: shadowknows (250 分)  

Native 中文翻譯成 "原生",所以你應該也常聽到 "原生型應用" (Native App) 或者 "原生語言" 之類的。

主要就是說這個語言是某個平台原本的語言,例如在 iOS 平台,Object-C 或者 Swift 就會被歸類成 native 語言,如果用 Object-C 或者 Swift 開發的 app 就會被說成 native app。

那為何會有非 native 語言呢?因為有些廠商會因為不同需求開發出不同的開發環境,例如 CoronaSDK 就為了跨平台以及便利性開發出用 Lua 程式語言的開發環境可以做出 iOS 的程式。那麼如果用 CoronaSDK 開發出的 app 往往就叫做非原生 app,而 Lua 就不是 iOS 的 native 程式語言但卻可以開發 iOS 的程式。

0 投票
最新回答 5月 19, 2015 用戶: jason245 (140 分)  

Native 的英文就是 “天生的、本土的”:https://tw.dictionary.yahoo.com/dictionary?p=native , 當你問別人 What's your native language? 就是在問對方的母語是什麼

所以說一個平台或者作業系統的 native 程式語言就是其本身自帶、天生的程式語言。例如 iOS 就是 Objective-C, 而 Android 就是 Java.

主要還是近年來手機平台的產生,才比較多人開始用 native 跟第三方提供的開發環境來做區分. 例如可以用 html/javascript 來開發 iOS, android (好像叫做 PhoneGap)

0 投票
最新回答 5月 19, 2015 用戶: Rich Joe (360 分)  

補充一下,native 的程式一般會給人家感覺執行起來比較“快”,因為比較直接編譯的關係,可以跟平台結合最佳化。

非 native 的程式往往多包了一層,除了沒有 native 快以外,有些平台提供的功能還不一定能夠使用,也就是說能做到的事情有時候不是 native 的全部。

那麼為何有人要寫非 native 的程式呢?原因一般來說大多是為了“跨平台” 以及提供額外的功能,例如 Unity 使用 C# 語言可以跨各種平台 (iOS/Android 等等),而且提供開發 3D 遊戲的環境 。

歡迎來到全民 Coding ,有什麼問題請在這裏提問,你將會收到大家的回答。

注意:若輸入程式碼,每一行前面空 4 格(這樣格式才不會亂掉)。
...