Поскольку Oracle предъявляет иск Google на виртуальную машину Dalvik, становится ясно, что вы не можете внедрить Java VM без лицензии от Oracle (РЕДАКТИРОВАТЬ: Мэтью Флэшен указывает, что претензии Oracle может быть недопустимым. В любом случае, в настоящее время у нас есть ситуация, когда Oracle угрожает виртуальным реализациям.) Это может стать смертью для Open-Source-реализаций Java (например, Apache Harmony ).
Я не хочу обсуждать влияние или легитимность этого иска. но как Java-программист я хочу более глубоко изучить альтернативы, чтобы быть готовым к каждому случаю. Поскольку я вижу создание компилятора как незначительную проблему, мой основной интерес представляют альтернативные виртуальные реализации, которые служат той же цели, что и JVM.
Виртуальная машина, которую я ищу, должна удовлетворять некоторым условиям:
Пожалуйста, добавьте некоторые рекомендации для я.
LLVM — действительно хорошая оптимизирующая низкоуровневая виртуальная машина. Он может поддерживать такие языки, как C и C++, и не имеет встроенной поддержки функций высокого уровня, таких как сборка мусора.
VMKit — это реализация виртуальных машин Java и CLI поверх LLVM. Поскольку он использует байт-код Java, это, вероятно, не поможет с проблемами патента.
HLVM — еще одна интересная виртуальная машина высокого уровня, построенная поверх LLVM. Вероятно, он достаточно отличается, чтобы избежать большинства известных патентов, но в основном он ориентирован на численные вычисления и функциональное программирование.
На динамически типизированной стороне есть Parrot.
На самом деле я работаю над компилятором и виртуальной машиной для языка собственной разработки, но не рассчитываю, что это когда-нибудь будет закончено. ;-)
Имейте в виду, что любая большая часть программного обеспечения будет нарушать многочисленные патенты, важно то, насколько они известны (и насколько активно владельцы патентов ищут нарушителей). Конечно, вся патентная система абсурдна, и лучше бы мы от нее избавились.
Я не думаю, что существует какое-либо значимое программное обеспечение, свободное от патентных проблем.
Если вы независимый разработчик или работаете в небольшой компании, вы, вероятно, не столкнетесь с проблемами напрямую. Маловероятно, что крупные компании, владеющие патентами, будут предъявлять множество мелких требований — это дорогостоящий процесс и вызывает много недовольства. SCO попробовала что-то подобное, но у них это не очень хорошо вышло.
Я бы сосредоточился на поиске лучшего инструмента для работы, не слишком беспокоясь о проблемах с патентами, иначе вы никогда ничего не добьетесь.