Tengo una herramienta de migración de base de datos Java de código abierto (http://www.liquibase.org) que estoy considerando transferir a .Net.JVM/CLR Opciones de idioma compatibles con la fuente
La mayoría de la herramienta (al menos desde el punto de vista de la complejidad) tiene lógica como "si está agregando una clave principal y la base de datos es Oracle use este SQL. Si la base de datos es MySQL use este SQL. es nombrado y la base de datos es Postgres usa este SQL ".
Podría bifurcar la base de código Java y encubrirla (de forma manual y/o automática), pero a medida que entren actualizaciones y correcciones de errores a la lógica anterior, no quiero tener que aplicarla a ambas versiones. Lo que me gustaría hacer es mover toda esa lógica a una forma que las versiones de Java y .Net puedan compilar y usar ingenuamente.
El código que intento convertir no contiene ningún uso avanzado de la biblioteca (JDBC, System.out, etc.) que varíe significativamente de Java a .Net, así que no creo que sea un problema (en lo peor se puede diseñar alrededor).
Así que lo que estoy buscando es:
- Un lenguaje en el que puedo código partes comunes de mi aplicación y compilarlo en clases utilizables por las lenguas "estándar" en la plataforma de destino
- no añade ningún requisito de tiempo de ejecución al sistema
- Nada tan extraño que ahuyenta a los posibles contribuyentes
I kN Tanto Python como Ruby tienen implementaciones para JVM y CLR. ¿Qué tan bien se ajustan a mis requisitos? ¿Alguien ha tenido éxito (o no ha tenido éxito) usando esta técnica para aplicaciones multiplataforma? ¿Hay alguna pregunta de la que deba preocuparme?
Creo que Fan parece ser la mejor opción. Jython en Java parece que no se ha trabajado durante un tiempo, mientras que IronRuby en CLR está en la versión 0.3. Tendré que aprender más Fan para saber si esto es lo que realmente me gustaría hacer o si es más fácil simplemente hacer el tenedor. –
La última versión de Jython fue en noviembre, y parece bastante activa, aunque estoy de acuerdo en que Fantom encaja mejor en este caso. – Yishai