Что такое Java?

Вопрос может сначала звучать глупо, но, возможно, это совсем не так.

  • Java не является языком Java, большинство людей это знают, поскольку вы можете запрограммировать Java с множество других langauges, например Scala или Groovy

  • Java не является конкретной реализацией VM, поскольку есть другая реализация, а не только SUN, Microsoft или IBM.

  • Java не является базой классов, так как многие реализации добавляют или оставляют классы по своему усмотрению.

  • Даже не требуется использовать общую спецификацию VM или даже байт-код Java, см. Dalvik VM

  • Возможно, это всего лишь набор принципов, которыми они делят, что бы это ни было. Это определенно не "пишите один раз, бегите везде", потому что это не так, по крайней мере, для Dalvik и Microsoft VM/J #.

Итак, вопрос в том, что такое Java? Существует ли даже точное определение?

ИЗМЕНИТЬ Многие люди, похоже, придерживаются мнения, что java означает только язык программирования. Таким образом, мобильный телефон с поддержкой java должен быть телефоном, который позволяет пользователю использовать программы, состоящие из файлов классов, созданных только с использованием языка java. Если бы это было так, то Java java-среда разработки /java для среды разработки /java была бы создана только для java, а другие языки jvm имели бы свой собственный xvm/xre/xdk.

Ответы

Ответ 1

Java - это язык Java. Groovy, Scala и другие компилируются до эквивалентного байт-кода, который может работать на JVM, но они не являются Java.

Формально я бы сказал, что Java является JLS.

Ответ 2

Java - это язык программирования. Синтаксическая часть.

Ответ 3

По-моему, это язык. Я не думаю, что люди говорят, что они программируют Java с помощью Groovy, или если они это делают, они неточны.

Ответ 4

Строго говоря, Java - это просто язык программирования. Но это язык программирования, который включает в себя многие, многие стандарты: например, многие API и спецификации JVM. Вот почему SUN и другие ссылаются на него как на платформу.

Другие языки, такие как Scala, Ruby и т.д., являются не Java, они просто компилируются в байт-код, который выполняется на виртуальной машине Java. Они просто строятся поверх платформы Java, но сами не являются Java.

JVM имеет высокую стандартизацию, и многие компании могут предлагать свои собственные реализации для своих аппаратных платформ. Это тоже не Java, а просто реализация части платформы Java.

Спецификация Java VM на 100% стандартизирована, что обеспечивается Oracle, поскольку они требуют авторских прав на Java. Вот почему Android (Dalvik VM) в настоящее время является предметом судебного разбирательства Oracle против Google.

Ответ 5

Собственно, это зависит от контекста, в котором используется слово. Все это: синтаксис, технология, структура, язык программирования.

В качестве побочного решения Oracle отвечает на этот вопрос следующим образом: Что такое Java?

Ответ 6

Вы не можете сказать, что Scala - это Java, больше, чем вы можете сказать, что вилка - это гребень, потому что вы, как правило, чистите ее волосами. Или, если я могу поднять классическую аналогию, гвозди с помощью гаечного ключа не делают его молотком.

Вы можете сделать компилятор, который компилирует COBOL на С++, если вы хотите, но это не значит, что COBOL - это С++.

Многие языки имеют машинный код x86 в качестве своего компилируемого языка, так это значит, что все они одинаковы?

Не имеет значения, могут ли другие языки компилироваться в байт-код JVM, и не имеет значения, что вы можете скомпилировать Java в конкретный машинный код архитектуры. JVM по-прежнему является платформой Java; другие языки просто обмениваются им, и Java просто может быть скомпилирована для целей, отличных от байт-кода JVM. Точно так же, как вилка, возможно, сможет расчесывать волосы в зависимости от того, как вы справляетесь с этим.

Я думаю, что это глупый вопрос (и не имеет ничего общего с программированием). Возможно ли, чтобы кто-то действовал как философ эпохи Возрождения и пытался утверждать, что ваша вилка на самом деле гребень, потому что вы никогда не использовали ее как вилку и всегда использовали ее только в своих волосах? Конечно, продолжайте и спорите, и, может быть, у вас даже будет точка, но, надеюсь, никто не тратит время на это. Это всего лишь игра семантики, и как только вы начинаете спорить о семантике, все проигрывают.

(редактировать) Ба! Я просто понял, что спорю о семантике!

Ответ 7

Большинство людей рассматривают Java как язык программирования (как определено Спецификацией языка Java). Но есть много других, которые разделили его на язык программирования, различные виртуальные машины и большую экосистему.

Существуют также юридические определения того, что можно назвать Java (например, товарный знак), но я думаю, что сейчас я оставлю это один: -)