Я думаю, что выбор языка реализации зависит от вашего приложения.
Если вы подключены к сети, Ruby должен работать нормально.Возможно, вам будет проще реализовать параллельные запросы, используя схему реактора с EventMachine .Вы можете отправлять HTTP-запросы, используя класс EventMachine :: Protocols :: HttpClient .
EventMachine.run {
http = EventMachine::Protocols::HttpClient.request(
:host => server,
:port => 80,
:request => "/index.xml"
)
http.callback {|response|
# process response
}
}
Таким образом, вам не нужно беспокоиться о параллелизме и всех связанных с этим сложностях, но выбудет иметь высокую пропускную способность, так как вы можете делать большое количество одновременных запросов.
Если вы ограничены процессором, это не сработает.Если вы тратите большую часть своего времени на обработку каналов XML и не ожидаете ввода-вывода для получения канала или вставки в базу данных, вам придется запустить Ruby на JRuby или запустить несколько процессов Ruby для достижения хорошего использования многоядерных процессоров.
В случае с привязкой к ЦП я бы использовал Clojure, поскольку, если вы действительно привязаны к ЦП, выполнение обработки в Clojure будет проще выполнять параллельно и просто в любом случае быстрее.