Что означает Scala будущая платформа, к которой люди должны быть готовы?
В настоящий момент Scala работает только на JVM, с устаревшей реализацией для CLR.
Но на данный момент есть некоторые голоса, что Microsoft заинтересована в финансировании обновленного порта Scala для .NET.
Учитывая отсутствие какого-либо плана или надзора на стороне Oracle, что делать с Java/JVM/экосистемой, как можно подготовить разработчика Scala, чтобы в конце концов не осталось достойной платформы для запуска Scala on?
Существуют ли какие-либо планы по созданию "независимой" реализации Scala VM в будущем, которая отображает функцию Scala для некоторого байт-кода/виртуальной машины, вместо того, чтобы жить со всеми этими устаревшими ошибками в текущих реализациях VM (нет дженериков, ковариантных массивов, странных аннотаций, хвостовых вызовов и т.д.)?
Ответы
Ответ 1
Вот еще один взгляд на виртуальную машину:
Пока не самый яркий момент Солнца, если вы посмотрите на всю картину, похлопывание лицензии GPL на JDK/связанные вещи действительно вызвало эту замечательную ситуацию, когда вся платформа JVM полностью независима от Oracle. Я имею в виду, что виртуальная машина не привязана к Java, сборщики мусора не привязаны к Java, и, что самое главное, Java-программисты не привязаны к Java и, следовательно, Oracle.
Как программист на Java, я бы сказал, что мы выиграли - если Oracle решит отказаться от всего в мире Java в надежде на получение большей прибыли, мы сможем просто захватить виртуальную машину и современный язык, например Scala, и позволить Ларри Эллисону отплыть к закату на его яхте для всего, что нам нужно.
Ответ 2
Текущая реализация Scala очень сосредоточена на JVM. Значительная часть библиотеки Scala зависит от классов в стандартной библиотеке Java, а классы Java также доступны для пользовательских программ.
Если на других платформах, таких как CLR или LLVM, будут реализованы реализации Scala, тогда программы, написанные для текущей реализации Java w50, не будут автоматически совместимы с этими другими реализациями (если эти реализации не будут реализованы на большие длины для поддержки классов, доступных на Java).
Я согласен с Рэндалом в том, что JVM в ближайшее время не исчезнет; это, вероятно, самая успешная и широко распространенная платформа виртуальных машин, развернутая на миллиардах устройств, от смарт-карт и карманных устройств до крупнейших серверов. Фактически, язык программирования Java может исчезнуть намного раньше, чем сам JVM. Нет оснований опасаться за исчезновение JVM в обозримом будущем.
И даже в маловероятном случае, что он делает - действительно ли это имеет значение? Вы по-прежнему сможете запрограммировать свой любимый язык программирования Scala на одной из других платформ.
Ответ 3
Я не слишком беспокоюсь о смерти JVM из-за плохого управления Oracle, как сказал Эско.
На данный момент я беспокоюсь о JVM по-другому: JVM не был создан как платформа для нескольких языков. Большинство языков, работающих на JVM, используют динамическую типизацию и в какой-то мере освобождаются от сложности компиляции в байт-код.
Scala компилируется в байт-код и был сконструирован с учетом JVM человеком (Odersky), который написал компилятор Java (1.1-1.4). Scala - это единственный язык, написанный кем-то с глубоким знанием JVM, и мы действительно не знаем, как ему было тяжело это делать.
Я волнуюсь, что JVM в конечном итоге будет уменьшаться в популярности из-за того, что это не многоязычная платформа для начала.