Задать вопрос
@Hitriy_Zhuk

Как выбрать архитектуру приложения с учетом необходимости использования нескольких языков программирования?

Требуется создать приложение так чтобы можно было использовать в при его расширении несколько языков(С/С++, Common Lisp, Prolog, Python и возможно, но не обязательно java), ну то есть как единую среду.
Ну да, что-бы как MSIL у майкрософт, примерно.

Можно, и это наверное правильно, организовать всё взаимодействие через Си.
Но тогда не ясно как правильно, вот с си в си всё ясно, и пока в нём лисп или скажем питон - тоже. Но если я хочу скажем вызвать из питона лисп код(или наоборот), когда они оба в приложении? Поднимать сервера на локалхосте, добавлять функционал в си, или как?

Дайте пожалуйста совет или скажите что про подобное можно почитать.
  • Вопрос задан
  • 580 просмотров
Подписаться 2 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 5
longclaps
@longclaps
Притчу о Вавилонской башне почитайте.
Ответ написан
Комментировать
@MadridianFox
Web-программист, многостаночник
Вы не сказали что за приложение. Если это сервер, то делайте микросервисы на чём хотите. Если более-менее нагруженное десктопное приложение - то ищите способы вызвать код на каждом языке из, допустим, С/С++. Если не сильно требовательное к производительности десктопное приложение, то можно через stdout или соккеты данные передавать между несколькими приложениями на разных языках (как это в AI Russian Cup делается).
Ответ написан
bullock
@bullock
Можете писать на многих языках, а для связи между компонентами использовать что то вроде nsq или Redis, а вот тут есть RPC реализация для редиса.
Ответ написан
Комментировать
@potan
Функциональный программист
Самый правильный способ взаимодействия в этом случае - микросервисы обменивающиеся сообщаниями. Надо поискать подходящий брокер сообшений, поддерживаемый нужными языками, и строить инфраструктуру на его базе. Классическое решение - RabbitMQ, но может быть будет удобнее взять MQTT или что-то, что уже есть под рукой (в .net вроде какой-то есть).
Ответ написан
Комментировать
Jeer
@Jeer
уверенный пользователь
Посмотрите в сторону SOA - сервис ориентированная архитектура. На основе wcf. У сервиса (на любом языке) есть интерфейс, на его основе генерируются контракты (xml), которые подключаются в другие языки и получаются вызывы методы сторонних сервисов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы