В конце июня сего года Микеал Роджерс (он участвовал в работе Node.js Foundation со дня основания этой организации, а теперь покидает проект) дал интервью thenewstack.io. Тогда он сказал, что платформа Node.js обойдёт Java в течение года. Тут надо уточнить, что речь идёт о том, что число программистов, которые пишут для Node.js, превзойдёт число тех, кто пишет на Java.

image

Ресурс builtinnode.com, через неделю после публикации интервью, подготовил материал, автор которого, задавшись вопросом: «Действительно ли Node.js обойдёт Java?», проанализировал ситуацию. Представляем вашему вниманию перевод интервью и аналитической статьи и предлагаем поразмыслить о перспективах Node.js и Java.


Интервью с Микеалом Роджерсом


Начнём с самого начала. Вы не собираетесь больше участвовать в работе Node.js Foundation?

Всё верно — ухожу через несколько недель. Я был здесь с самого начала, всякое повидал. Сегодня всё в Node.js Foundation выглядит весьма прилично. Я готов перейти к чему-то новому, хотя пока не решил — что именно это будет, и где именно буду этим заниматься.

Расскажите о вашем наиболее значительном достижении в Node.js Foundation.

Полагаю, что главное моё достижение — наведение порядка в делах с форком io.js. Это было сложное время для сообщества, поворотный момент. К счастью, мы со всем этим справились, стали сильнее и организованнее. Я могу гордиться тем, что принёс в сообщество, разнородное и своеобразное, современные принципы управления

Как вы начали программировать?

Я начал программировать в 13 лет. Мне хотелось стать хакером, и я, в основном, занимался ассемблером. Это — как раз то, что нужно для того, чтобы устроить нечто вроде переполнения буфера. Учился я, разбираясь с чужим кодом. Хакерское сообщество существовало и до широкого распространения опенсорс-движения. Тогда можно было, например, отправлять патчи в списки рассылок или делиться эксплойтами по IRC.

Всё это было в штате Вашингтон, в маленьком городе около Сиэтла. В Сиэтл я переехал как только мне исполнилось 18. Работал в различных технических компаниях, в том числе — в Mozilla, где, как разработчик на Python и JavaScript, занимался проектами вроде JSBridge и Mozmill. Писал CouchDB-приложения.

Что привело вас в мир Open Source?

По мере того, как я втягивался в программирование и в IT-индустрию, было совершенно естественным примкнуть к опенсорсу. Это движение было очень похоже на мир хакеров, с которого я начинал. С начала до середины 90-х опенсорс-сообщество не отличалось особой дружелюбностью к новичкам. Если человек точно знал — что и почему он делает, он присоединялся к сообществу и участвовал в проектах. Хакеры, с другой стороны, больше напоминали кучку подростков, которые демонстрировали всем желающим свои достижения и помогали тем, кто в этом нуждался.

Теперь у меня такое ощущение, что всё стало наоборот. Хакеры ушли в подполье, а опенсорс-сообщество оказалось гораздо более открытым. Если взглянуть на то, как развиваются проекты на том же GitHub, на то, кто вкладывает в них время и силы, то окажется, что всё это предназначено для широкой аудитории, а не для некоей касты избранных. Более половины коммитов на GitHub приходит от людей, которые делают их менее пяти раз в месяц. То есть, с одной стороны, очень многие делают вклад в проекты с открытым кодом, а с другой, они не собираются посвящать этому всё своё время.

Расскажите об управлении Open Source-сообществами, и о том, почему это важно.

Всё время слышишь, как говорят о масштабировании серверов, а разговоров о масштабировании сообществ как-то маловато. Пожалуй, нет создателя проекта с открытым кодом, который не хотел бы, чтобы его разработка, что называется, «выстрелила». Однако, когда такое случается, далеко не все готовы поддерживать проект. Это и на самом деле непросто. Сначала проект требует нескольких часов в неделю, а внезапно оказывается, что объём работ вырос настолько, что для управления им может не хватить и двух штатных рабочих мест. Для того, чтобы с подобными вещами справляться, вокруг опенсорс-проектов нужно создавать сообщества, которые поддаются масштабированию, которые способны укреплять и поддерживать проект в случае его неожиданного роста. Тут нужна некая структура. Культура разработки в опенсорсе имеется, а управление — это такой подход к организации работы над проектом, который позволит ему расти и развиваться в заданном направлении и сохранять работоспособность.

Все эти идеи оказали на меня влияние благодаря моей работе в Open Source Applications Foundation. Эта организация была основана (и профинансирована) Митчем Капором, основателем Lotus Development Corp и создателем электронной таблицы Lotus 1-2-3. Цель OSAF заключалась в поддержке массового внедрения бесплатного ПО и ПО с открытым исходным кодом.

В OSAF мы всерьёз обсуждали такие темы, как ценности и стимулы, создаваемые вокруг проекта, говорили о том, куда мы направляем энергию людей, поступая так или эдак. Некоторые из старожилов оказывали сопротивление изменениям способов работы, а вот молодёжь воспринимала новшества на ура. То, что называют «проектом с открытым исходным кодом», это, на самом деле, далеко не только код, и код — далеко не главная проблема. Если взглянуть на системы и процессы как на структуры стимулирования, их можно как бы «запрограммировать» для получения определённого результата. Если получилось что-то не то, можно проанализировать события, которые привели к тому, что получилось, понять, что привело к ошибке. Как результат, можно создавать системы, нацеленные на получение нужных результатов.

Работа OSAF, в итоге, успехом не увенчалась. Есть книга «Dreaming in Code», которую написал Скотт Розенберг, посвящённая тому, как всё это было. Я начал работать в Mozilla в тот день, когда перестал сотрудничать с OSAF. Тогда уже было видно, что именно пошло не так. В конце концов Митч прекратил финансирование проекта, а я перешёл в Mozilla.

Как и когда вы занялись работой над Node.js?

Я и мой друг детства Адам Кристиан создали Windmill — опенсорсный фреймворк для тестирования, написанный на Python. Это был конкурент Selenium. Получилось очень хорошо. Даже создатель Selenium говорил, что наша разработка лучше, чем его. Это, так сказать, небольшая предыстория к последовавшим событиям. Буквально сразу после выхода Node.js, в ноябре 2009-го, мне попался твит, в котором был вопрос о том, есть ли у кого-нибудь HTTP-прокси под Node. Ни у кого такой штуки, естественно, не было, платформе-то и нескольких дней не исполнилось. А я, в течение примерно трёх лет, занимался оптимизацией прокси для Windmill. В результате я подумал: «Будет чем занять себя на выходных». Через пару часов у меня уже был рабочий прокси. Меня буквально ошеломило то, что всё это заняло около 80 строк кода, и когда я испытал производительность нового прокси, оказалось, что она многократно превосходит то, над чем я работал годами. Прямо тогда я сказал себе: «На Python я больше не пишу — будущее за Node.js».

Создатель Node.js, Райан Даль, через какое-то время переехал в Сан-Франциско, атмосфера там способствовала быстрой и динамичной разработке API Node.js. В ходе работы были и рассуждения о том, какое сообщество нужно проекту. Я участвовал в работе над ранними элементами ядра Node, над экосистемой библиотек. То же относится и к разного рода делам, связанным с сообществом. Например, я помогал в организации конференции NodeConf, которая притягивала к себе тех, кто был занят работой над Node. Работы было много, но все мы знали, что Node непременно взлетит. Хотя, конечно, тогда мы и подумать не могли о том, что Node.js буквально обгонит Java лет за десять.

Какие технические или бизнес-задачи решает Node.js?

Количество платформ, для которых приходится вести разработку, даже в рамках одного проекта, постоянно расширяется. Если вы, скажем, создаёте некое веб-решение, у вас будет сайт, видимый пользователям. Затем же — не просто серверная часть, но набор API, дальше — мобильный клиент, настольный клиент. Возможно, в проекте понадобятся и технологии интернета вещей. Если команда невелика, сложно вести разработку для некоего количества совершенно разных окружений, но Node даёт универсальную платформу с экосистемой в полмиллиона пакетов. Это больше, чем у других платформ. Вам не нужно изобретать реализацию большинства алгоритмов — вы почти наверняка найдёте готовый пакет. Это позволяет программистам писать приложения, а не заниматься созданием инфраструктуры, на которой они будут работать. Процесс разработки становится быстрее.

Node — это огромное явление, он работает практически везде, а это уже говорит само за себя.

Что вы можете сказать о текущем состоянии проекта?

Сейчас у Node.js примерно 8 миллионов пользователей, и это показатель продолжает расти примерно на 100% в год. Мы пока не обошли Java в плане пользовательской базы, но, если рост продолжится теми же темпами, Node.js окажется впереди Java в начале лета 2018-го.

В проекте более 100 активных разработчиков. Еженедельный показатель количества коммитов непостоянен. Когда мы выпускаем новые релизы, люди активно включаются в работу или на некоторое время пресыщаются ей, но колебания не так уж и велики. Начиналось всё, до форка io.js, с трёх разработчиков, так что сейчас мы, определённо, движемся в правильном направлении.

Расскажите об участии в проекте и потенциале заработка на этом

Node.js Foundation — организация некоммерческая, поэтому о заработке на уровне опенсорсных проектов я говорить не могу. Однако, лично мне участие в подобных вещах помогло при поиске работы и при обсуждении уровня заработной платы.

Каждый, кто участвует в опенсорс-разработке, в итоге, оказывается более привлекательным, с точки зрения работодателя, разработчиком. Это, безусловно, огромное преимущество. Скажем, за профилем в том же LinkedIn может обнаружиться масса ценной общедоступной информации. Если кто-то вроде технического директора ищет сотрудников, он может, по проектам с открытым кодом, увидеть, как человек общается, как реагирует на критику своего кода, как ведёт себя, если ситуация накаляется — пытается всё уладить, или доводит до скандала вселенских масштабов.

Разработчики, делающие вклад в проекты с открытым кодом, зарабатывают больше своих коллег, не участвующих в подобных делах и работающих на таких же должностях.

Хотите сказать что-нибудь ещё?

Что мне особенно нравится в Node.js — это то, что каждый год программировать под эту платформу начинает примерно столько же людей, сколько уже ей пользуется. Тут виден постоянный приток свежей крови и новых идей. Мы постоянно работаем над тем, чтобы снизить входные барьеры, мы открываем мир программирования для тех, кто раньше не занимался разработкой ПО. Доступность Node.js постоянно повышается благодаря большому количеству новых разработчиков. В любое время примерно 50% сообщества — это люди, которые не писали не только под Node, но и с JavaScript едва знакомы. Поэтому нам нужно сделать платформу такой, чтобы к ней было просто присоединиться и начать кодить.

Мне нравится универсальность и доступность Node.js. На этой платформе можно строить решения корпоративного уровня, однако, очень интересно и то, что приносят в неё новички. Тут — искусство, наука, и безумный креатив. Ни одно другое сообщество не отличается подобной открытостью.

Обойдёт или нет?


За какой платформой будущее? Java это или Node.js? Микеал упомянул, что сейчас имеется около 8 миллионов пользователей Node.js, ежегодный рост этого показателя составляет примерно 100%. В прошлом году Node.js Foundation сообщила о 3.5 миллионах пользователей, то есть, по меньшей мере, в течение года всё происходило именно так.


Простые расчёты показывают, что в 2018-м у Node уже будет 16 миллионов пользователей. А сколько пользователей у Java?

В 2013-м компания Oracle сообщила о 9 миллионах Java-разработчиков. В 2007-м их было около 6 миллионов. Сколько их будет по итогам 2017-го? Сложно сказать.

Oracle не делала никаких заявлений на эту тему, поэтому нам остаётся лишь строить догадки. Однако, если вооружиться вышеприведёнными показателями, предположить, что число Java-разработчиков тоже растёт, окажется, что сейчас их должно быть примерно 12-14 миллионов. Опять же, всё это — очень приблизительно. Для того, чтобы разобраться в ситуации, привлечём некоторые цифры.

Индекс TIOBE — это индикатор популярности языков программирования. Популярность — важный фактор для выбора языка, и хороший показатель для сравнения платформ. Рейтинг TIOBE основан на анализе поисковых запросов с использованием более чем двух десятков поисковых систем. Фактически, на него влияет количество профессиональных разработчиков, учебных курсов и прочих материалов по языку.

Java был весьма популярным языком ещё до появления платформы Node.js. Если взглянуть на исторические показатели индекса TIOBE, видно, что Java занимал первое место далеко не раз и не два.


Индекс TIOBE

В этом году Java снова первый по популярности. А вот как менялась популярность Java с течением времени.


Популярность JAVA

Тут может возникнуть вопрос о том, почему в рейтинге нет Node.js. Дело в том, что TIOBE не считает Node самостоятельным языком программирования и учитывает эту платформу в общем разделе JavaScript.

В любом случае, индекс TIOBE говорит нам о зрелости и популярности Java. Однако, стоит учесть, например то, что PayPal и NetFlix перешли с Java на Node.js. Java вполне может быть популярной платформой, но компании готовы менять базовое ПО, если появляется что-то более привлекательное, и у Node.js есть полезные качества, ради которых и переходят на эту платформу. Здесь можно найти и другие компании, которые сделали выбор в пользу Node.

На HackerNews есть раздел со сведениями о вакансиях. Здесь можно найти инструменты для работы с этими данными. Ниже приведено сравнение вакансий, где нужно знать Node.js (синий график) и Java (чёрный). Тут показаны данные с августа 2011-го по июнь 2017-го. Это сравнение, как и предыдущее, субъективно. В нём принимаются во внимание материалы с HackerNews, но нельзя не заметить, что данные эти вполне согласуются с теми, о которых мы говорили выше.

График говорит нам, во-первых, о росте интереса к Node.js, во-вторых — о том, что эта платформа иногда обходит Java.


Node.js и Java: вакансии

Если воспользоваться обзорами Stack Overflow, можно сравнить Java и Node.js напрямую. Однако, надо учитывать, что эти данные репрезентативны лишь для пользователей Stack Overflow.

Если перейти в раздел языков программирования, мы снова будем сравнивать JavaScript и Java, так как Node.js самостоятельным языком программирования не считается. Для полноты картины следует сказать, что JavaScript здесь, в рейтинге популярности языков программирования, занимает первое место, а Java — третье. Если же посмотреть раздел с анализом популярности технологий, можно видеть исторические сведения по Java и Node.js за последние 5 лет — именно столько Stack Overflow проводит подобные исследования.

Популярность технологий по версии Stack Overflow

Популярность Node.js, с 2013-го по 2017-й, выросла с 8% до 26%. Популярность Java за тот же период упала с 42% до 39%. Здесь учитывается процент респондентов, использующих технологию.

Итоги


Если число программистов, которые пишут для платформы Node.js, продолжит расти на 100% в год, то Node, по этому показателю, обойдёт Java. Однако, число пользователей технологии — это ещё не всё. Существуют области, где JavaScript, и, в частности, Node.js, опережают Java. Есть и области (как справедливо отмечено в одном из комментариев к обзору, опубликованному на builtinnode), в применении к которым говорить о превосходстве Node.js над Java ещё очень рано. В любом случае, Node.js — весьма перспективная платформа, за развитием которой, уверены, наблюдать будет очень интересно.

Уважаемые читатели! Как вы думаете, каким окажется будущее Node.js и Java? Платформа Node.js всё-таки обойдёт Java или нет?
Поделиться с друзьями
-->

Комментарии (49)


  1. msts2017
    07.07.2017 14:08
    +4

    Опять магические проценты.


  1. Free_ze
    07.07.2017 14:28
    +8

    Сдается мне, что Node.js такими цифрами обязан npm.


    1. justboris
      07.07.2017 16:39

      Вы так говорите, как будто это что-то плохое


      1. Free_ze
        07.07.2017 17:29
        +9

        Нет, я совсем не против пятничного сравнения палки колбасы с электрочайником. А вы за кого болеете? (=

        Если серьезно, то Node.js в лице NPM вполне может обогнать Java, но не потеснить на рынке, на чем хайпят подобные статьи.


        1. justboris
          07.07.2017 18:27
          +1

          Согласен, никто не кого не теснит. Рынок растет, места хватает всем.


  1. DSolodukhin
    07.07.2017 15:15
    +7

    О том, что появился очередной убийца Java и ну вот теперь-то её выкинут на свалку истории, я слышу уже на протяжении лет 10. Вот только Java как была в топе, так там и остается, а претенденты потихоньку оказываются на дне.


    1. Nahrimet
      07.07.2017 15:34
      +2

      При чем тут это? Здесь речь о популярности, а не конкуренции.


  1. sheknitrtch
    07.07.2017 15:29
    +6

    Эх, тут недавно компания PayPal переписала свою архитектуру с Java на Scala+Akka и смогла уменьшить количество серверов с 100 до 8. Когда кто-нибудь покажет реальные преимущества Node.JS vs. <Any> на фактическом проекте, тогда дискуссия будет иметь смысл.


    1. rail-ka
      07.07.2017 15:41
      +1

      А недавно на Хабре был перевод статьи, где описывается, почему они выбрали Node.JS и сравнивают его с Java https://habrahabr.ru/post/324912/


      1. nehaev
        07.07.2017 17:40

        Перевод был недавно, но сама статья 2013 года. Насколько тогдашнее сравнение продуктивности разработчиков и производительности платформ актуально сейчас — большой вопрос.


    1. bex2014
      08.07.2017 15:49
      +3

      смешно ))))) если я перепишу свои проекты на java по новой, то тоже улучшу их.
      т.е. то, что «с 100 до 8» это не говорит, о том, что если бы они просто их переписали сного на java, то было бы хуже.


      1. murzilka
        10.07.2017 17:43
        -1

        Когда перепишете и улучшите, будет повод для дискуссии. А пока это не более чем заявление.


    1. rPman
      08.07.2017 17:56
      +1

      Даже не смотря на статью могу пованговать, что причина не в языке или платформе, а в используемых технологиях.

      Грубый пример, — можно перейти с классического использования php как шаблона (вызов интерпретатора на каждый запрос к вебсерверу) на php react и получить ускорение на один или несколько порядков. А ведь тот же язык и платформа, просто кардинально иной подход.


  1. amaksr
    07.07.2017 16:30
    +2

    Однако, стоит учесть, например то, что PayPal и NetFlix перешли с Java на Node.js.

    Это что имеется ввиду? Перейти полностью это переписать все legacy-ПО с одного языка на другой, никакая компания не потянет, так как дорого. Переписать какие-то из нескольких сотен приложений — это возможно, но тогда термин «перешли» здесь явное преувеличение.
    В олдскульных не-стартап компаниях ноду пока видеть не доводилось, все на Java, RDBMS-ах и мейнфреймах.


  1. zenkz
    07.07.2017 16:35
    +3

    Статистика немного огорчает. Получается что на смену мощным платформам вроде C# или Java приходят скриптовые языки вроде JS и Python.

    Вопрос в том, за счёт чего происходит рост популярности:
    Версия 1 — Программисты уходят из C# и Java и начинают писать на Python и JS
    Версия 2 — Программисты никуда не уходят, но приходят новые, которые пишут на JS и Python
    Версия 3 — Из-за «смерти» десктопных приложений все программисты на C# и Java обязаны писать на JS (в том числе и использовать Node.js) и из-за этого идёт рост их популярности (т.е. получается история SQL, который долгое время являлся (а может и является) самым популярным «языком программирования», но фактически очень небольшое количество людей реально писали только на нём, а для большинства это был вспомогательный, но обязательный язык. Рост питона же отчасти обусловлен использованием его «непрограммистами» (учёные, системные администраторы, разработчики дополений к играм и т.д.).

    Мне кажется наиболее вероятной версия №3. А как вы думаете?


    1. Free_ze
      07.07.2017 17:39
      +3

      Я думаю, что рановато начали констатировать смерть десктопных приложений, пока даже хипстеры предпочитают десктопные клиенты месседжеров, не говоря уже о более серьезном (как в плане вычислений, так и богатства UI) ПО.

      Веб растет со всем скопом технологий. Но Node.js и Python начали осваивать непрограммисты (те же веб-дизайнеры, математики), отсюда и взрывной рост. Черно-белый мир Java/C++ разнообразится пестрым ласкутными красками доступных технологий. И это прекрасно. Так что, имхо, версия №2.


      1. zenkz
        07.07.2017 21:16
        -1

        По поводу десктопных приложений — они становятся нишевыми. Само-собой какой-нибудь 3DsMax или AutoCAD вряд-ли в скором времени уйдут в веб и облака, но тот же Офис вполне себе уже веб-решение. Дело в том, что в последнее время (по крайней мере в корпоративном сегменте) 90% заказчиков хотят веб-решения, т.к. их легче обновлять и администрировать, они кросс-платформенные и интерфейсы у них более удобные. Т.е. для корпораций десктоп, можно сказать, что умер. Для обычных пользователей — скорее мёртв, чем жив. Для профессионалов — живее всех живых.


        1. Neikist
          07.07.2017 22:24

          Ой да ладно, для обычных пользователей все эти электроны и прочая ненативная жесть это кошмар. И это даже на, в общем то, не самом унылом железе. А на каком нибудь планшете или нетбуке — даже от нативных нормальную производительность не всегда получить, что уж тут о вебе говорить. Да и память жрут как не в себя. В общем мой выбор как пользователя за нативными, либо успешно косящими под них приложениями.


        1. Free_ze
          07.07.2017 22:55

          По поводу десктопных приложений — они становятся нишевыми.

          Я бы сказал, что за последние 10 лет появился огромный класс приложений, которых не было на десктопе в гордом одиночестве — информационные (новости/блоги/каталоги), сетеориентированные (социалочки). Возможно, потеснились не сильно сложные UI к БД.

          Офис вполне себе уже веб-решение

          Это довольно унылая пародия на десктопное решение. Аналогично, любая софтинка, не ориентированная на сетевое взаимодействие. Не только по ресурсам, но и по возможностям — интеграция с компьютером клиента ограничивается окном браузера и загрузкой файлов.

          интерфейсы у них более удобные

          Чем же они удобнее десктопных?

          для корпораций десктоп, можно сказать, что умер. Для обычных пользователей — скорее мёртв, чем жив. Для профессионалов — живее всех живых.

          Все скатывается к тому, что простому обывателю не нужен полноценный компьютер. Но уж никак не означает, что десктоп стал менее перспективен как платформа.


        1. qandak
          08.07.2017 15:48

          Само-собой какой-нибудь 3DsMax или AutoCAD вряд-ли в скором времени уйдут в веб и облака

          AutoCAD имел свою облачную версию аж в 2010-ом. Урезанную, естественно, но достаточно практичную и скромную по отношению к средним ресурсам того времени. В настоящем времени, «в облаках» популярна почти вся инженерная линия Autodesk.

          С 3DsMax-ом и ему подобными ситуация немного другая. В отличие от инженерии, визуализация тут является не опцией, а конечным продуктом, таким, что десктопному приложению зачастую не осилить. Рендер-фермы же — серьезные затраты. То есть, проблема тут далеко не в реализации.


      1. Alexey2005
        08.07.2017 23:05

        Предпочитают лишь потому, что веб-мессенджеры — тормознутый кошмар.
        При этом нет никакого закона природы, согласно которому любой веб-мессенджер тормозил бы даже на самом современном процессоре. На этой платформе вполне возможно сделать очень шустрый мессенджер, который бы работал без малейших подлагиваний даже на стареньких Eee PC с 1 Гб памяти.
        Проблема вся в том, что мессенджеры сейчас переносят в веб вовсе не для того, чтоб упростить обновления или там обеспечить кроссплатформенность. А исключительно с целью экономить на разработчиках. В итоге код тех мессенджеров поистине кошмарен, он явно пишется нанятыми на oDesk индусо-пакистанцами за $6 в час.


        1. Free_ze
          09.07.2017 02:09

          Если не экономить на разработке, то польза веб-интерфейсов достаточно сомнительна.


    1. Zam_dev
      07.07.2017 22:46
      +2

      Я вот знаю, что JS мне неизбежен, но вовсю оттягиваю этот момент, надеясь на чудо.


    1. Razaz
      07.07.2017 23:10
      -1

      Для каждой задачи свой инструмент. Я вот не представляю какой-нибудь серьезный сервис аутентификации/авторизации на чем то кроме C#/Java/Go :) Причем я JS люблю, но только на фронте и мне нравится работать с Реактом на ES7 :D


  1. mike_y_k
    07.07.2017 19:40

    Сначала популярность, потом уже и до конкуренции дойдёт.
    Если соотношение затрат на сервера будет даже в 2-3 раза хуже, чем 100/8 — выбор очевиден.
    Про похороны ещё конечно рано, но первый звонок уже похоже прозвучал.


  1. vics001
    07.07.2017 21:33

    Не знаю, что с чем сравнивали, но гораздо проще сравнить количество программистов использующих JVM-технологии (переходы из Java, Groovy, Kotlin… даются достаточно просто) и программистов на Node.JS. Если кол-во этих программистов обгонит Java-developers к концу года, ну даже не знаю что и сказать тогда…


  1. Armleo
    08.07.2017 15:46
    +3

    Хватит глупых споров Java vs Node.js. Я писал на обоих платформах большие и не очень проекты. Хотя опыта на Node.js больше 3 года против 1 года.


    Я уверен, что эти споры бесполезны. Node.js попытка привлечь не опытных программистов в Back-end. Java — это ВЗРОСЛЫЙ язык, который занимает свою нишу и с этой ниши его может (маловероятно) выгнать, только C# и Go.


    Node.js это всего лишь еще одна модная технология рост которой очевиден, но в реальности просто платформы пытаются занять СВОЮ нишу. Java — это много Legacy кода и много нового кода, которые никуда не денутся. Node.js это быстрые мелкие проекты с неплохой производительностью написанные маленькими командами.


    Вся суть споров any vs any в том, что бы понять в чем ниша этих платформ/инструментов/проектов/etc.


    Вы думайте, хотя бы один язык, который занял свою нишу потерял её? Покажите мне её, я докажу, что он занял свою нишу и застрял там надолго.


    1. Danik-ik
      08.07.2017 21:47
      +2

      Поддерживаю Ваше мнение. Полтора года назад я, намереваясь вернуться в программисты после восьмилетнего перерыва, выбирал, в чём набрать скиллов из востребованных специализаций. Джаваскрипт тогда меня просто влюбил в себя своим бесшабашным хипповым раздолбайством, но моё программистское "детство" давным-давно прошло, и я таки вернулся к классике в лице родного Дельфи 7 (тут просто повезло найти место на котором я сразу вписался на высоком, хоть и малость запылённом профессиональном уровне), а для личного развития учу таки джаву. На ноду не тянет, хоть и не боюсь её — и наверно именно потому, что слишком уже заматерел в традиционной объектной парадигме и строгой типизации. Это не тормозит меня в развитии "вперёд", но "вбок" на скриптовые языки не тянет совсем.


    1. fediq
      08.07.2017 23:25

      COBOL? Ada? Perl?


      1. Armleo
        09.07.2017 11:21

        Perl живет в скриптах. Прямо сейчас работаю над проектом в котором вся компиляция, генерация написана на Perl.


        COBOL живет в банках и Embedded (сколько бы это странно не было).


        То есть Ada не заняла свою нишу и не застряла там? В одном Banking прямо сейчас используется. МНОГО легаси кода, который просто не перепишешь. Я час назад писал на Ada для embedded под МК российской компании (не помню название), сильно урезанным компилятором, но все равно РАБОЧИМ.


        1. Armleo
          09.07.2017 11:36

          Вынужден признаться с COBOL знаком очень слабо. Да и COBOL сам по себе занял нишу языка, на котором могут заработать разработчики, потому что цена на такую разработку выше крыши.


        1. fediq
          09.07.2017 14:52
          +2

          Много легаси кода это не "занял нишу". Это "пока не до конца выпилили".


          Доля новых скриптов на Perl неукоснительно падает и сейчас плещется в районе нуля, по сравнению с лидерством на рынке в начале нулевых.


          Расцвет COBOL и Ada я не застал, но сейчас все рассказы про них начинаются с фразы "МНОГО легаси кода".


  1. firk
    08.07.2017 15:50
    +1

    TIOBE не считает Node самостоятельным языком программирования

    Ну что за отсебятина? Сначала подумал что эта глупость перекочевала в перевод из оригинального текста, но нет — там всё правильно написано: "TIOBE не ведет подсчёт node.js, потому что он не является (самостоятельным) языком программирования". Не "TIOBE так считает", а так и есть.


    Ещё одна похожая фраза, но тут уже более нейтрально:


    так как Node.js самостоятельным языком программирования не считается


  1. twesd
    08.07.2017 21:20

    Я на nodejs пишу примерно полтора года, до этого 7 лет писал на C# и С++.
    Пишу не на javascript а на typescript, весьма отличный язык. Есть и классы, интерфейсы, async/await и другие приятные вещи.
    С typescript + nodejs вполне приятно писать большие и маленькие проекты.


    1. Armleo
      09.07.2017 11:37

      Не понимаю, за что минусуют комментатора. Вполне себе приятно, хотя над большими проектами я сомневаюсь, что нода будет правильным выбором.


  1. amaksr
    08.07.2017 22:47
    +1

    Вот сейчас пишу паука на ноде, который обходит тысячи сайтов и собирает с них информацию о том, какие там технологии используются. Специфика такова, что для анализа технологий используется модуль wappalyzer, который ананализирует ответы сервера на соответсвие нескольким тысячам RegExp-ов, т.е. большая нагрузка на CPU, поэтому wappalyzer использует child_process. Так вот у меня node после нескольких часов работы или перестает вычислять логику, или вообще падает с ошибками типа некорректного доступа к памяти.
    И куда жаловаться? И на чем писать следующий проект? Прежде чем выбрать ноду теперь лишний раз подумаю.


    1. Armleo
      08.07.2017 23:20

      Вы выбрали не тот инструмент. Инструмент не виноват в этом. Научитесь выбирать перед тем как использовать ЛЮБОЙ инструмент.


      1. msts2017
        08.07.2017 23:24

        Вот это поворот, а для чего тогда он как не для этого?


        1. Armleo
          09.07.2017 11:31

          Тоесть


          большая нагрузка на CPU
          нескольким тысячам RegExp-ов

          это задача ноды?


          1. msts2017
            09.07.2017 15:46
            +3

            Где-то декларируется что на ноде нельзя делать приложения нагружающие CPU? нельзя использовать регекспы? тысячи регекспов как-то принципиально отличаются от работы движков шаблонизаторов?
            Где об этом почитать?


    1. fediq
      08.07.2017 23:22

      А может, это просто баг? А нода ни при чем?


      1. amaksr
        08.07.2017 23:41

        Незакрытый баг с похожими симптомами есть на гитхабе. Проблема в том, что вылазит случайно и воспроизвести его затруднительно. Но сам факт, что падает при обращении в память говорит о том, что проблема внутри движка (ну или модуля child_process), а не с кодом, который он исполняет.


        1. amaksr
          08.07.2017 23:45

          Fatal Windows exception, code 0xc0000005.
          PhantomJS has crashed. Please read the bug reporting guide at\r\n<http://phantomjs.org/bug-reporting.html> and file a bug report.


  1. AlexZaharow
    09.07.2017 14:11

    Дочитал до места

    но Node даёт универсальную платформу с экосистемой в полмиллиона пакетов

    Учитывая то, что JVM это не только для Java, но и для других языков ( https://en.m.wikipedia.org/wiki/List_of_JVM_languages ), например тот же JavaScript, то интеграция многих JavaScript-овых библиотек позволяет использовать JVM вместо node.js достаточно широко. Спасибо node.js за пакеты ))) Хотелось бы увидеть что-то подобное в node.js


  1. dmitry_ch
    09.07.2017 16:50

    Очень прямо просится сюда эта картинка:

    image
    (см.)

    У каждого языка свои фичи, и есть масса мест, где каждый из языков другого обойдет — на узкой задаче или по особой фиче, нужно кому-то.

    Но давайте посмотрим на node.js через хотя бы N лет, и в исторической перспективе сравним?


    1. AlexZaharow
      09.07.2017 20:43
      +2

      Да в общем-то какая разница, через сколько лет смотреть? Обычно разработчик с головой выбирает стек в котором живёт, постепенно улучшая его. Невозможно сделать всё на одном языке. В конце концов рулят всем грамотные интерфейсы, нормальная безопасность и живучая архитектура. Любому разработчику через N лет это становится понятным и лучше перестать искать вокруг себя идеальный язык и понять, что программирование происходит в голове, а не на каком-то языке.


  1. culvert
    10.07.2017 23:58

    Не могу найти, что Netflix переписал с Java на Node.js.
    Если посмотреть их OSS:
    https://github.com/Netflix
    то там проекты, которые написанные на JS в основном вспомогательные, возможно пока они не решились открыть в open source свои проекты на node.js
    Судя по статье:
    https://medium.com/netflix-techblog/node-js-in-flames-ddd073803aa4
    перформансом они пока не очень довольны. Плюс на сколько я понял, всё-таки core они пока не переводят на node.js, а только сервера, которые используются для front-end


    1. fediq
      11.07.2017 10:21
      +1

      В статье есть ссылка: http://blog.builtinnode.com/post/from-java-to-node-the-netflix-story
      Они перевели фронтенд на node.js в процессе переделки верстки на SPA. И это, в общем-то, логично.
      Под фронтендом я имею ввиду сервера переднего звена, которые генерируют верстку и принимают запросы от пользователя. Переписывать бекенд (нижележащие звенья, всякие микросервисы) на node.js они, конечно, не будут.


      Вдруг посетила идея, что, возможно, хайп вызван тем, что в маленьких проектах часто всего одно звено, и его и зовут бекендом. И если разработчики, которые раньше не видели многозвенных приложений, видят модный доклад про переделку верстки на node.js, они могут воспринять это как миграцию всего приложения. И вот тут начинаются статьи на тему того, что Java умирает.


      1. culvert
        11.07.2017 22:15
        +1

        Спасибо — очень грамотный комментарий. Думаю вы абсолютно правы на счет того, что хайп развернулся из-за того, что многие думают что бэкэнд сервера начнут на node.js переводить.