создание библиотеки на одном языке с интерфейсами для всего остального - PullRequest
0 голосов
/ 22 августа 2010

Наш бизнес в настоящее время вращается вокруг разработки библиотеки, которая может использоваться в широком спектре отраслей (настольные, мобильные, веб и встроенные).На данный момент у нас есть клиенты только в мире настольных компьютеров и в Интернете, и мы уже видим, что нам в основном приходится дублировать наш код на нескольких языках (c #, java и c ++).Как это обычно делается в других компаниях, действительно ли нам нужно соглашаться на то, чтобы наше промежуточное ПО было написано на нескольких языках для удовлетворения самых разных отраслей.так хорошо, как мы ожидали, и это не казалось хорошим и профессиональным решением.

У всех есть идеи, как сохранить ядро ​​на одном языке, но разработать интерфейсы на разных языках с учетом различных отраслей промышленности..

Ответы [ 4 ]

1 голос
/ 22 августа 2010

Ах, я забыл, может быть, вы можете использовать это: ICE (http://www.zeroc.com/overview.html). Вероятно, это более легкий уровень взаимодействия, который вы можете использовать для чистого общения java, c ++, c #, python и некоторых других У них даже есть какое-то решение для встраивания ...

1 голос
/ 22 августа 2010

У меня не так много идей, когда речь заходит о промышленности, но я думаю, что проблема похожа на другие, не столь строгие сценарии.Неясно также, что вы подразумеваете под "промежуточным программным обеспечением".В любом случае, я бы посоветовал вам не дублировать код и, при необходимости, иметь несколько интерфейсов для других языков.

В идеальном сценарии было бы очень удобно иметь один изолированный процесс с логикой вашего приложения, написанный на любом удобном для вас языке, и иметь этот процесс для взаимодействия с использованием некоторых механизмов взаимодействия между процессами (например, каналы, сокеты, разделяемая память, файлы) с тонкими клиентскими библиотеками, которые могут использоваться клиентами на других языках.Таким образом, вы вынуждены создать очень чистый протокол связи / использования и иметь некоторое разделение интересов (потому что вся связь должна быть сериализована);вы получаете надежность (фатальная ошибка в вашем процессе приложения или в вашем клиенте не обязательно означает сбой в другом), и вам не нужно использовать механизмы ffi, а скорее такие вещи, как сокеты и каналы.Более того, если вы решите опубликовать свой комм.По протоколу сторонние разработчики могут создавать оболочки на своем экзотическом языке, не требующем прямой ссылки / импорта на ваши компоненты разработки.

Этот вид парадигмы успешно используется на протяжении многих лет в мире Unix итакие программы, как Mathematica.Аналогичным образом разработчики java сделали плагин java работать вне браузера, в отдельном процессе, чтобы уменьшить сложность взаимодействия.

0 голосов
/ 22 августа 2010

Могу взглянуть на язык Haxe. Он «компилируется» с дюжиной других языков.

https://haxe.org/

0 голосов
/ 22 августа 2010

Выбор стандартов общего знаменателя: REST или SOAP / XML по HTTP могут использоваться многими языками, включая Java и C #.

Вы будете обременены тяжелыми стандартами WS- * и большимзадержка в сети, но если ваша цель - совместимость, это один из способов ее достижения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...