2010-05-01 15 views
9

En un sistema que requiere el uso de varios idiomas, ¿cuáles son las mejores prácticas para garantizar una arquitectura débilmente acoplada cuando el código llama al código de otro idioma?¿Cuáles son las mejores prácticas en la interoperabilidad del lenguaje?

+0

Wiki de la comunidad IMO, ya que no hay una respuesta correcta. Buena pregunta sin embargo. –

+0

@mus nah, está bien ser una pregunta que no sea de CW. – Earlz

+0

Es un sustantivo, yo. Por lo tanto, "prácticas". –

Respuesta

1

Hmm, esta es una pregunta bastante difícil, la respuesta iMHO depende de la forma en que los idiomas interactúan. Puede utilizar algún tipo de interfaz de paso de mensajes, cola de mensajes o incluso algún middleware, p. CORBA o incluso tal vez servicios web. P.ej. para los lenguajes JVM puede usar las funciones de interoperabilidad proporcionadas por la máquina virtual (motor de scripting). Tal vez si proporciona más detalles, nosotros u otra persona obtendremos alguna solución utilizable.

2

Escriba la API en C. Muchos lenguajes modernos pueden llamar o incorporar código C con poca o ninguna molestia. C++, Vala, Python, D, C#, Many Lisps, VB y Java, por nombrar algunos, permiten el uso del código C en bibliotecas compartidas. De esta manera, siempre y cuando tengas una interfaz sensata, puedes llamar fácilmente a tu código desde la mayoría de los idiomas. C es el denominador común más bajo de la informática moderna.

+0

Eso es lo mismo que usar interoperabilidad de código de byte java para lenguajes basados ​​en JVM. –

+0

Y CLR para lenguajes .NET. –

+0

tal vez te refieres a CIL. http://en.wikipedia.org/wiki/Common_Intermediate_Language –

0

IMO, no hay forma de responder a esta pregunta antes de poder al menos explicar el "sistema" mencionado en la pregunta. ¿El "sistema" es, por ejemplo, un teléfono móvil, una sola máquina, una máquina virtual como JVM o CLR, un grupo de servidores en una LAN o distribuidos por Internet? En diferentes tipos de "sistemas", existen diferentes soluciones óptimas, ¿podrías elaborar un poco más?

Cuestiones relacionadas