Было бы возможно интегрировать Python (и/или Perl) и Ruby? Я посмотрел на http://www.goto.info.waseda.ac.jp/~fukusima/ruby/python/doc/ и http://code.google.com/p/ruby-perl/, но они оба кажутся довольно устаревшими.
Кто-то генерировал интерфейс Ruby для API Python C?
Править: Python может быть интегрирован со многими другими языками согласно http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages. Однако тот список не включает Ruby.
Интеграция динамических языков - одна из целей проекта Parrot . Это виртуальная машина, на которую нацелены компиляторы динамического языка. После компиляции на ту же виртуальную машину вы должны иметь возможность использовать форму «объекта» на любом из языков, независимо от источника объекта.
Однако на данный момент проблема заключается в стабилизации виртуальной машины и доработке компиляторов, которые в основном выполняются. Однако так было долгое время. :)
Возможно, но не очень практично. Было бы значительно проще переносить любые необходимые модули с одного на другой, чем встраивать один из интерпретаторов в другой.
Если вам абсолютно необходимо использовать оба языка в проекте, лучшим вариантом, вероятно, будет комбинация Jython и Jruby или IronPython и IronRuby. Я не уверен, что вы могли бы заставить их разговаривать друг с другом, но, по крайней мере, вы могли бы разместить их на одной виртуальной машине.
Для исследовательского проекта я хотел использовать великолепную библиотеку matplotlib, доступную для Python. Я также нашел ту библиотеку, о которой вы говорили. Однако это не похоже на что-то популярное и хорошо протестированное. Поэтому я решил написать скрипт, который генерирует графики на чистом Python и вызывал его из Ruby через popen. Для меня это очень хорошо сработало.
Вы можете писать расширения для Ruby на C.
Итак, если у Python есть C API, вы можете написать расширение C для Ruby, которое использует это API.
Я ничего не знаю об API Python или о том, какой размер части вы хотите интегрировать, но если он не слишком большой, это может (возможно) дать вам возможность запускать код Python из Ruby.
Моя школа (Технологический институт Джорджии) вместе с Брин Маур и Microsoft Research сейчас занимается проектом под названием Pajama . По сути, он использует Microsoft DLR, чтобы вы могли свободно смешивать Python и Ruby. Я не пробовал, но звучит довольно круто.
Вот пример с сайта. Вы входите в класс в «режиме Python». Затем он компилируется, и вы запускаете команду в «режиме Ruby».
class PythonClass:
def hello(self, value):
print "Python says hello to", value
pc = python_class().new
pc.hello "Ruby"
Результат: «Python здоровается с Ruby».
Другая стратегия, используемая Facebook, заключается в предоставлении доступа к API через Thrift . Вы определяете облегченные сервисные API, и RPC являются межпроцессными.