LINUX.ORG.RU
ФорумTalks

Вслед за Groupon, Paypal осознал могущество Node.js

 hype, , ,


0

3

PayPal мигрирует с Java на Node.js, видимо это теперь новый тренд бросать свои руби/явы и прочее в пользу величия и могущества V8/JavaScript?

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

★★★★★

Последнее исправление: umren (всего исправлений: 1)
Ответ на: комментарий от Deleted

И чо?

То, что никаких типов то и нет, одни хэши со ссылками на функции. Слабейшая типизация в мейнстриме! Ковыряй потом откуда что взялось. Может это щас нормально считается, не знаю, но зачем так жить?

Hjorn
()
Последнее исправление: Hjorn (всего исправлений: 1)
Ответ на: комментарий от Legioner

http://www.typescriptlang.org/
Javascript c опциональной статитеской типизацие и некоторыми расширеними, который работает и на обычной JS машине.

grim ★★☆☆
()
Ответ на: комментарий от Legioner

Например все эти коллбэки на каждый чих - это ведь очень неудобно.

Это мнение базируется на хэлловорлдах с nodejs.org или на личном опыте? Потому как те, кто пишут на node, используют control flow решения, и тебе уже становится все равно, сколько там было колбеков. А если посмотришь на то, что сейчас можно сделать на генераторах, так там вообще ни одного колбека не увидишь.

Corey
()
Ответ на: комментарий от Bad_ptr

Его нужно компилировать в JS
Typescript сразу работает в любом современном браузере.

grim ★★☆☆
()
Ответ на: комментарий от ritsufag

Сижу такой пишу пагинацию на клиенте, а потом вдруг думаю дай ка сделаю её на сервере и просто КОПИРУЮ код без изменений на сервер.

Что мешает писать на клиенте на других языках?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Но я с трудом представляю, как на JS можно писать большие, сложные, надёжные и поддерживаемые проекты.

Смотря какой критерий надежности и поддерживаемости. Да, на js я бы не стал писать приложение реального времени для управления летательным аппаратом. Пейпал бы тоже писать не стал. Ну а для типичного веб-приложения вполне сойдет. Поддерживаемо оно тоже вполне может быть, особенно если команда небольшая, с малой текучестью кадров и с достаточно хорошей квалификацией разработчиков. Конечно, если каждые два месяца вам нужно набирать новую пачку студентов-быдлокодеров, то проект быстро скатится в неподдерживаемое г-но. Но мы ведь лучше всего этого, не правда ли?

Corey
()
Ответ на: комментарий от Deleted

js не поддается рефакторингу

есть две категории людей, одним рефакторить просто не дано.

Corey
()
Ответ на: комментарий от Corey

Ну а для типичного веб-приложения вполне сойдет.

Если к нему не придётся возвращаться через несколько лет и если приложение состоит из пары десятков сущностей — то, наверное.

Но спор-то, как раз, о нормальных крупных проектах.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

А под Linux или хотя бы Windows есть и без того тонна популярных, реально работающих и более приличных языков, от PHP до Java

от PHP до Java.

PHP

А, ну да, ПХП это образчик небыдлоязыка.

Corey
()
Ответ на: комментарий от Corey

А, ну да, ПХП это образчик небыдлоязыка.

Намного надёжнее и предсказуемее, чем JS :)

(если что, я и на том пишу, и на другом)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Но спор-то, как раз, о нормальных крупных проектах.

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

Corey
()
Последнее исправление: Corey (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Намного надёжнее и предсказуемее, чем JS :)

Я тебе просто не верю. Я до сих пор не могу развидеть то, с чем мне приходилось работать в PHP. Скорее всего, у нас абсолютно противоположная ситуация, и мы оба видели разные стороны обеих медалей.

Corey
()
Ответ на: комментарий от Bad_ptr

кодеры на жс настолько массовы и дёшевы

Это ложь. Огромного труда стоит найти дисциплинированного программиста, который знал бы все нюансы js. Это вам не жабка, где можно купить книгу «освой программирование за 24 часа» и смело идти зарабатывать свой первый миллион.

Corey
()
Ответ на: комментарий от Deleted

Тебя не интересует, сколько объектов подмешало себе этот метод. Тебя интересует, где этот метод вызывается. А это как раз-таки и грепается элементарно.

Corey
()
Ответ на: комментарий от Corey

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

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

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

Corey
()

Built almost twice as fast with fewer people
Written in 33% fewer lines of code
Constructed with 40% fewer files

Лалки, с любым не жаба языком вышло бы так же.

zz ★★★★
()
Ответ на: комментарий от Deleted

Что ты несёшь. Слив засчитан. У мамки погромист он, лол.

ritsufag ★★★★★
()
Ответ на: комментарий от Bad_ptr

Ну вот теперь ещё и сервера на ЖС будут.

Уже давно были, поддежка JS вместе с VBscript была в классическом asp.

pawnhearts ★★★★★
()
Ответ на: комментарий от KRoN73

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

ritsufag ★★★★★
()

Их причина эпический фейспалм: они не могли найти жаберов знающих жабаскрипт.

Конечно они не перейдут на скалу - там же обезьяны работают которые жабаскрипт не осилели.

r ★★★★★
()

PayPal мигрирует с Java на Node.js

Node.js

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

PolarFox ★★★★★
()
Ответ на: комментарий от Deleted

он _копирует_ код

В abject oriented programming это называется наследование. Он унаследовал серверный код от клиентского.

Вообще клиентский жабаскрипт — это пляски вокруг DOM, не понимаю как этот же самый код может быть полезен на сервере.

PolarFox ★★★★★
()

Теперь их сайт еще сильнее тормозить будет?

Lavos ★★★★★
()
Ответ на: комментарий от ritsufag

пишу пагинацию на клиенте, а потом вдруг думаю дай ка сделаю её на сервере и просто КОПИРУЮ код без изменений на сервер

Вот с этого места поподробнее, пожалуйста.

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

Итак, пагинация на клиенте — это:

  • поймали евент,
  • отправили аяксом запрос,
  • обновили ДОМ.

Допустим, ты скопировал этот код на сервер. Возникает закономерный вопрос: как это вообще будет работать? Какое событие будет ловить, куда отсылать аякс, какой ДОМ обновлять? И самое главное, как это всё окажется у юзера на клиенте?

Apple-ch ★★
()
Ответ на: комментарий от Apple-ch

Та функция занималась расчётом кол-ва страниц и генерацией собственно пагинатора. Ей по сути нужно было указать общее кол-во записей и кол-во записей на страницу.
Эвентами и запросами у меня занимается angular.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

Та функция занималась расчётом кол-ва страниц и генерацией собственно пагинатора.

Это такая сложная задача, что вызывает необходимость отдельного упоминания? :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Это такая сложная задача, что вызывает необходимость отдельного упоминания? :D

Ну раз уж спросили.

ritsufag ★★★★★
()
Ответ на: комментарий от KRoN73

Нет. Я не понимаю в чём вопрос? Фронтенд и бекенд пишутся на одном ЯП что не может не доставлять и в большинстве случаев код может перетекать туда сюда.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

Фронтенд и бекенд пишутся на одном ЯП что не может не доставлять и в большинстве случаев код может перетекать туда сюда.

Я, вот, как раз занимаюсь тем, что пишу и фронтенд, и бэкенд. Но не возникает никакого желания по перенесению кода с одной стороны на другую. Слишком разный код и слишком малы пересечения. Какой смысл ломать голову о переносе сотни-другой строк кода, когда объём проекта измеряется сотнями тысяч строк?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Так никто и не ломает, просто приятно что код написанный однажды для фротенда можно спокойно перенести на в бекенд.

ritsufag ★★★★★
()

Почему бы не допустить такой вариант реконструкции событий: они собирались переходить с явы на руби, но передумали в пользу nodejs когда осознали, что он работает существенно быстрее?

geometer
()
Ответ на: комментарий от ritsufag

В этом случае всё приложение будет разрабатывается одними и теми же людьми.

Что, и дизайн с вёрсткой эти же люди делать будут? Бэкенд и фронтенд, в общем, должны разные люди делать. Так как логика и идеология разная. Ну а если всё делают пара-тройка человек «на все руки», то снова проект вырисовывается мелкий. Да, там JS ещё не сможет заметно показать свои проблемы. Но мы-то про крупное решение пишем. Ты всерьёз полагаешь, что в PayPal фронтед сайтов и серверный бэкенд одни люди пишут? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Нет. Я говорю про код, а ты пытаешься навязать свою демагогию.

Бэкенд и фронтенд, в общем, должны разные люди делать.

Должны но не обязаны.

Ты всерьёз полагаешь, что в PayPal фронтед сайтов и серверный бэкенд одни люди пишут?

Я ничего не полагаю, просто говорю что такой вариант тоже не исключён.

ritsufag ★★★★★
()

Пипец. Уродство шагает по планете.

Deleted
()
Ответ на: комментарий от PolarFox

Вообще клиентский жабаскрипт — это пляски вокруг DOM

Пора выбираться из конца 90-х - сейчас в клиентском JS плясок вокруг DOM не больше, чем в любом серверном ЯП плясок вокруг вьюх.

drakmail ★★★★
()
Ответ на: комментарий от KRoN73

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

drakmail ★★★★
()
Ответ на: комментарий от Deleted

Сколько раз используется метод с именем 'method', не путай с переменной.

А вот за это в приличных местах бьют морду.

Xellos ★★★★★
()
Ответ на: комментарий от drakmail

модели, обычно они схожи на клиенте и на сервере

Обычно они достаточно различаются на клиенте и на сервере.

Xellos ★★★★★
()

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

Vit ★★★★★
()
Ответ на: комментарий от KRoN73

Бэкенд и фронтенд, в общем, должны разные люди делать. Так как логика и идеология разная.

в США кстати давно считается хорошим тоном как раз full-stack developers, так как эти люди сделают более хороший продукт и не нужно мирить две-три разные команды на тему «а вася вот мне еще api не написал» или «петруха там шлет слишком много данных» или «это не моя задача»

backend или frontend это не rocket science и вполне можно осилить оба направления, а твой business value сразу восходит в небеса.

с другой стороны, действительно при работе над одним или другим задействованы слегка разные доли мозга, но ничто не мешает расделить эту работу на подзадачи и сделать все хорошо.

umren ★★★★★
() автор топика
Ответ на: комментарий от drakmail

На практике выходит ни фига не так. У меня получилось, единственное что хорошо шарится - рендеринг шаблонов. Это конечно очень удобно. Но для этого не обязательно ВЕСЬ серверный код делать на ноде.

С ноды вполне можно срубить вкусных плюшек. Но для этого нужны хорошие архитекторы, а не менеджеры-полководцы, которые с умным видом рассуждают «здесь мы пустим самолёты, здесь двинем танки, а тут установим нодежс».

Vit ★★★★★
()
Ответ на: комментарий от ritsufag

просто приятно что код написанный однажды для фротенда можно спокойно перенести на в бекенд.

Так может говорить только школоло, который только начал тыкать в ноду и еще не сталкивался с веселым дебагом.

Например, как ты ловишь исключения случившиеся в колбеках к монгустовским коллекциям?

И мусье настолько чакнорист, что никогда не прозевает вызов колбека?

Про слабую типизацию в энтерпрайзе даже говорить не хочется.

baverman ★★★
()
Ответ на: комментарий от Vit

Но для этого не обязательно ВЕСЬ серверный код делать на ноде.

А также не обязательно ВЕСЬ код делать асинхронным.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.