2010-08-30 26 views
7

Cuando Oracle demanda a Google por la máquina virtual Dalvik queda claro que no puede implementar una máquina virtual Java sin una licencia de Oracle (EDIT: Matthew Flaschen señala que las afirmaciones de Oracle pueden no ser válidas. De todos modos, actualmente tenemos una situación, donde Oracle amenaza a las implementaciones de VM). Eso puede convertirse en la muerte de las implementaciones de código abierto de Java (como Apache Harmony).¿Qué son alternativas a Java VM?

No quiero discutir el impacto o la legitimación de esta demanda. pero como programador de Java, quiero profundizar en las alternativas, estar preparado para cada caso. Como veo la creación de un compilador como un problema menor, mi principal interés son las implementaciones de VM alternativas, que tienen un propósito similar al de la JVM.

El VM que estoy buscando, debe cumplir algunas condiciones:

  • libres de patentes-temas
  • existe Una de código abierto de la implementación
  • potencial de optimizaciones de rendimiento/buena
  • plataforma independiente (la máquina virtual puede trasladarse a diferentes plataformas sin mayores obstáculos)

Agregue un re recomendaciones para mí.

+0

IBM tiene su propia JVM, pero no sé si satisface sus dos primeros puntos (aunque creo que satisface los dos últimos). – FrustratedWithFormsDesigner

+3

Me queda claro que no se puede escribir * cualquier * programa no trivial (y ciertamente no una VM) sin violar cientos de patentes. – Ken

+0

@FrustratedWithFormsDesigner, al igual que Microsoft, tienen su propia JVM. –

Respuesta

5

LLVM es una muy buena máquina virtual de bajo nivel de optimización. Puede admitir lenguajes como C y C++, y no tiene soporte integrado para características de alto nivel como recolección de basura.

es una implementación de las máquinas virtuales Java y CLI sobre LLVM. Dado que utiliza bytecode de Java, esto probablemente no ayudaría con los problemas de patentes.

HLVM es otra interesante máquina virtual de alto nivel construida sobre LLVM. Probablemente sea lo suficientemente diferente para evitar la mayoría de las patentes conocidas, pero está principalmente dirigido a la computación numérica y la programación funcional.

En el lado escrito dinámicamente, está Parrot.

Actualmente estoy trabajando en un compilador y máquina virtual para un lenguaje de mi propio diseño, pero no cuento con que haya terminado. ;-)

Tenga en cuenta que cualquier pieza grande de software infringirá numerosas patentes, lo importante es qué tan conocidas son (y cuánto los propietarios de las patentes buscan activamente a los infractores). Por supuesto, todo el sistema de patentes es absurdo, y sería mejor que nos deshagamos de él.

+0

"Probablemente sea lo suficientemente diferente como para evitar la mayoría de las patentes conocidas" ¿Y qué hay de las miles de patentes no conocidas? "todo el sistema de patentes es absurdo". No estoy seguro de estar de acuerdo. Creo que las patentes a veces son útiles. Si inventas una cura para el cáncer, deberías poder patentarla. Pero las patentes no deben darse por cosas triviales como hacer doble clic. El sistema de patentes debe estar presente, pero necesita urgentemente una reforma y controles más estrictos sobre la innovación real. –

+1

@Mark Byers: Acerca de HLVM, quise decir que la mayoría de las patentes sobre Java y la tecnología VM similar (por ejemplo, CLI) probablemente no se apliquen. Por supuesto, eso no significa que sea completamente seguro, pero nada lo es. En cuanto al sistema de patentes, las patentes de software son la parte más obviamente absurda, pero sí cuestiono la utilidad del resto del sistema, realmente no hay evidencia de que haya hecho ningún bien. Y si alguien inventó una cura para el cáncer, sería bueno si no estuviera patentada, porque sería más barato. La pregunta es, sin patentes, ¿se habría inventado esa cura? Nadie lo sabe. – Zifre

+0

HLVM parece un gran candidato, Parrot como otro. Verificará estas alternativas un poco más. Gracias por tus recomendaciones :-) – Mnementh

4

No creo que haya ningún software importante que esté libre de problemas de patentes.

Si usted es un desarrollador independiente o trabaja para una empresa más pequeña, es probable que los problemas no le afecten directamente. Es poco probable que las grandes compañías con patentes vayan tras muchos reclamos menores: es un proceso costoso y causa mucho resentimiento. SCO intentó algo así y no funcionó demasiado bien para ellos.

Me concentraría en encontrar la mejor herramienta para el trabajo sin preocuparme demasiado por los problemas de patentes, de lo contrario nunca conseguirás nada.

+0

SCO nunca ha presentado reclamaciones de patentes, solo derechos de autor y contratos. –