Комментарии 56
Вы так говорите, как будто это что-то плохое
Если серьезно, то Node.js в лице NPM вполне может обогнать Java, но не потеснить на рынке, на чем хайпят подобные статьи.
Согласен, никто не кого не теснит. Рынок растет, места хватает всем.
Node.JS — самый обычный интерпретатор (а не «платформа»), а Java — язык. Вы очень точно отметили, что это сравнение палки колбасы и электрочайника.
И поэтому люди путают место в рейтинге с местом на рынке.
Место в рейтинге скорее всего Node.JS заберет, но вот место на рынке, где безраздельно царствует Java, забрать невозможно физически. Возможно колбасу будут покупать чаще, чем чайники. Будет ли кто кипятить воду в колбасе — не факт. Это два параллельных рынка, а не один.
Node.JS — самый обычный интерпретатор (а не «платформа»)
Среда исполнения (например, интерпретатор или JVM) как раз является платформой, если верить вики.
а Java — язык.
Есть вполне общеупотребимое понятие — Java platform. Java вне JVM (или мутантов, вроде Dalvik/ART) встречается настолько редко, что позволяет ассоциировать Java-язык с Java-платформой.
т.е. то, что «с 100 до 8» это не говорит, о том, что если бы они просто их переписали сного на java, то было бы хуже.
Грубый пример, — можно перейти с классического использования php как шаблона (вызов интерпретатора на каждый запрос к вебсерверу) на php react и получить ускорение на один или несколько порядков. А ведь тот же язык и платформа, просто кардинально иной подход.
Однако, стоит учесть, например то, что PayPal и NetFlix перешли с Java на Node.js.
Это что имеется ввиду? Перейти полностью это переписать все legacy-ПО с одного языка на другой, никакая компания не потянет, так как дорого. Переписать какие-то из нескольких сотен приложений — это возможно, но тогда термин «перешли» здесь явное преувеличение.
В олдскульных не-стартап компаниях ноду пока видеть не доводилось, все на Java, RDBMS-ах и мейнфреймах.
Вопрос в том, за счёт чего происходит рост популярности:
Версия 1 — Программисты уходят из C# и Java и начинают писать на Python и JS
Версия 2 — Программисты никуда не уходят, но приходят новые, которые пишут на JS и Python
Версия 3 — Из-за «смерти» десктопных приложений все программисты на C# и Java обязаны писать на JS (в том числе и использовать Node.js) и из-за этого идёт рост их популярности (т.е. получается история SQL, который долгое время являлся (а может и является) самым популярным «языком программирования», но фактически очень небольшое количество людей реально писали только на нём, а для большинства это был вспомогательный, но обязательный язык. Рост питона же отчасти обусловлен использованием его «непрограммистами» (учёные, системные администраторы, разработчики дополений к играм и т.д.).
Мне кажется наиболее вероятной версия №3. А как вы думаете?
Веб растет со всем скопом технологий. Но Node.js и Python начали осваивать непрограммисты (те же веб-дизайнеры, математики), отсюда и взрывной рост. Черно-белый мир Java/C++ разнообразится пестрым ласкутными красками доступных технологий. И это прекрасно. Так что, имхо, версия №2.
По поводу десктопных приложений — они становятся нишевыми.
Я бы сказал, что за последние 10 лет появился огромный класс приложений, которых не было на десктопе в гордом одиночестве — информационные (новости/блоги/каталоги), сетеориентированные (социалочки). Возможно, потеснились не сильно сложные UI к БД.
Офис вполне себе уже веб-решение
Это довольно унылая пародия на десктопное решение. Аналогично, любая софтинка, не ориентированная на сетевое взаимодействие. Не только по ресурсам, но и по возможностям — интеграция с компьютером клиента ограничивается окном браузера и загрузкой файлов.
интерфейсы у них более удобные
Чем же они удобнее десктопных?
для корпораций десктоп, можно сказать, что умер. Для обычных пользователей — скорее мёртв, чем жив. Для профессионалов — живее всех живых.
Все скатывается к тому, что простому обывателю не нужен полноценный компьютер. Но уж никак не означает, что десктоп стал менее перспективен как платформа.
Само-собой какой-нибудь 3DsMax или AutoCAD вряд-ли в скором времени уйдут в веб и облака
AutoCAD имел свою облачную версию аж в 2010-ом. Урезанную, естественно, но достаточно практичную и скромную по отношению к средним ресурсам того времени. В настоящем времени, «в облаках» популярна почти вся инженерная линия Autodesk.
С 3DsMax-ом и ему подобными ситуация немного другая. В отличие от инженерии, визуализация тут является не опцией, а конечным продуктом, таким, что десктопному приложению зачастую не осилить. Рендер-фермы же — серьезные затраты. То есть, проблема тут далеко не в реализации.
При этом нет никакого закона природы, согласно которому любой веб-мессенджер тормозил бы даже на самом современном процессоре. На этой платформе вполне возможно сделать очень шустрый мессенджер, который бы работал без малейших подлагиваний даже на стареньких Eee PC с 1 Гб памяти.
Проблема вся в том, что мессенджеры сейчас переносят в веб вовсе не для того, чтоб упростить обновления или там обеспечить кроссплатформенность. А исключительно с целью экономить на разработчиках. В итоге код тех мессенджеров поистине кошмарен, он явно пишется нанятыми на oDesk индусо-пакистанцами за $6 в час.
Хватит глупых споров 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.
Вы думайте, хотя бы один язык, который занял свою нишу потерял её? Покажите мне её, я докажу, что он занял свою нишу и застрял там надолго.
Поддерживаю Ваше мнение. Полтора года назад я, намереваясь вернуться в программисты после восьмилетнего перерыва, выбирал, в чём набрать скиллов из востребованных специализаций. Джаваскрипт тогда меня просто влюбил в себя своим бесшабашным хипповым раздолбайством, но моё программистское "детство" давным-давно прошло, и я таки вернулся к классике в лице родного Дельфи 7 (тут просто повезло найти место на котором я сразу вписался на высоком, хоть и малость запылённом профессиональном уровне), а для личного развития учу таки джаву. На ноду не тянет, хоть и не боюсь её — и наверно именно потому, что слишком уже заматерел в традиционной объектной парадигме и строгой типизации. Это не тормозит меня в развитии "вперёд", но "вбок" на скриптовые языки не тянет совсем.
COBOL? Ada? Perl?
Perl живет в скриптах. Прямо сейчас работаю над проектом в котором вся компиляция, генерация написана на Perl.
COBOL живет в банках и Embedded (сколько бы это странно не было).
То есть Ada не заняла свою нишу и не застряла там? В одном Banking прямо сейчас используется. МНОГО легаси кода, который просто не перепишешь. Я час назад писал на Ada для embedded под МК российской компании (не помню название), сильно урезанным компилятором, но все равно РАБОЧИМ.
Вынужден признаться с COBOL знаком очень слабо. Да и COBOL сам по себе занял нишу языка, на котором могут заработать разработчики, потому что цена на такую разработку выше крыши.
Много легаси кода это не "занял нишу". Это "пока не до конца выпилили".
Доля новых скриптов на Perl неукоснительно падает и сейчас плещется в районе нуля, по сравнению с лидерством на рынке в начале нулевых.
Расцвет COBOL и Ada я не застал, но сейчас все рассказы про них начинаются с фразы "МНОГО легаси кода".
TIOBE не считает Node самостоятельным языком программирования
Ну что за отсебятина? Сначала подумал что эта глупость перекочевала в перевод из оригинального текста, но нет — там всё правильно написано: "TIOBE не ведет подсчёт node.js, потому что он не является (самостоятельным) языком программирования". Не "TIOBE так считает", а так и есть.
Ещё одна похожая фраза, но тут уже более нейтрально:
так как Node.js самостоятельным языком программирования не считается
Пишу не на javascript а на typescript, весьма отличный язык. Есть и классы, интерфейсы, async/await и другие приятные вещи.
С typescript + nodejs вполне приятно писать большие и маленькие проекты.
И куда жаловаться? И на чем писать следующий проект? Прежде чем выбрать ноду теперь лишний раз подумаю.
Вы выбрали не тот инструмент. Инструмент не виноват в этом. Научитесь выбирать перед тем как использовать ЛЮБОЙ инструмент.
А может, это просто баг? А нода ни при чем?
но Node даёт универсальную платформу с экосистемой в полмиллиона пакетов
Учитывая то, что JVM это не только для Java, но и для других языков ( https://en.m.wikipedia.org/wiki/List_of_JVM_languages ), например тот же JavaScript, то интеграция многих JavaScript-овых библиотек позволяет использовать JVM вместо node.js достаточно широко. Спасибо node.js за пакеты ))) Хотелось бы увидеть что-то подобное в 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
В статье есть ссылка: http://blog.builtinnode.com/post/from-java-to-node-the-netflix-story
Они перевели фронтенд на node.js в процессе переделки верстки на SPA. И это, в общем-то, логично.
Под фронтендом я имею ввиду сервера переднего звена, которые генерируют верстку и принимают запросы от пользователя. Переписывать бекенд (нижележащие звенья, всякие микросервисы) на node.js они, конечно, не будут.
Вдруг посетила идея, что, возможно, хайп вызван тем, что в маленьких проектах часто всего одно звено, и его и зовут бекендом. И если разработчики, которые раньше не видели многозвенных приложений, видят модный доклад про переделку верстки на node.js, они могут воспринять это как миграцию всего приложения. И вот тут начинаются статьи на тему того, что Java умирает.
в стандарте языка над этим уже работают, когда-нибудь будет
Платформа Node.js обойдёт Java в течение года