Задать вопрос

Почему не все серверы пишутся на Node js?

Есть Node JS.
Но если он есть, на нем все возможно, и в добавок он соображает быстрее того же Java, то почему еще существуют другие server side решения в мире веб разработки?

Традиции, привычки и необходимость поддерживать существующие проекты не в счет. Мне интересно, почему новые проекты пишутся не всегда на Node js?
  • Вопрос задан
  • 10768 просмотров
Подписаться 7 Оценить 4 комментария
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
1. Потому, что он подходит не для всех задач Что можно написать на Node.js?
2. Потому, что не для всех приемлем JavaScript, люди так привязаны к синтаксису
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
1. Принципиальных качественных преимуществ у node.js перед остальными языками нет, как впрочем и недостатков. Просто yet another язык со своими особенностями. Соответственно если в вопросе заменить node.js на php/ruby/python итд - ничего не изменится.
Вопрос по сути абстрактный "почему все не перешли на язык %%%%%"

2. Ответ на абстрактный вопрос:
а) Потому что существует огромное количество legacy кода который нужно поддерживать. Работы по поддержке и развитию существующего кода на порядок больше чем написания с нуля нового
б) Потому что у разработчиков есть свой стек любимых технологий, изменять который без явных экономических причин основная масса не готова
в) Потому что умные технические менеджеры выбирают стек технологий проекта исходя из имеющихся под рукой разработчиков и легкости поиска и заменимости оных.

UPD
hbrmdc
У NodeJS есть уникальные и очень весомые преимущества, которых нет ни у одного другого языка. Например то, что это JS, и, следовательно, нет необходимости разучивать лишние языки - можно весь webapp писать на js.
Личные предпочтения обоснованные привычками - это не имеющий значения аргумент в данном вопросе.

1) Есть отличия, да. Только не те о которых Вы пишите. То что это "JS" вообще ни на что не влияет.
JS хорошо знают фронтендщики - а кто пустит фронтэндщика к внутренней архитектуре? Там подход совершенно другой нужен, другие навыки, другое понимание как это все работает. Просто пересадить человека с фронта на бек - нельзя.

На самом деле основные отличия другие:
Постоянно живущий процесс, фактическая однопоточность. В зависимости от задачи - это может быть и плюсом и минусом. Условно для какого нибудь сокет-сервера - плюс (активно используем на живых проектах). Для middleware - я бы подумал. Для нагруженного сервиса с расчетами - точно нет.

2) Личные предпочтения обоснованные привычками это основной аргумент.
Я вот умею в php, умею в ноду, умею в еще десяток умных слов.
Мне нужна новая команда на новый проект.
Я открываю hh и что я вижу: node.js 279 резюме из которых половина фронтэндщики.
PHP - 9613 резюме. Даже если 90% разработчиков PHP на hh - уроды которых к коду нельзя подпускать на пушечный выстрел - останется все равно в 3 раза больше чем есть node.js.
Собственно на этом выбор и закончен.

На малопопулярных языках пишут в случаях:
a) это мелкий сервис с неявными перспективами который можно переписать за неделю
б) это проект "для души" разработчика.

Получается замкнутый круг на самом деле.
Менеджер смотрит резюме, резюме на node.js нет =>
Менеджер не начнет проект на node.js =>
Не возникнет вакансия на node.js =>
Разработчик анализируя вакансии не увидит вакансий на node.js =>
Разработчик будет учить что то другое =>
Менеджер смотрит резюме, резюме на node.js нет...

Переломить ситуацию могут только очень крупные игроки обладающие возможностями формирования рынка (например Apple и Swift), и то не со 100% гарантией (samsung&c и Tizen)
Ответ написан
mannaro
@mannaro
Умею профессионально гуглить
Есть Ассемблер.
Но если он есть, на нем все возможно, и в добавок он соображает быстрее того же C++, то почему еще существуют другие решения в мире софтовой разработки?

Традиции, привычки и необходимость поддерживать существующие проекты не в счет. Мне интересно, почему новые проекты пишутся не всегда на ассемблере?
Ответ написан
un1t
@un1t
Язык "на любителя", если не сказать грубее, платформа сырая, библиотек мало, фреймворков полноценных нет, производительность низкая. Писать асинхронную лапшу на js удовольствие сомнительное, специальных средств поддерживающих асинхронность в языке нет. Единственный плюс ноды, что на ней хорошо собирать статику - всякие гранты, галпы, но это для верстальщиков больше чем для разработчиков. Я вот наоборот не понимаю мотивацию людей, которые пишут на ноде веб проекты. Нода подходит только для написания промежуточных звеньев между бакендом и фронтэндом, которая особо ничего не далает и не имеет сложной логики, а только делает несколько запросов в бакенд и выдает их на фронт. И даже в этом случае я бы предпочел другое решение.
Ответ написан
@thingInSelf
Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go»
Ответ написан
Комментировать
@nagibator8000
node.js это как PHP, только для серверов, также одна архитектура на все.
Ответ написан
@mafusailmagoga
Есть Node JS.


Все ваши рассуждения можно относительно еще пары десятков технологий повторить.
А почему не они, почему именно Нода должна быть единственным инструментом?

Потому что ЛИЧНО ВАМ нравится?

Так ЛИЧНО У ВАС она вполне может быть ЕДИНСТВЕННЫМ инструментом - это ТОЛЬКО ОТ ВАС зависит.
Ответ написан
Комментировать
rutaka_n
@rutaka_n
softwere engineer
IMHO везде гда хорош nodejs, erlang справится еще лучше и имеет более богатый бекграунд.
для всего остального есть golang, ruby, php, python, java etc
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы