Я хочу использовать потоки и возможности параллелизма языка Go в моем проекте Ruby on Rails. У меня есть несколько альтернатив, один из них - jRuby. Но мне не нравится Java (личное предпочтение). Я слышал, что Go Lang - отличная замена Java. Его еще быстрее & безопаснее, чем Java. Я видел людей, сравнивающих его скорость с C++, поскольку часть его части находится в самой Ассамблее. Люди могут даже написать полный веб-сервер, такой как Apache, с нуля в Go.Перейти параллелизм в Ruby
То, что я действительно планирую, это: все материалы низкого уровня в Go и его остальном Ruby on Rails. Я все еще хочу иметь легкость развития, которую может предложить RoR.
Вы должны написать Ruby Interpreter в языке Go с нуля. Стандартная МРТ написана на C/C++. jRuby написан на Java. Для вас потребуется много работы, чтобы изобрести это в Go. –
@QQQ Могу ли я не запускать оба языка одновременно на моем сервере? И создать своего рода мост для общения между Go и Ruby? – LoveDogzzZZ
В качестве альтернативы вы можете запустить несколько подпроцессов Ruby и связаться с ними по межпроцессорной связи (stdin/stdout, unix-сокеты и т. Д.). Однако, похоже, что вам действительно нужно обратное - приложение Ruby on Rails, в котором есть возможность разговаривать по каналу IPC с процессом Go, который выполняет все низкоуровневые вещи. Например, хотите вызвать функцию Go из Ruby? Запишите аргументы и уникальный «идентификатор вызова» на канал, а затем, когда функция Go вернется, напишите возвращаемые значения вместе с тем же идентификатором вызова, чтобы Ruby знал, какая функция только что вернулась. – joshlf