что означает родной язык для конкретной ОС? - PullRequest
0 голосов
/ 30 апреля 2018

Что означает, что, например, Java (или Kotlin) является родным языком для разработки Android?
Что значит родной здесь? Эта концепция существует и для других операционных систем? например, у нас есть родной язык для Windows и / или Linux?

EDIT:
Я не уверен, насколько часто употребляют фразу «родной язык».
Главное, что я ищу, - это причины, которые делают язык более дружественным и чаще используются для специальной ОС.

Например, проще ли вызывать API операционной системы с одного или нескольких конкретных языков? (если да, почему?)
Существует ли компилятор для компиляции с промежуточным набором инструкций (например, байтовыми кодами Java) и с набором инструкций из нескольких аппаратных средств?

В качестве другого примера у нас есть несколько языков, которые компилируются в байт-коды Java, почему они не используются широко для разработки Android?

Ответы [ 4 ]

0 голосов
/ 08 июля 2019

В самом строгом смысле родной язык - это просто еще один термин для скомпилированного языка , то есть языков, которые продукт не нужно интерпретировать во время выполнения. Например. C, C ++. Я думаю, что его происхождение тесно связано со словом нативный код .

Теперь в Android , его API верхнего уровня написан на Java. В качестве языка, на котором написаны компоненты ОС, Java часто называют native .
Однако я бы не сказал, что это правильное использование. Кроме того, в Android набор инструментов для разработки на Java называется «Набор средств для разработки программного обеспечения», а то же самое для разработки на C / C ++ - «Набор средств для разработки».

0 голосов
/ 30 апреля 2018

Программирование низкого уровня

В отличие от интерпретируемых языков, таких как PHP, или языков байт-кода, таких как Java, и частей c #, низкоуровневое программирование означает компиляцию для очень близкого программирования для инструкций процессора, таких как ассемблер и машинный код.

Нативные приложения для Android

В отличие от Android-приложений, нативное Android-приложение содержит код, очень близкий к оборудованию устройства. Родные приложения для Android обычно не содержат только байт-код Java. Они используют библиотеки или приложения, близкие к оборудованию устройства.

Существует два критерия для решения, должно ли приложение Android быть нативным:

  1. Аппаратное обеспечение должно контролироваться напрямую
  2. Производительность приложения важна (поскольку прямые инструкции контроллера могут быть оптимизированы и не требуют дополнительных затрат для интерпретации).
0 голосов
/ 30 апреля 2018

Что означает, что, например, Java (или Kotlin) является родным языком для разработки Android?

С технической точки зрения это ничего не значит.

Что значит родной здесь?

Это зависит от того, что вы подразумеваете под «здесь». Вы утверждаете, что «родной» используется таким образом, но вы не предлагаете никаких четких примеров / ссылок.

Если бы у нас было несколько примеров того, о чем вы говорили, мы, вероятно, могли бы выяснить, что автор пытался сказать. Но это не обязательно делает авторское использование слова "родной" правильным или общепринятым.

Существует ли эта концепция и для других операционных систем? Например, есть ли у нас родной язык для Windows и / или Linux?

Нет.

И я не уверен, что он существует и в Android! Конечно, я бы не согласился с тем, что обычным явлением называют Java или Kotlin «родным языком» для платформы Android.


В настоящее время принято использовать слово «родной» в Java для Android, Linux, Windows и других платформ ОС. «Собственная библиотека» - это библиотека (или dll), которая реализована на некотором (неуказанном!) Языке программирования и скомпилирована в набор аппаратных инструкций платформы, на которой работает JVM. Он состоит из инструкций "родного кода" ... а не байт-кодов. Исходным языком для нативной библиотеки является , обычно C или C ++, но теоретически это может быть любой язык, который может быть скомпилирован в нативный код и который предлагает вызывающую последовательность, которая совместима (например, с JNI). , (Обратите внимание, что JNI означает Java Собственный Интерфейс ...)

0 голосов
/ 30 апреля 2018

Короче говоря для понимания общей концепции -

Нативный означает язык для конкретной платформы.

Тем не менее, при разработке для Android или для IOS (ОС Apple), в частности, каждый из них имеет свои собственные родные языки (C является родным языком для Android [Kotlin основан на Java, а Java основан на C] и Objective-C для IOS)

С другой стороны, есть языки, которые не являются родными. Например, React native разрабатывается для платформ Android и IOS. В этих случаях представления являются не нативными элементами, а скорее элементами веб-форм (JS, CSS и т. Д.).

Родные языки в большинстве случаев будут обладать лучшими возможностями и производительностью.

Выводы - родной означает язык для конкретной платформы (официальный язык платформы, который вы можете сказать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...