Каковы лучшие практики взаимодействия языков?
В системе, которая требует использования нескольких языков, каковы наилучшие практики для обеспечения слабосвязанной архитектуры, когда код вызывает код другого языка?
3 ответа
Напишите API на C. Многие современные языки могут вызывать или включать C-код практически без хлопот. C++, Vala, Python, D, C#, многие Lisps, VB и Java, и это лишь некоторые из них, позволяют использовать код C в разделяемых библиотеках. Таким образом, если у вас есть разумный интерфейс, вы можете легко вызывать свой код практически на любом языке. C является наименьшим общим знаменателем современных вычислений.
Хм, это довольно сложный вопрос, ответ iMHO зависит от того, как взаимодействуют языки. Вы можете использовать какой-то интерфейс передачи сообщений, очередь сообщений или даже какое-то промежуточное программное обеспечение, например CORBA или даже веб-сервисы. Например, для языков JVM вы можете использовать функции взаимодействия, предоставляемые виртуальной машиной (механизм сценариев). Может быть, если вы предоставите более подробную информацию, мы или кто-то еще найдем какое-то полезное решение.
ИМО, нет способа ответить на этот вопрос, прежде чем вы сможете хотя бы подробно остановиться на "системе", упомянутой в вопросе. Является ли, например, "система" мобильным телефоном, отдельной машиной, виртуальной машиной, такой как JVM или CLR, группой серверов в локальной сети или через Интернет? В разных "системах" существуют разные оптимальные решения, поэтому не могли бы вы рассказать подробнее?