Vert.x и Node.js в некоторых отношениях похожи, а в других — различны. Одно из таких отличий состоит в том, что Node.js позволяет писать код только на JavaScript, тогда как Vert.x позволяет кодировать на Java, Groovy, JavaScript, Ruby и, в конечном итоге, по мере того, как команда Vert.x расширяет поддержку, планируется следующее: Clojure, Скала и Питон. Так что же произойдет, если у вас будет такая же хорошая или лучшая производительность (очень простой тест — посмотрите комментарии!), Чем у Node.js, и вы сможете написать свой код на предпочитаемом вами языке, который может быть или не быть JavaScript?
Одним из преимуществ Vert.x является то, что он использует JVM, которая на протяжении многих лет была хорошо настроена высококвалифицированными специалистами. Конечно, один из аргументов использования JVM заключается в том, что люди могут не доверять текущему смотрителю Java, то есть Oracle . С Node.js, хотя вы в настоящее время зависите от Google V8 (и вы могли бы также аргументировать Joyent ). В любом случае существует корпоративная поддержка V8 и Java, поэтому для каждого проекта действительно нет никакого способа обойти это.
В идеале, возможность кодировать на предпочитаемом вами языке (или смешивать и сочетать) и использовать зрелые библиотеки для JVM — большая победа для некоторых разработчиков. Но Node.js быстро созревает и имеет несколько надежных библиотек ( Express , Socket.io и Mongoose — три, которые сразу приходят мне в голову, и их больше).
Что меня сразу поразило, так это то, что использование большего количества ядер на вашем сервере очень просто с Vert.x, вот такую команду вы можете использовать:
vertx run server.js -instances 4
Посмотрите на этом посте от Тима Фокса на Vert.x группы Google в отношении модели параллелизма. Теперь ознакомьтесь с моей статьей о создании кластерного сервера ATOM с Node.js. Кроме того, кластеризация на Node.js в настоящее время находится на экспериментальной стадии, как отмечено в их документах.
Тим Фокс упоминает в другой теме : «Кроме того, vert.x масштабируется гораздо легче, чем node.js. Например, если я создам простой веб-сервер, он будет масштабироваться по всем доступным ядрам, просто указав параметр командной строки -instances (см. Главную страницу веб-сайта). С помощью node.js вы должны вручную запустить N экземпляров, а затем реализовать связующий код (кластерный модуль), чтобы обрабатывать запросы между экземплярами ».
Вот еще один интересный тимбит от Тима: «Как упоминалось выше, одно из преимуществ vert.x перед node.js состоит в том, что он не заставляет вас запускать все в цикле событий, поэтому вы можете с легкостью использовать устаревшие блокирующие API (например, JDBC). ). Вы не можете сделать это с узлом afaik.
Работая как с Vert.x, так и с Node.js, я обнаружил, что создание проекта быстрее встраивается в Node.js вместе с немного более простой отладкой. С Vert.x вы можете смешать больше частей, смотрите мой пост здесь . Со временем, хотя все станет легче . Прямо сейчас вы найдете больше статей и книг для Node.js.
Это только вершина айсберга, конечно. Каждый проект относительно молодой, но в настоящее время привлекает большое внимание. Независимо от того, какой из них вы выберете, лучше всего то, что проекты такого рода сейчас открывают новые возможности для создания новых приложений в будущем. Как разработчики, мы выигрываем в любом случае. Нужно иметь в виду, что нужно использовать правильный инструмент для работы. Мне нравятся оба этих проекта, и я буду внимательно следить за ними.