Предполагая, что команда разработчиков одинаково удобна в написании Javascript на стороне сервера, поскольку они с Python и Twisted, когда Node.js будет более подходящим, чем Twisted (и наоборот)?
Каковы варианты использования Node.js vs Twisted?
Ответ 1
Twisted более зрелый - он был вокруг в течение долгого времени и имеет так много колоколов и свистов, что делает вашу голову вращением (реализация самых причудливых протоколов, интеграция реактора с большим разнообразием других событий петли и т.д.).
Node.js считается быстрее (я сам его не оценил) и, возможно, проще использовать (если вам не нужны ни один из дополнительных колоколов и свисток) именно потому, что эти дополнительные функции не существуют (вид как Tornado в мире Python - опять же, я никогда не измерял относительную производительность).
Итак, я бы абсолютно использовал Twisted, если мне нужны были какие-либо дополнительные функции или хотелось почувствовать себя на более твердой почве, используя более зрелый пакет. Если эти соображения не применяются, но главная производительность - это ключевая цель проекта, я бы написал простой тест (но по-прежнему представляющий хотя бы одну или две ключевые ситуации, связанные с производительностью для моего фактического проекта) в Twisted, Node.js и Tornado, и сделайте много тщательных измерений, прежде чем я решаю, в каком направлении идти в целом. "Дополнительные функции" (сторонние расширения и стандартная библиотека) для Python и Javascript на стороне сервера также намного более многочисленны, и это может быть ключевым фактором, если такие проекты необходимы для проекта.
Наконец, если ни одна из этих проблем не относится к конкретному сценарию приложения, попросите группу разработчиков голосовать относительно относительной простоты трех кандидатов (Twisted, Node.js, Tornado) с точки зрения простоты и знакомости - любой из они, вероятно, будут в порядке, возможно, выберете то, что большинство из них наиболее удобно!
Ответ 2
По состоянию на 2012 год Node.js оказалась быстрой, масштабируемой, зрелой и широко используемой платформой. Райан Дал, создатель Node.js цитат:
В наши дни Node используется большим количеством стартапов и созданных компаний по всему миру, от Воксера и Убер до Walmart и Microsoft. Можно с уверенностью сказать, что миллиарды запросов проходят через Node каждый день. Поскольку все больше и больше людей приходят в проект, расширяются и расширяются доступные сторонние модули и расширения в качестве. Хотя я был когда-то зарезервирован, чтобы рекомендовать его для критически важных приложений, я от всей души рекомендую Node для даже самого требовательного сервера системы.
Более формально преимущества Node можно классифицировать как:
-
Отличное сообщество: Можно сказать, что никакая другая платформа не получила такой общности в течение столь короткого периода времени, в ней есть сотни участников и тысячи наблюдателей в GitHub. используется гигантами, такими как Yahoo! (Проект Манхэттена), e-bay, LinkedIn, Microsoft и Voxer.
-
NPM: Несмотря на наличие относительно небольшого ядра, Node имеет множество пакетов, доступных для расширения своей функциональности во всем, что вы можете рассмотреть! Все это автоматизировано и активно развивается и расширяется, подумайте о PyPI (pip).
-
Масштабируемость и скорость: Node архитектура и однопоточная природа обеспечивают высокую масштабируемость и скорость. Специально после выпуска 0.8 его скорость стала действительно быстрее (тесты), что может быть подтверждено множеством крупных компаний, использующих Node. Ядро V8 также постоянно улучшается благодаря текущей войне с браузером.
-
JavaScript: Основной язык Node (JS) лучше подходит для использования на стороне сервера, особенно лямбда-функции, динамические объекты и простая сериализация JSON - это основные моменты JS, которые действительно подходят хорошо в тех случаях, когда скорость и масштабируемость учитываются. (Python имеет все они, но они действительно лучше и мощнее в JS).
-
Развертывание. Благодаря широкому использованию множество действительно хороших сайтов предоставляют инструменты для простого и мощного развертывания Node, включая: Heroku, Joyent, Cloud9 и многое другое.
Следовательно, Node кажется более мощным и с более светлым будущим, поэтому, если нет каких-либо ограничений для его использования (например, существующий код, серверы, возможности команды), рекомендуется для любого нового проекта совместной работы, скорости и масштабируемости.