К вышеперечисленным словам добавлю использование Node.js-a фронтендерами для фронтенда. Как? В основном,
Bower +
Grunt. И тут есть много плюсов:
- ты быстро ставишь нужный тебе фреймворк/библиотеку и включаешь его в проект одной командой
- ты проверяшь свой код линтерами/хинтерами на предмет ошибок/утечек/соблюдения стиля
- ты собираешь SPA, лендинг или статический/динамический сайт с разного рода оптимизациями/кешированием и пр.
В общем, для меня Node.js - не просто новый фреймворк и доступ к большому количеству оперсорсных библиотек, снижающих траты на разработку (при правильном подходе и вкуренных методиках), но и, своего рода, workflow для фронтенда.
Из минусов отмечу, что периодически возникают проблемы с теми-же "сторонними" билблиотеками. Например, NoSQL дата базы (я работал с MongoDB через
Mongoose), под которые удобно кодить на бэкенде и фронтенде, имеют существенные ограничения на выборку, а для некоторых задач
sequalize недостаточно гибок (и асинхронный стиль кодинга под ноду тяжелее воспринимается и поддерживается, нежели привычные транзакции напрямую в БД). В общем, многое упирается в архитектуру серверного приложения на ноде и потенциал используемых зависимостей.