Каковы будущие платформы Scala, к которым люди должны быть готовы? - PullRequest
15 голосов
/ 08 июля 2010

В настоящее время Scala работает только на JVM с устаревшей реализацией для CLR.

Но в настоящее время есть некоторые голоса, что Microsoft заинтересована в финансировании современного порта Scala для .NET.

Учитывая отсутствие какого-либо плана или недосмотра со стороны Oracle, что делать с Java / JVM / экосистемой, как разработчик Scala может быть подготовлен к тому, что в итоге не останется достойной платформы для запуска Scala?

Существуют ли какие-либо планы по созданию какой-либо "независимой" реализации виртуальной машины Scala в будущем, которая отображает функцию Scala на некоторый байт-код / ​​виртуальную машину вместо того, чтобы жить со всеми этими устаревшими ошибками в текущих реализациях виртуальной машины (никаких обобщений ковариантные массивы, странные аннотации, никакие хвостовые вызовы и т. д.)?

Ответы [ 3 ]

18 голосов
/ 08 июля 2010

Вот еще один взгляд на ВМ:

Хотя на самом деле не самый яркий момент для Sun, если вы посмотрите всю картину, наложение лицензии GPL на JDK / связанные с ней вещи фактически привело к этой замечательной ситуации, когда вся платформа JVM полностью независима от Oracle. Я имею в виду, что виртуальная машина не не привязана к Java, сборщики мусора не привязаны к Java и, что самое важное, программисты на Java на самом деле не привязаны к Java и, следовательно, к Oracle.

Как программист на Java, я бы сказал, что мы победили - если Oracle решит отказаться от всего в мире Java в надежде на большую прибыль, мы можем просто взять виртуальную машину и современный язык, такой как Scala, и позволить Ларри Эллисону плыть до заката на его яхте для нас все равно.

10 голосов
/ 08 июля 2010

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

Если будут реализации Scala на других платформах, таких как CLR или LLVM, то программы, написанные для текущей Java-ориентированной реализации Scala, не будут автоматически совместимы с этими другими реализациями (если только эти реализации не будут иметь поддерживать классы, доступные в Java).

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

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

5 голосов
/ 09 июля 2010

Я не буду сильно беспокоиться о смерти JVM из-за неправильного управления Oracle, как сказал Эско.

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

Scala компилируется в байт-код и была сконструирована с учетом JVM человеком (Odersky)кто написал компилятор Java (1.1-1.4).Scala является единственным языком, написанным кем-то, обладающим глубокими знаниями о JVM, и мы на самом деле не знаем, как трудно ему было это сделать.

Я переживаю, что со временем популярность JVM сократится из-за того, что это не многоязычная платформа с самого начала.

...