Платформа Node.js обойдёт Java в течение года

Original author: Michelle Gienow
  • Translation
В конце июня сего года Микеал Роджерс (он участвовал в работе 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 или нет?
RUVDS.com
1,057.42
RUVDS – хостинг VDS/VPS серверов
Share post

Comments 56

    +4
    Опять магические проценты.
      +8
      Сдается мне, что Node.js такими цифрами обязан npm.
        0

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

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

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

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

              0
              Немного дополню:
              Node.JS — самый обычный интерпретатор (а не «платформа»), а Java — язык. Вы очень точно отметили, что это сравнение палки колбасы и электрочайника.
              И поэтому люди путают место в рейтинге с местом на рынке.
              Место в рейтинге скорее всего Node.JS заберет, но вот место на рынке, где безраздельно царствует Java, забрать невозможно физически. Возможно колбасу будут покупать чаще, чем чайники. Будет ли кто кипятить воду в колбасе — не факт. Это два параллельных рынка, а не один.
                0
                Кажется, тут что-то не так с понятиями (=

                Node.JS — самый обычный интерпретатор (а не «платформа»)

                Среда исполнения (например, интерпретатор или JVM) как раз является платформой, если верить вики.

                а Java — язык.

                Есть вполне общеупотребимое понятие — Java platform. Java вне JVM (или мутантов, вроде Dalvik/ART) встречается настолько редко, что позволяет ассоциировать Java-язык с Java-платформой.
          +7
          О том, что появился очередной убийца Java и ну вот теперь-то её выкинут на свалку истории, я слышу уже на протяжении лет 10. Вот только Java как была в топе, так там и остается, а претенденты потихоньку оказываются на дне.
            +2
            При чем тут это? Здесь речь о популярности, а не конкуренции.
            +6
            Эх, тут недавно компания PayPal переписала свою архитектуру с Java на Scala+Akka и смогла уменьшить количество серверов с 100 до 8. Когда кто-нибудь покажет реальные преимущества Node.JS vs. <Any> на фактическом проекте, тогда дискуссия будет иметь смысл.
              +1
              А недавно на Хабре был перевод статьи, где описывается, почему они выбрали Node.JS и сравнивают его с Java https://habrahabr.ru/post/324912/
                0

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

                +3
                смешно ))))) если я перепишу свои проекты на java по новой, то тоже улучшу их.
                т.е. то, что «с 100 до 8» это не говорит, о том, что если бы они просто их переписали сного на java, то было бы хуже.
                  –1
                  Когда перепишете и улучшите, будет повод для дискуссии. А пока это не более чем заявление.
                  +1
                  Даже не смотря на статью могу пованговать, что причина не в языке или платформе, а в используемых технологиях.

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

                  Это что имеется ввиду? Перейти полностью это переписать все legacy-ПО с одного языка на другой, никакая компания не потянет, так как дорого. Переписать какие-то из нескольких сотен приложений — это возможно, но тогда термин «перешли» здесь явное преувеличение.
                  В олдскульных не-стартап компаниях ноду пока видеть не доводилось, все на Java, RDBMS-ах и мейнфреймах.
                    0
                    В EPAM`е сейчас большой спрос на Node.JS`ников. Говорю, как сотрудник — мне, как Java`исту-ынтерпрайзнику, несколько раз разные люди намекали, что спрос на Node`овцев последние три месяца сильно вырос. Это — достаточно не-стартаперская компания?..
                    +3
                    Статистика немного огорчает. Получается что на смену мощным платформам вроде C# или Java приходят скриптовые языки вроде JS и Python.

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

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

                      Веб растет со всем скопом технологий. Но Node.js и Python начали осваивать непрограммисты (те же веб-дизайнеры, математики), отсюда и взрывной рост. Черно-белый мир Java/C++ разнообразится пестрым ласкутными красками доступных технологий. И это прекрасно. Так что, имхо, версия №2.
                        –1
                        По поводу десктопных приложений — они становятся нишевыми. Само-собой какой-нибудь 3DsMax или AutoCAD вряд-ли в скором времени уйдут в веб и облака, но тот же Офис вполне себе уже веб-решение. Дело в том, что в последнее время (по крайней мере в корпоративном сегменте) 90% заказчиков хотят веб-решения, т.к. их легче обновлять и администрировать, они кросс-платформенные и интерфейсы у них более удобные. Т.е. для корпораций десктоп, можно сказать, что умер. Для обычных пользователей — скорее мёртв, чем жив. Для профессионалов — живее всех живых.
                          0
                          Ой да ладно, для обычных пользователей все эти электроны и прочая ненативная жесть это кошмар. И это даже на, в общем то, не самом унылом железе. А на каком нибудь планшете или нетбуке — даже от нативных нормальную производительность не всегда получить, что уж тут о вебе говорить. Да и память жрут как не в себя. В общем мой выбор как пользователя за нативными, либо успешно косящими под них приложениями.
                            0
                            По поводу десктопных приложений — они становятся нишевыми.

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

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

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

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

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

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

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

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

                              С 3DsMax-ом и ему подобными ситуация немного другая. В отличие от инженерии, визуализация тут является не опцией, а конечным продуктом, таким, что десктопному приложению зачастую не осилить. Рендер-фермы же — серьезные затраты. То есть, проблема тут далеко не в реализации.
                              0
                              Предпочитают лишь потому, что веб-мессенджеры — тормознутый кошмар.
                              При этом нет никакого закона природы, согласно которому любой веб-мессенджер тормозил бы даже на самом современном процессоре. На этой платформе вполне возможно сделать очень шустрый мессенджер, который бы работал без малейших подлагиваний даже на стареньких Eee PC с 1 Гб памяти.
                              Проблема вся в том, что мессенджеры сейчас переносят в веб вовсе не для того, чтоб упростить обновления или там обеспечить кроссплатформенность. А исключительно с целью экономить на разработчиках. В итоге код тех мессенджеров поистине кошмарен, он явно пишется нанятыми на oDesk индусо-пакистанцами за $6 в час.
                                0
                                Если не экономить на разработке, то польза веб-интерфейсов достаточно сомнительна.
                              +2
                              Я вот знаю, что JS мне неизбежен, но вовсю оттягиваю этот момент, надеясь на чудо.
                                –1
                                Для каждой задачи свой инструмент. Я вот не представляю какой-нибудь серьезный сервис аутентификации/авторизации на чем то кроме C#/Java/Go :) Причем я JS люблю, но только на фронте и мне нравится работать с Реактом на ES7 :D

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

                                    +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.


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

                                      +2

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

                                        0

                                        COBOL? Ada? Perl?

                                          0

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


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


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

                                            0

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

                                              +2

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


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


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

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

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


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


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

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

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

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

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

                                                    Тоесть


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

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

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

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

                                                    0
                                                    Незакрытый баг с похожими симптомами есть на гитхабе. Проблема в том, что вылазит случайно и воспроизвести его затруднительно. Но сам факт, что падает при обращении в память говорит о том, что проблема внутри движка (ну или модуля child_process), а не с кодом, который он исполняет.
                                                      0
                                                      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.
                                                  0
                                                  Дочитал до места
                                                  но Node даёт универсальную платформу с экосистемой в полмиллиона пакетов

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

                                                    image
                                                    (см.)

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

                                                    Но давайте посмотрим на node.js через хотя бы N лет, и в исторической перспективе сравним?
                                                      +2
                                                      Да в общем-то какая разница, через сколько лет смотреть? Обычно разработчик с головой выбирает стек в котором живёт, постепенно улучшая его. Невозможно сделать всё на одном языке. В конце концов рулят всем грамотные интерфейсы, нормальная безопасность и живучая архитектура. Любому разработчику через N лет это становится понятным и лучше перестать искать вокруг себя идеальный язык и понять, что программирование происходит в голове, а не на каком-то языке.
                                                        0
                                                        Золотые слова!
                                                      0
                                                      Не могу найти, что 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

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


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

                                                          +1
                                                          Спасибо — очень грамотный комментарий. Думаю вы абсолютно правы на счет того, что хайп развернулся из-за того, что многие думают что бэкэнд сервера начнут на node.js переводить.
                                                        0
                                                        Язык, у которого все числа это float, никогда не будет востребованным для серьёзных применений (например, финансовый сектор).
                                                        0
                                                        В моей Компании выбор технологий не основывается на их популярности. Имеются проекты и на Java, и на Node.js. У Специалистов не возникает споров, на чем писать. Выбор всегда просчитан, исходя из задач.

                                                        Only users with full accounts can post comments. Log in, please.