2010-08-30 3 views
7

Поскольку Oracle подает в суд на Google над VM Dalvik, становится ясно, что вы не можете реализовать виртуальную машину Java без лицензии от Oracle (EDIT: Matthew Flaschen указывает, что претензии Oracle могут быть недействительными. В любом случае у нас есть ситуация, где Oracle угрожает VM-реализациям.). Это может стать смертью для Open-Source-реализаций Java (например, Apache Harmony).Что такое альтернатива Java VM?

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

ВМ Я ищу, должны отвечать некоторым условиям:

  • свободные от патентообладателей вопросов
  • с открытым исходным кодом, реализация существует
  • потенциал для оптимизации/хорошая производительность
  • независимо от платформы (VM можно портировать на разные платформы без больших препятствий)

Пожалуйста, похвалы для меня.

+0

У IBM есть своя JVM, но я не знаю, удовлетворяет ли она вашим первым двум точкам (хотя я думаю, что она удовлетворяет последним двум). – FrustratedWithFormsDesigner

+3

Мне стало ясно, что вы не можете писать * любую * нетривиальную программу (и, конечно, не виртуальную), не нарушая сотни патентов. – Ken

+0

@FrustratedWithFormsDesigner, так же как и у Microsoft, у них есть собственный JVM. –

ответ

5

LLVM - действительно хорошая оптимизирующая виртуальная машина низкого уровня. Он может поддерживать такие языки, как C и C++, и не имеет встроенной поддержки высокоуровневых функций, таких как сборка мусора.

VMKit - это реализация виртуальных машин Java и CLI поверх LLVM. Поскольку он использует Java-байт-код, это, вероятно, не поможет в патентных проблемах.

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

На динамически типизированной стороне находится Parrot.

Я фактически работаю над компилятором и виртуальной машиной для языка моего собственного дизайна, но не рассчитываю на его завершение. ;-)

Имейте в виду, что любая большая часть программного обеспечения будет нарушать многочисленные патенты, важно то, насколько хорошо они известны (и насколько владельцы патентов активно ищут нарушителей). Конечно, вся патентная система абсурдна, и нам было бы намного лучше избавиться от нее.

+0

«Это, вероятно, достаточно разный, чтобы избежать большинства известных патентов». А как насчет тысяч не известных патентов? «вся патентная система абсурдна» Я не уверен, что согласен - я считаю, что иногда полезно использовать патенты - если вы изобретаете лекарство от рака, вам должно быть разрешено его запатентовать. Но патенты не должны выдаваться за тривиальные вещи, такие как двойной щелчок. Патентная система должна быть там, но она крайне нуждается в реформах и более строгих проверках фактических инноваций. –

+1

@Mark Byers: О HLVM, я имел в виду, что большинство патентов на Java и аналогичные технологии VM (например, CLI), вероятно, не будут применяться. Конечно, это не значит, что это абсолютно безопасно, но ничего нет. Что касается патентной системы, патенты на программное обеспечение являются наиболее очевидной абсурдной частью, но я также сомневаюсь в полезности остальной системы - нет никаких доказательств того, что она принесла пользу. И если кто-то изобрел лекарство от рака, было бы неплохо, если бы он не был запатентован, потому что это было бы дешевле. Вопрос в том, что без каких-либо патентов было бы изобретено это лекарство? Никто не знает. – Zifre

+0

HLVM выглядит как отличный кандидат, попугай, как другой. Я проверю эти альтернативы немного дальше. Спасибо за ваши рекомендации. :-) – Mnementh

4

Я не думаю, что есть значительная часть программного обеспечения, свободного от патентных вопросов.

Если вы являетесь независимым разработчиком или работаете в небольшой компании, вы, вероятно, не столкнетесь напрямую с проблемами. Маловероятно, что крупные компании, имеющие патенты, пойдут после множества небольших претензий - это дорогостоящий процесс и вызывает много недовольства. SCO попробовал что-то подобное, и для них это не получилось.

Я хотел бы сосредоточиться на поиске лучшего инструмента для работы, не беспокоясь о проблемах с патентами, иначе вы никогда ничего не добьетесь.

+0

ШОС никогда не утверждала патентные претензии, только авторские права и контракт. –

Смежные вопросы