Короче, если хотим пить кофе из старбакса, носить разноцветные носки и обсуждать стартапы - выбираем ноду. Если хотим фиксить баги датированные 97-м годом и обсуждать как лечить боль в спине - выбираем джаву
@@mrspacer1 Юрчик, а сколько ты JS фреймворков и тулзов уже забацал? 50 - 70 Есть? А по 20 пулл-реквестов с багфиксом чужой тулзы на гитхабе есть на каждую из написанных тобой жабоскриптин? И это - принятых, а не проигнорннных или отклоненных! Если нет, то хз - ЛОХ ты! Шо ж то за жс разработик, который не написал 1000 хреней и не всунул их в ГитХап? Хоть Earlang или Хаскелл знаеш? Или Йоптаскрипт?
@@olezhonnv3215 Ну ок, хорошо - не буду больше обзываться динозавром. А ты не называй меня Юрчиком. Ок? Просто если площадка RU-vid позволяет заливать и обмениваться роликами со своим мнением, то почему нельзя въебать гневный каммент и побыть немного хейтером?
Видео можно не смотреть. Вы можете догадаться о содержании по вводным: преподаватель школы Java рассказывает о том, что он думает о JS. Личная заинтересованность всё решает.
@@homo-ergaster у вас весь мир крутиться вокруг ООП, а есть еще ФП. "Ну он и сейчас для большего не подходит" - расскажите это Netflix, LinkedIn, Ebay, Trello, Paypal, Uber, Medium и другим ...
@@SocialFoam Поддерживать более-менее крупный проект без использования ООП нереально. А компании из вышеперечисленных часто набирают программистов с самыми разными навыками просто чтобы было. Вы же не хотите сказать что у них бэкенд на node.js сделан.
@@homo-ergaster как раз таки они и используют ноду на бекенде. Вот цитата от PayPal о плюсах перехода с Java на Node.js "Built almost twice as fast with fewer people; Written in 33% fewer lines of code; Constructed with 40% fewer files.; Double the requests per second vs. the Java application;35% decrease in the average response time for the same page ... список можно продлждать. Вот статья - www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
@@homo-ergaster До могу, для этого есть Typescript, на котором прекрасно пишется по ноду, со всеми её ништяками, а также с полноценным ООП и статической типизацией. А про поддержку крупного проекта без ООП - бред загаженного ООП мозга, бедные разрабы Docker'a и Linux, как они без ООП на Go и С пишут.
я думаю тут речь идет о бизнес-объектах, т.е. попросту сущностях в базе данных, с которыми работает приложение. JS напрямую не работает с базами, для этого бэкенд нужен
Просто мнение человека, который не понимает в NodeJS и пытается сказать что на java лучше. Эти два инструмента в первую очередь с разными целями для использования!
Зачем нужен клиентский javascript мне, например, понятно. Но зачем нужен node.js с его наиущербной объектной моделью вот ейбогу не пойму. Я его попробовал пару раз - вот честно как будто во времена PHP3 вернулся.
@@homo-ergaster ну попробуй например поставить современную версию ноды, а лучше babel с последними пресетами, ts или flow, или любой другой js based язык
@@Billybomsjmg да причем тут npm. Я понимаю, что можно собрать салатик из кучи готовых модулей и заставить его что-то сделать, но иногда надо писать проект где заимствованного кода процентов 20 и вот тогда ты понимаешь всю уебищность ноды.
@@ThisMaksSpace Ну, положим, ts я пробовал и язык очень даже неплохой я вам скажу. Только я не понимаю нахрена компилировать TS в JS. Может проще тогда его в машинный код сразу перегонять.
согласен. есть конечно рудименты но жавасрипт реально мощный и лаконичный язык. сравнивать интерпретаторы с компилируемыми языками некорректно. в плане выразительности интерпретаторы на голову превосходят компилируемые языки но уступают в скорости
Асинхронная модель node js очень хороша, по перформансу нода обгоняет java в неких моментах ( тесты перформанса можете погуглить). Js везде: Desktop, Backend, Mobile.. И не нужно удивляться. Вы же не удивляетесь, что у нетфликса много микросервисов на ноде.
Я фронтендер с небольшим стажем. Был нужен бэк для домашнего проекта. Запилил на ноде за месяц рестфул сервис с монго, выложил на сервер, подключил фронт. На java я бы полгода прыгал с хибернейтом и спрингом.
@@artemabubakirov4098 фронтендерам проще въехать будет. Тем более на фронте сейчас часто ts встречается. На чистом js писать хоть немного большой бэк мне кажется опасно.
Объекты, да нахер они кому впились, в функциональном программировании все является данными. Вот такие как этот субъект втюхивают дурачкам курсы за бабло, а потом говнокодеры эти за питание высирают кривой код.
@@vabka-7708 Что значит не удобно, если в основных JS фреймворках React, Redux, Vue как раз внедрены принципы ФП, даже функции map, filter, reduce в ванильном JS это и есть ФП. Высшие функции принммающие другую функцию или предикат как аргумент + неизменяемые данные, минимизация побочных эффектов.
@@vabka-7708 Просто Чувак этот срёт на Ноду, хотя уж кому бы об этом говорить, джава-программисту, джава даже настоящим ООП не является, даже Скала больше ООП чем джава. Спустя много лет, только в восьмой версии додумались ввести Optional Class, до этого все мучались с null pointer.
Знаю 5 разных языков и считаю, что JS лучший при том, что мой первый любимец был Visual Basic и есть (поскольку знаю его на все 100%). И JS также на 90% знаю на изусь. У каждого свое предназначение. Но могу точно сказать, что новые языки от старых отличаются только простотой использования массивов, классов и объектов. JS самый быстрый, уступает лишь C++. Язык простой, без явной типизации. Главный плюс, что мы запускаем в скрипте сразу роутинг и обработку. К примеру PHP чтоб запустить нужен как минимум Apache или NGINX или то и другое вместе. А в Node у нас роуитнг внутри. Язык АСИНХРОННЫЙ и построенный на CallBack'ах. От сюда и много проблем. Если нигде не ошибаться, то язык просто прекрасен, но если допустить ошибку, то хрен ее так легко найдешь, поскольку одновременно работает много потоков и срабатывают Колбек события. Например, к нам подключается сокет и мы хотим идентифицировать пользователя. Если в нашем объекте users уже есть нужный ID, то вот вам скорость на лицо, мы получим все данные мгновенно. Если же нет, то читаем, а чтение у нас асинхронное, чтоб обеспечить бесперебойную работу сразу до миллион одновременных пользователей. Можно долго объяснять, но таких винегретов все боятся, дебагер тут не поможет. Из плюса - есть таймер. Можно использовать как угодно. Наприме каждые 10 минут удалять из памяти неактивных пользователей или делать бот рассылку. Если PHP умирает от множества классовых оберток, то JS создан чтоб работать с классами и объектами не теряя скорость. Можно работать одновременно с множеством портов. Например у меня NodeJS работает как сервер и как мост с разными ПО, общаются приложения как по TCP так и по UDP. Особенно UDP фиксирует падения любого из приложения и востанавливает его работоспособность, так как негарантированная доставка не вызывает никаких ошибок, а в JS важно чтоб все ошибки были обработанны. Сам JS просто сказка в связке с HTML+CSS. Интерфейс универсальный, очень быстро создается и легко делается, работает на всех устройствах и операционных системах. NodeJS не работает на прямую с интерфейсом, у него другая задача - сервер. Если честно, то NodeJS очень голый если с чистого листа. Много команд не существует. С простейших элементов сделали сложные, автономные и как у всех современных языках - сделали подключения модуля (фреймворк, функций... короче include/require). И в некоторых случаях побеждаен все тот же медленный Python, поскольку он может эмулировать в памяти работу например Chrome и даже сделать типа Скриншот и сохранить в картинку, но синтакиз в Пайтон не только похож из серии Visual Basic который не так давно обосрали, а еще используется гейский+педантский стиль кодирования используя отступы. А в JS/NodeJS пиши как удобно. Хочешь в одну строку, а хочешь в сто красивых царских строчек. В общем в компаниях страшно обеспокоены тем, что когда один умный человечек уходит, то другого человечка запросто не так легко на его место найти. И тут я бы сказал нужно искать решение не в стилях языка, а в разработке адекватного IDE редактора, в котором, например можно было бы выделенный блок строчек кода взять в рамку и представить как графический блок, а с меншим Zoom мы бы получили блок схему. Но народ опираясь на тот же IDE, который дает подсказки Методы из класса и по этому превращают PHP в труп, когда в магазин заходит одновременно 50 человек. Как пример - магазин ImageCMS был идеален снаружи, но ужасен изнутри и ребята переместили движок угадайте куда... на WordPress. мать его WordPress. Это полное фиаско! Деградация
Почитал комментарии, и понял, что у народа большая фрустрация по поводу node.js и js в целом. Когда мы говорим про язык, то я бы поделил вопросы на два подраздела: технический и экономический. Технический: 1) node.js - не язык, а платформа!, Простым языком, это тот же js, только еще с api, характерным для server-side разработки (i/o, processes и т.д). 2) отсутствие строгой типизации - это не проблема! В комментариях я увидел примеры из серии "присвоил bool, получил строку". Это не корректно. Когда мы говорим о проблемах типизации, в разрезе js, мы говорим о 3 вещах - перегрузка операторов (например "10" - 2 = 8), возможности динамически присваивать пропы объектам, и архитектурная проблема связности кода. Так или иначе, первое - это не проблема, а гибкость (то, что ее используют неправильно, это отдельная тема). Вторая проблема - это и плюс и минус js. Согласитесь, что, когда вы пытайтесь забрать json файл из сети, его распарсить, и что то обработать (например манадой операций), то описывать полностью объект, что обрабатываешь - это долго, да и не всегда нужно (и я не говорю даже о парсинге). То есть мы экономим время, не описывая всю структуру данных. Тем не менее, когда у нас кодовая база разрастается, подобная гибкость может сыграть злую шутку. Отсюда и получаем 3 проблему, связанную с архитектурой. Пример - это мутация объекта глубоко в методах, присвоение ему несуществующих пропов и т.д. Вторая и третья проблема лечится внедрением шаблонизатора. Например typescript (и да, это не язык!). Он как раз позволяет использовать модификаторы доступа, описывать явно классы, и даже работать с декораторами. Тем не менее, у js действительно есть свои особенности. Например для типа number (который может быть float / big int), под капотом используется double. Казалось бы ничего страшного, но, например 0.1 + 0.2 !== 0.3 (вспоминаем машинный ноль). Таким образом, работу с числами, в отдельных случаях, лучше делать через библиотеки (например bignumber, хотя в новой версии js должны добавить нативно). 3) если говорить про особенности ноды (не про js, а именно про ноду, как server-side решение): это принцип работы с многопоточностью. По факту, многопоточность скрыта от программиста, и вещи, типа обращение к сети/диску, на самом деле выполняются на отдельном потоке, возвращая результат в основной по окончании (а для программиста это просто получается функция, которая возвращает promise). Очень рекомендую посмотреть reator паттерн и event-loop. Там очень хорошо описана идея. 4) Таким образом, нода хорошо подходит для микросервисов и обычного CRUD (то есть, по сути, это львиная доля классических задач в вебе).
Экономический: 1) Вспоминм времена когда еще все делалось на jquery, и по сути не было backend / frontend разработчиков - были web разработчики. Поэтому, становление node.js, во многом обусловленно именно этим. 2) Давайте проанализируем реальных конкурентов: на рынке, по предложениям, тогда стояли php/java/.net - преимущественно. Но на .net, по ряду причин, было меньше позиций. И осталось тогда 2 мира - java и php. Java тогда была не особо привлекательна для молодых разработчиков, ввиду большого порога входа и грузной документации. Идти на java разработчика было реально, только если тебя брали как стажера и обучали (так было и со мной). Ситуация усугублялось тем, что все хотели сразу senior разработчика, а джуны никому и не нужны были. Единственный резон был их брать - чтобы сэкономить деньги компании. Что же касается php - то там ситуация была попроще, особенно, когда появился wordpress и joomla (одно время искали на них программистов). Что же произошло дальше? - да все просто, пришел ассинхронный веб, и примерно, в то же время, как раз зарадилась нода. Яркий пример, это bitrix, который был полностью на php, но затем часть сервисов была переписана на ноду (как раз из за темы с сокетами). Тут же был комментарий, что нода - это попытка фронтендера зайти в бэкенд. Тут хочу сразу, отметить, что по факту, первыми пользователями были не фронтендеры, а именно ребята из мира php и .net. 3) порог входа и интерес: тут хорошо было бы понять, а кто ЦА у ноды. Тут все просто, это молодые ребята, в возрасте от 19-20 до 23-25. О чем это говорит: это говорит о доступности материалов (типа туториалы, и правильный маркетинг), и конечно порог входа. Чем это плохо и чем хорошо: плохо тем, что все эти фреймворки и решения, совместно с простотой языка, по сути абстрагируют программиста от многих проблем (например, неуменение составлять sql запросы - потому что есть ORM). И эти знания обесцениваются, ведь для работы это не нужно, из серии "за нас написали". Но это не проблема ребят, это общая проблема. И начинается она всегда с бизнеса - как были нужны готовые выйти к станку и работать сразу, так и нужны сейчас. Именно поэтому у нас есть react программисты, не знающие js, или нодовцы, которые не знают, кто такой Фон Нейман. Светлая сторона тоже есть: конечно эти решения отупляют, если нет фундамента, но если фундамент заложен, то подобные вещи реально помогут сэкономить кучу времени и сил на реализацию повседневных задач. 4) Почему меньше становится специалистов, хотя программистов вроде как больше? - для меня, большая проблема заключается в передаче знаний. Те люди, кто отработал на своем / разных стеках постепенно перестают писать код, и так или иначе, переходят на позиции, где важен эмпирический опыт и софт скилы. Так не со всеми, но со многими. Это естественно - со временем мы начинаем медленее думать, не можем так быстро обучаться и т.д. + решаем один и те же задачи (что порядком наскучит, даже если сменишь стек). Таким образом, для текущих решений и языков, сейчас стратегически важно сокращать порог входа и обучение инструментам, чтобы элементарно, можно было формировать проффесионалов быстрее, и передача знаний проходила ни между менеджером-исполнителем, а между испонителем-исполнителем. Боюсь, что это станет одним из ключевых критериев в выборе языка уже в обозримом будущем. Касательно актуальности: я бы рекомендовал смотреть открытие позиции и их описание, например на hh.ru/angel.co. Исходя из требований, истории компании и стека, в целом, можно сделать много выводов. И мое личное мнение: нет такого понятия "плохой" или "хороший язык". Если его придумали, то значит была цель. Что за js, то за php, java и т.д. стоят обычные люди, которые хотели что-то оставить после себя, потратив кучу сил и своего личного времени. Такое нужно уважать!
@@egorzuev6408 браво, все четко и по полочкам) По уровню адекватности, я бы, даже сравнил со статьей "3 Больших лжи про JS"(единственная адекватно-хейтерская статья про js, на моей памяти)
Нет особого смысла пихать бизнес-логику во фронт, если сам по себе фронт не является сервисом. Тк в работу фронта легко вмешаться - всё равно придётся за ним перепроверять всё на бэке.
@@КириллСмирнов-ь5ъ слышал и пользовался. Но при чём тут он? Хотя со своим старым тезисом я сегодня тоже не согласен, и на фронте действительно может быть достаточно много логики. Но опять же сильно зависит от того, что за продукт. Например у абстрактного банка на фронте полноценной логики по сути не будет
@@donquih0te396 не знаю, к чему тут джава вообще) и почему ты вместо джавы не написал, к примеру, c# или любой другой ООП язык) Но, в любом случае, удачи ему в замене джавы))) Я еще помню года 3-5 назад пророчили, как все джависты на GO пересядут) Пока еще нет даже намёка на замену джавы) Хотя го безусловно хорош. Особенно после того, как смиришься с тем, что в go даже дженериков нет)
@@donquih0te396 Нихера не заменит, сколько уже таких "заменителей" на рынке, если до сих пор в финансовой-банковской сфере пользуются Cobol, который архаичное говнище, то Java уж точно никуда не денется. Просто вы нихера не понимаете что такое Энтерпрайз и думаете новое с кучей свистелок-перделок это лучше, никто заново переписывать то, что работает стабильно и при этом в течении десятков лет не будет.
@@donquih0te396 Плюс каждый новый язык держится в трендах год-два, а потом удерживается на определенном уровне или вовсе теряет популярность. Тот же Rust кстати как язык в разы продвинутей Go, но людей ведущих разработку под Rust по пальцам пересчитать. Javascript, Python и Java стабильно держат лидерство.
Странно что за все видео ни разу не прозвучало одно из аргументных преимуществ nodejs - стоимость и легкость машины на которой будет запускаться сервер.
Ну почему же нод плохой? Вот на мой взгляд там есть одна крутая фича, ну кроме того что это джаваскрипт и легче туда идти фронтендеру. Это легкость распараллеливания через message-passing: non-blocking send, blocking receive. Я помню как тяжело было с джавой со всеми семафорами, мутексами, шаред обджектами. А на ноде с этим сразу дело пошло.
Похожую модель ассинхронности (паралельность в данном случае некоректный термин) имеют сейчас практически все современные высокоуровневые языки. А вот возможность фронту быстро перейти на бек - это аргумент
+ Lorgar Aurelian он и не говорил, что нодjs плохой. Он говорил, что джаваскрипт плохой язык. И это правда. Джаваскрипт, к примеру, вообще лучше не использовать, если дело доходит до расчётов с высокой точностью, расчёт денег и тд. На ноде у вас дело пошло потому, что сам джаваскрипт однопоточный и nodejs api позволяет выделять операции в отдельные процессы. В джаве ситуация совершенно другая. В этом плане "проще" - не значит "лучше". Так как та же джава позволяет грамотно управлять параллельными потоками, тогда как в ноде ты никак управлять этим не можешь
@@TheZloymedved Что именно давно можно в ноде? Если вы про синхронизацию, то нет, в ноде нельзя синхронизировать множество различных потоков, как это можно делать в java/c# и тд. Вот я об этом и говорю.
на эту тему есть крутой видос от АйТиБороды - "все о node.js". Там чувак из глубокого бэкенда перекочевал на JS, где он сам перепробовал все что можно. А тут, не смотря на то, что я люблю этот канал, видос ни о чем :( в комментариях правильно пишут, что видосик должен бы выйти в 2009. Nextfix которые ссытся от JAVA, и ебашет свои фреймворки для микросервисной архитектуры, вынужден работать с node.js - потому, что это тупо дешевле. Не вижу смысла использовать (и особенно рекомендовать) строго одну технологию потому что - это ТРУ! просто нужно понимать меру, как в примере со Scala из видео)
Автор не понимает, что Нода нужна для изоморфности и SSR? Можно использовать сервер хоть на JVM, хоть на .NET вместе с Нодой. Нода должна отдавать в первую очередь статику. Это же элементарно.
Чувак, ты застрял в прошлом..ты учился на java в то время ещё не было ноды, а джаваскрипт выглядел действительно убого и писать на нем было ещё то удовольствие..но сейчас как не крути уже 2020 и тебе как человеку старой закалки и привыкшему к чему-то уже не хочется учиться чему-то новому, понимаю тебя я и сам такой, но посмотри правде в глаза java уже не в трендах, туда подкрался Котлин и как ни крути нет другой альтернативы для фронта кроме джаваскрипт, так теперь ответь мне, зачем мне учить пхп, руби или питон для Бэка если я могу писать бэк и фронт на одном простом и понятном языке? джаваскрипт куда быстрее чем питон или руби, какой смысл от этих языков? Если мне нужен фронт и бэк я выберу джаваскрипт, если мне нужна скорость я возьму golang, если мне нужен андроид, я выберу Котлин, если нужен десктоп, тогда c#..зачем мне джава, питон или руби?!
Есть большая разница между JavaScript и TypeScript в плане поддерживаемости. А NodeJs прекрасно подходит для приложений с несложной бизнеслогикой, но которые должны обслуживать огромные колличества клиентов.
Здравствуйте, а поделитесь мнением насчёт Kotlin, именно на бэкенде. Оно надо, зачем? Есть рукастые которые уже шлёпают. Интересует ваше мнение. Заранее спасибо.
достаточно удобно при умении готовить. количество кода сокращается в разы, при этом все понятно и ясно - джавист, не видевший котлина, прекрасно все поймет и сможет дописать или поправить без особого труда.
Сергей, опишу частный пример, где мне кажется, явно выигрывает nodejs. Я задействован в разработке приложения, которое должно работать как в режиме сайта, так и как десктопное (electron), при этом в оффлайне должно быть доступно порядка 70% функционала. Функционал по большей части не браузерный (работа с файлами, рендеринг изображений). Получается так, что в вебе "небраузерную" работу делает сервер, а вот локально должен делать компьютер пользователя (ибо поддержка оффлайна). И вот тут мне кажется логичным расшарить логику между вебом и десктопом. А так как electron - это по сути окно браузера + инстанс nodejs, то решение на поверхности (Другой вопрос что javascript остается javascript’ом). Хотелось бы услышать ваше мнение :).
GO (golang) коли порвете? Обіцяли... Чекаю! Про недоречність JS на сервері не переконали. До того ж TypeScript не згадали. Тобто не в темі )) На перший погляд це все ні разу не про пресловутий enterprise... Але скільки того enterprise у Java без інерції ринку? А я скажу, що JS вже добре наступає на п'яти Java в великих проектах, та й армія розробників росте у всіх сенсах.
@Sergey, свои 5 копеек вставлю) я уже два года работаю в кросстек команде java/nodejs, так вот я скажу что меня нода - дико таращит) конечно экосистема ноды и рядом не валялась с джавой с её спингом, но для маленьких микросервисов хватает с головой) То же покрытие тестами выполняется едва ли не проще чем в джаве, а отсутствие строгой типизации тоже с лихвой покрывается юнит тестами. Так что, не всё так однозначно)
Очень тяжело объяснить плюсы ноды и JS в целом разработчикам т.н. 'старой закалки', которые помнят JavaScript языком исключительно для передвижения кнопочек на сайте =) Ну ничего, скоро все эти динозавры вымрут и мы пойдем в дивный новый мир, где на JS будут писать ПО для ракет)))
@@MrJanealter сомневаюсь. Джаваскрипт совершенно не подходит для расчётов, где нужна высокая точность. Плюс ко всему, есть движок V8, который может оптимизировать твой код так, как ты совсем не ожидал и у тебя могут расчёты давать разные результаты. Например 10 раз выведет 0.002, а на 11 раз выведет 0.003. Это реальность текущей имплементации. Так что, не думаю, что кто то рискнёт ПО для ракет на джаваскрипте делать и при этом движок V8 использовать) Хотя, я думаю, что в будущем вообще никто не будет на джаваскрипте писать, а будут писать на языках, которые компилируются в джаваскрипт (Typescript тот же самый, например). Хотя, в любом случае, проблем с точностью и с непредсказуемыми оптимизациями это никак не решит, так как проблема в V8, а точнее в том, что никто в точности не знает, как он работает (кроме разработчиков этого движка)
Сергей добрый день! Помимо изучения Java решил совсем немножко познакомиться с Python - понравилось.Понимаю, что разные языки и области применения и т.д , в какой связке можно использовать эти два языка,чтобы получить реальные и действительно нужные скиллы ? Или расскрыть тему Java Full Stack developer ).Спасибо.
@@Smolandgor почему питон - это так себе решение? Огромная куча всего на питоне написано и пишется до сих пор. Это и боты для игр, это и приложения для майнинга, это и различные решения для Big Data и еще куча всего. Игры даже пишут на питоне и движки для игр. Питон очень крут, ты это зря так с ним)
@@kd8437 ну скраппинго боты да я думаю норм...а большое приложение, типа большого ентерпрайз приложения, скучей логики, будет не очень удобно на питоне писать. Отсутствие строгой типизации минус для большого проекта(для мелкого скриптика конечно плюс), кроме того фреймворки менее мощные чем спринг, хуже документация, производительность гораздо ниже и еще ряд минусов.
@@Smolandgor да, это правда. Я это всё говорю к тому, что на больших энтерпрайз приложениях жизнь не заканчивается и есть полно других вещей, которые люди делают. Поэтому говорить о каком либо языке или технологии через призму энтерпрайз приложения - это не совсем правильно. Так как если язык не подходит для больших приложений - это не значит, что он какой то плохой) Аппеляция к фреймворку, тоже смысла не имеет, так как Spring - это один большой универсальный фреймворк, тогда как на питоне есть много библиотек, из которых ты можешь взять всё, что тебе нужно. Питон так же имеет версию со статической типизацией, а по поводу скорости да, питон медленнее. Но опять же, всё от задачи конкретной зависит и скорость быстрая далеко не всем важна. Если уж ботов для игр на питоне делают, то не всё сильно критично там.
Сергей в чем-то прав. Задеплоить проект на Ноде в рази менее доступно, чем на обичних наших хостингах. С другой сторони, ДжС очень бистро приближается к классическим язикам. Уже есть класси, модули, ассинхронние функции. Создана надстройка TypeScript - тот же джаваскрипт, но с типизацией по-круче. Сейчас ДжС упорно берет барьер ООП. Но главное преимущество - ето неблокирующий паралелизм при запросах-ответах на сервер.
тут высказывание Жванецкого как раз в тему: Давайте спорить о вкусе устриц и кокосовых орехов с теми, кто их ел, до хрипоты, до драки, воспринимая вкус еды на слух, цвет на зуб, вонь на глаз, представляя себе фильм по названию, живопись по фамилии, страну по "Клубу кинопутешествий", остроту мнений по хрестоматии... (надеюсь моя мысль понятна ))
1) JS развивается очень стремительно, благодаря тому что браузеры часто обновляются, мы имеем постоянные улучшения и новые стандарты с крутыми штуками 2) На Node тоже можно за 5 минут сайт сделать , не дольше чем на PHP 3) На Node прекрасные менеджеры пакетов и множество библиотек, а главное огромное комьюнити, которое любит JS. 4) На клиенте можно создавать файлы если писать десктопное приложение на JS , на платформе браузера ясное дело это запрещено какой бы язык там не был. Возможность работать с файлами это не функция языка программирования, а API окружения в котором интерпретируется язык программирования 5) Сейчас front-end двигается в сторону серверного рендеринга, проблем с этим не возникает, это как пример того что это не разные языки ... Сергей, честно вы подразочаровали меня такими рассуждениями, надеюсь в Java вы гораздо больший специалист т.к. я прислушивался к вашему мнению
Один язык из этого следующие плюсы: 1) Браузер - (события), веб-сервер (io) и там и там один, асинхронный подход к проектированию приложения, совсем утрировано publish- subscriber, что клик обработать, что в базу сходить, что в веб-сокет данные отправить. 2) Галерам удобно иметь джуна фулстека для скрам команд, который может закрыть примитивный crud без воплей мое\не мое, код один, подходы понятны, а дальше он углубляется в во фронт: сторы, воркеры, wpa, или в бэк: апи, кешы, очереди, бд, . Что-то тяжелое - в микросервис на подходящем языке. Что-то глубокое профильный спец делает: оптимизировать запросы в базу, архитектурно построить очереди, кеши - от языка не зависит. Из минусов, мимо идут: ИИ, гейм дев, параллельные вычисления*, микроконтроллеры и другие реально интересные темы. Да, возможности растут, уже можно и 3d через боль в браузере и потоки в nodejs.. но это попытки догнать или скопировать мастодонтов. С приходом typescript вообще пришло понимание, что лучше 2 проверенных книжки по джаве прочитать, чем обрывки мыслей "первопроходцев" в ООП в js (привет паттерны из лохматых годов). А с появлением async, await программы теперь пишутся как в синхронном стиле. Просто движки разные - либо тяжелая, строгая джава, либо легкий js, без гарантий -) Поэтому большинство идут куда легче и проще, ломают мозг асинхронщиной, а если еще после глобальных переменных из php, то ничего выше битрикса не светит. Время упущено, фундаментальные вещи не освоены, но зато магическим образом появился новый фронт-енд вело-фреймворк. Php передает привет vue: .php, а vue отвечает .vue
Я так понимаю это было Ваше собственное мнение. NodeJS хорошая штука и она очень оптимизирована под сокеты + неблокирующие операции. Обычно ее ниша микросервисы или работа с сокетами и там она отлично справляется. Но в целом я бы сказал, что технология все-еще сыровата.
Как программист с 17-летним стажем, могу сказать, что автор просто не понял JavaScript и всю его мощь. И ещё, фраза автора "клепать сайты PHP для этого в самый раз" просто обескураживает. Такое ощущение, что автор живёт в начале нулевых.
и по поводу зоопарка технологий: сейчас работаем над проектом, который состоит из 3 больших модулей - репозиторий(бэк scala, клиент - js со Spine и кучей других разных библиотек), админка(бэк - kotlin, фронт - React) и главный портал(бэк - java + spring, фронт - angular). и при этом везде есть node. и работать с этим зоопарком - это просто **здец!! и конечно кругом лютый говнокод и легаси двух-трехгодичной давности, который писали люди, давно из конторы ушедшие)))
JS уже давно не такой. И что это за в JS нет объявлений классов. Да и я изучая Node.js чувствую что он тут к месту. Он особенно хорош для нагрузок от простых запросов и память почти не жрет.
Те кто говорит что PHP скоро умрет, покажите мне хоть одну CMS, которая работает на NodeJS? PHP просто идеально подходит для CMS, сейчас конкурентов по CMS для него нет и не предвидится. Почти все сайты малого и среднего бизнеса написаны на PHP.
дык один из основных принципов движка ноды - неблокирующий запрос ввода-вывода, отсюда происходит асинхронность выполнения событий. Какие преимущества имеет многопоточность в сравнении с асинхронностью?
Что лучше использовать для чат-ботов, чтоб держал хорошо нагрузку в 1000 обращений в сек? Сам на пхп все давно пишу, проекты уже посерьезней стали и задумываюсь о изучении другого языка.. На что лучше перейти? Подумываю о питоне. Стиль у меня программирования функциональная, не люблю ооп.
Javascript - это интерпретируемый язык, по своей скорости он всегда будет проигрывать компилируемым языкам и по этой причине для больших проектов он не подходит, одно дело когда движок браузера считывает js код и тут же его исполняет - клиент ничего не почувствует, а когда у вас сложная бизнес-логика на сервере и движок будет считывать каждый раз весь этот сложный код, то ждать можно до утра пока клиент получит ответ от сервера. Другая проблема - в Javascript однопоточность
Уши ванют от таких "специалистов". Node.js это не про javascript, а про асинхроность. Отлично решает c10k. И много других сильных сторон из за которых в мире давно никто не пишет на php и популярность java падает стабильно каждый год. С таким подходом, Вы долго в своей профессии не задержитесь.
После этого видео понял характер и логику автора. Могу заявить что человек не имеет представления об javascript. И еще совет самому автору од джунера ==>>> Если вы сомневаетесь, и не знаете тему не нужно лезть туда куда не надо. У вас там что? JAVA? Ну занимайтесь ею... А говорить бред и позорить себя, это как минимум унизительно при том что вы же заявляете что имеете большой опыт в разработке. Ну и на p.s. подкину, что для начала советую посмотреть на то что уже написано на JS как и на бэек так и на Польз.
Да, видимо, этот человек довольно поверхностно разбирается в разработке в целом. И даже не подготовился и не почитал о том, как сейчас в js и платформа nodejs развивается, какие там есть инструменты для работы с распределёнными системами, многопоточностью, операционными системами и видами парадигм. Только не понятно откуда такая высокомерность, выглядит очень наивно.
Подавляющее большинство товарищей, выражающих своё охрененно важное негативное мнение насчёт JS или ноды, не знают про JS ничего кроме стереотипов 20-ти летней давности...
@@nitroexpress9928 да дело даже не в этом, просто утверждения вроде "этот фреймворк дерьмо" или "этот язык плохой", говорят не очень хорошо о профессионализме, в конечном итоге все коболы, джавы, джаваскрипты и прочие скалы - это набор отвёрток с молотками, не меньше и не больше...
Автор путает разные языки и разное окружение. Язык всего один! Неважно, работаете ли вы с DOM или с файлами, у вас один движок, один синтаксис, одна философия, один язык.
Нода взлетела так как далеко не всем нужны какие-то мега большие приложения, сервисы и тд. В основном люди требуются небольшие или средние проекты и ноды полностью хватает для подобного. Ну и, как правильно сказали, теперь любой фронтенд программист может официально считаться фулл-стек разработчиком. Ну и плюс ко всему, есть возможность серверного рендеринга и переиспользования кода между фронтендом и бекендом. Ну а в целом да, джаваскрипт язык плохой, тут спорить бессмысленно. Для любого бизнес приложения, где деньги нужно посчитать, либо еще какими то расчётами заниматься, где важна точность, джаваскрипт лучше не использовать. Хотя Paypal использует ноду, но лично я не уверен, что у них прям пересчёт денег на джаваскрипте написан. Скорее всего помимо ноды еще другие технологии есть
PayPal, Uber, Ebay, GoDaddy, LinkedIn, Yahoo. Тебе хватит этого списка? Они все юзают Node JS. Uber использует в основе Node js и Go www.infoworld.com/article/3014207/nodejs-google-go-drive-uber.html
@@scape4632 Да это у тебя откуда такие доводы? Откуда у тебя вообще такие сведения, что Ebay на NodeJS написан? Откуда у тебя сведения, что LinkedIn написан на NodeJS? Откуда у тебя сведения, что PayPal на nodeJS написан? stackshare.io/stacks - Перейди по ссылке, найди всё, что ты мне тут написал и посмотри, какой там огромный стек технологий у них. И потом посмотри, где там твой NodeJS. Основой для большинства того, что ты мне тут перечислил, является Java, а не NodeJS. Доводы у меня такие от того, что я уже около 10ти лет в программировании 6+ лет из которых пишу на джаваскрипте. Или ты думал, что я из головы всё придумываю?
Ну т.е. "я не понимаю", "мне непонятно", "я не знаю" - краткое резюме видео. На серьезных щщах говорить о какой-то нише Ruby в контексте обсуждения ноды, ну такое. Сам из прошлого века и под win98 приложения писал, php писал, насяльника, на java писал приложеньки и веб в т.ч. J2EE. Сейчас нормально пишу под Node.js, да есть "нюансы", качество доступных библиотек оставляет желать лучшего по-сравнению с java, асинхронность "вместо" многопоточности и, как следствие, навязанная кластеризация в архитектуре web приложения - по-сути вот единственные проблемы платформы, а у какой платформы их нет? Javascript - норм, для тех кто не достаточно гибок и не в состоянии сменить парадигму ООП java, есть TypeScript, что удивительно, для front-end SPA приложения по-сути musthave, а вот для бека вообще необязательно. У Node.js вполне определенная ниша, с нижней границы php не в состоянии нормально утилизировать выч. ресурсы, с верхней границы, java, например, требует дофига оверкода, суеты и конфигурирования AS, опять же многопоточное программирование тянет трудности в отладке, а каком-нибудь бывшему phpшнику до этого как до луны. Вот между этими двумя, Node.js весьма уютно и вольготно себя чувствует, нужен бек для мобильной-убер-приложеньки - пожалуйста, нужна web приложенька - запросто. Но Go скорее всего ее вытеснит или сильно ужмет ее нишу.
У всех конечно свое мнение, но даже у Google есть свой проект Transport Tracker Soultion с бэкендом на node.js developers.google.com/maps/solutions/transport-tracker/ . Они тоже следуют моде или что-то другое.
Например JS скажем это готовый ORM Json какой еще язык может быть таким без дополнительных библиотек? А Koa-2 под node вообще песня, такое только удовольствие получал только на Sinatra в ruby. Хотя за более 30 лет опыта самым интересным был Forth, но он увы сыграл в ящик, но идея была отличная.
Арсен Султанов да залупа это всё! Этот подход значит, что на этом тике мы принимает хуй знает сколько тасков, а на следующем мы всё это гавно вернем. И никто понятия не имеет когда это произойдет и что в итоге получится. Когда ты пилишь сервис для двух с половиной человек в сутки, всё ок. Но когда ты делаешь нагруженный сервис, ты не вывезешь это всё на асинхронной хероте. Я сам на ноде пишу, чтоб ты понимал. Я не фанатик джавы там, или питона, или еще какой херни, просто это надо принять. Когда к тебе валится несколько десятков запросов в секунду, нужно нормально в многопоточность уметь. Когда у тебя есть трэд, ты можешь его профилировать. Оптимизацией снижать нагрузку. А когда у тебя неведомая хуета крутится, ты не в силах ничего сделать. Ну или прийти к руководству и сказать, что тебе нужен еще один цод. Нода может в теории сгодиться для хайлоад, если у тебя всё на микросервисах. И то это сложно. И совсем не точно. Поэтому не надо себя успокаивать мечтами об одном языке для всего. Не просто так люди на плюсах пишут, а не на жабаскрипте.
Что вы думаете на счет вот этого ресурса teachyourselfcs.com/? Стоит ли изучать computer science вот таким образом для того, чтобы стать полноценным инженером? Вопрос задан скорее всего не корректно, заранее извините.) Я опираюсь на тот факт, что любой яп или фреймворк это всего лишь инструмент.
Коллега, ну ты разумеется мастадонт, но тенденции отрасли сводятся к тому, что-бы вот этот длинный список из миллионов наименований немножечко сократить. А так как на фронтэнде без JS вот ну совсем никуда, то хотя-бы минус PHP, и уже как-то веселее
Ну я думаю что нужно попробовать что и как если много жрет ресурса то остаться на том начальном языке. А один метод или какой-то один сервис стоит попробовать.
Не аргумент, ибо все платформы поддерживают асинхронность, а некоторые команды вообще намеренно отказываются от асинхронности, ибо это не простая штука
@@БрюсЛи-н7п отказываются там, где она на самом деле не нужна и порождает излишнюю сложность. node в таких случаях не нужен, тк даже без асинхронности производительность выше. Да и надёжность всё-таки важнее. Лично я вижу место ноды только в 2х случаях 1. Как средство разработки фронтенда на js 2. Как бэкенд на маленьких, краткосрочных проектах с небольшой командой, где не нужна длительная поддержка (electron не считается) PS: асинхронность действительно имеет смысл только во фронтенде. Обработка данных, работа с БД - это всё синхронное