LINUX.ORG.RU
ФорумTalks

Зачем нужен node.js?

 ,


1

4

Почему идея использовать инструмент не по назначению набрала такую популярность? Ведь js сам по себе сильно урезанный язык, и предназначался для создания всяких свистоперделок на стороне клиента? Как так получилось, что его стали использовать везде и повсюду? Мое имхо — куча фронтендщиков, которые не могут в программирование и не знают ничего кроме своего жаваскрипта загорелись идеей писать настоящие программы и зафорсили ноду.

не могут в программирование

а программирование это что, Java что-ли?

vim ()

Жаваскрипт это ЯП, а не toogle и снежок на жкьери. На нем сидит даже гномощель в конце то концов.

ritsufag ★★★★★ ()
Последнее исправление: ritsufag (всего исправлений: 1)

imho всему начало - Mozilla XUL и, конечно же, жуткая ущербность самого HTML в далеком 1996 году. Помимо JS было накостыляло просто неимоверное количество «кросс-платформенного» нечто.

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

robot12 ★★★★★ ()

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

Да и скорость выполнения javascript'a нодой очень высокая, практически не отстает от программ на C++, а разработка гораздо быстрее.

В одной книжке я прочел примерно следующее: «Писать код на javascript проще, чем где-либо. Писать качественный код на javascript сложнее, чем где-либо.» Перефразируя, могу сказать, что для проектов на javascript сложнее helloworld нужна очень высокая квалификация. Возможно, через несколько лет ты войдешь в их число и будешь смотреть на некоторые вещи уже по-другому.

slyjoeh ★★ ()

Зачем? Потому что они (авторы ноды) могут.

PolarFox ★★★★★ ()

Потому что простота всегда побеждает, в отличает от public static final Map<Integer, String> MAP = new HashMap<Integer, String>();

JN ()

Ведь js сам по себе сильно урезанный язык

бгг еще один дебил

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

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

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

В следующий раз попробуйте юзать модульное тестирование.

JN ()

Почему идея использовать инструмент не по назначению набрала такую популярность?

Кто определяет назначение JavaScript?

Ведь js сам по себе сильно урезанный язык

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

и предназначался для создания всяких свистоперделок на стороне клиента?

Не свистоперделок, а веб-приложений с богатым пользовательским интерфейсом. Свистоперделки это тег audio.

Как так получилось, что его стали использовать везде и повсюду?

А везде и повсюду это где? Определённая ниша у node.js есть, но она не очень большая по-моему.

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

Доступность специалистов, это важное преимущество node.js перед конкурентами, тут не поспоришь.

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

В следующий раз попробуйте юзать модульное тестирование.

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

PolarFox ★★★★★ ()

Ведь js сам по себе сильно урезанный язык

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

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

В следующий раз попробуйте юзать модульное тестирование.

static@static-mbp:~$ npm update -g
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "update" "-g"
npm ERR! node v0.10.34
npm ERR! npm  v2.1.14

npm ERR! Object.keys called on non-object
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <http://github.com/npm/npm/issues>

Далее в цикле это повторяется бесконечно ) Разработчики пока не планируют это фиксить. Судя по другим репортам, они сломали что-то серьёзное.

static_lab ★★★★★ ()

Ведь js сам по себе сильно урезанный язык

Чем или в чём?

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

Да и скорость выполнения javascript'a нодой очень высокая, практически не отстает от программ на C++

Ага, «практически». Я эту хохму уже 10 лет от всех тормозных ЯП слышу. Попытки пруфов можно сразу смехопанораму отправлять.

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

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

Это можно применить к любым другим языкам с динамической типизацией, проблемой отдельно взятого javascript это не является. И даже в C++ надо проверять указатели на nullptr.

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

При тестировании статической типизации не придётся отвлекаться на мелочи вроде проверки что куда засовываем.

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

Ну, V8 действительно быстр. Новый экспериментальный движок от мозилловцев тоже подтягивается.

PolarFox ★★★★★ ()

Тоже никогда этого не понимал... Зачем нужно это node.js, зачем нужен emscripten... Хотя. Пофиг, я к этому отношение не имею и не буду забивать голову такими вещами

Meyer ★★★★ ()

Почему идея использовать инструмент не по назначению набрала такую популярность?

Чё?

Ведь js сам по себе сильно урезанный язык

Где он урезаный? Хера себе урезанный, чёт я его вторую неделю раздуплить не могу. Родовые травмы есть, ну дык растёт парень, до свадьбы заживёт.

и предназначался для создания всяких свистоперделок на стороне клиента

Где ты этот бред прочёл?

Как так получилось, что его стали использовать везде и повсюду?

И что? Это язык общего назначения. Использовали бы например lua что поменялось бы? Сообщество большое.

А nodejs так это просто платформа.

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

Где ты этот бред прочёл?

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

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

зачем нужен emscripten

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

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

А потом мы случайно кладём в одном месте вместо строки число

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

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

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

Инструменты, создание которых отталкивается от потребностей, обычно эффективнее и живучее инструментов, создание которых отталкивается от возможностей.

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

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

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

Ну, V8 действительно быстр.

действительно

Ну хватит уже...

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

Ага, «практически». Я эту хохму уже 10 лет от всех тормозных ЯП слышу. Попытки пруфов можно сразу смехопанораму отправлять.

Давай, приведи пример, где node.js будет ощутимо медленнее, чем с++.

slyjoeh ★★ ()

Всё на самом деле очень просто. Смотри, есть куча фронтендщиков, но что бы стать программистами - нужно многое читать, изучать. Они завидовали, завидовали... и придумали, как нефига не делая, теперь ещё и на сервере, десктопе и т.д. только на своём яваскрипт писать. Для них понатыкали api, что бы они не чувствовали себя ущербными по сравнению с не кастрированными ЯП. Упоролись настолько, что даже теперь в их рядах node.js у них раскол. Но не суть. В общем, вот она вся и популярность.

Каким-то чудом, этот ужасный синтаксис(для них конечно это священный грааль, считают что он самый идеальный) ещё притягивает и других людей. Но это уже их проблемы. Ещё очень любят сравнивать скорость js с C/C++, сами не понимая чего мелят. Например, в определенных тестах Python обогнал нативный Си, но что-то Питонисты не делают из этого культ и не тычут во всех этим.

В общем, популярно это только в среде фронтенд в основном. Традиционные инструменты для традиционных задач никуда не делись, развиваются и люди работают дальше, как и работали. Нет никакого массового суицида перехода на js и не будет. Ещё они свято верят, что js захватит мир. Ога)

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

этот ужасный синтаксис

Покажите, пожалуйста, пример не-ужасного синтаксиса.

Xellos ★★★★★ ()

Прибей Lua к libevent, покажи всем, как ты можешь.

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

public static final Map<Integer, String> MAP = new HashMap<Integer, String>();

Prelude Map> let m = Map.empty :: Map.Map Integer String

Тайпкаст просто для красоты и на самом деле не нужен.

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

Давай, приведи пример, где node.js будет ощутимо медленнее, чем с++.

Везде где нужно использовать больше одного треда.

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

давай конкретный пример

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

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

Классический пример отвратительного синтаксиса.

Xellos ★★★★★ ()

Очередной вброс, ну да ладно.

Потому что javascript, вопреки мнению тех кто его просто не знает вполне себе обычный интерпретируемый язык, нигде не урезанный, а полнофункциональный. Просто так сложилось, что у него нет стандартной библиотеки. Если рассматривать его как язык с множеством реализаций, а nodejs одна из них, browser другая, то получается, что у каждой реализации своя библиотека работы с файлами и прочим.

Почему nodejs? Потому что javascript просто и стараниями бразеристов, жабистов(как встраивамый рхино) и мелкософта(жискрипт) стал самым распространённым кросплатформенным языком из интерпретируемых. На этой волне, или точнее внутри неё, nodejs также стал популярен, так как это относительно небольшая обвязка вокруг js для несложного асинхронного программирования.

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

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

Вот этот бред вообще конечно удивляет. Как случайно? Просто берём и ввод из инпута без проверок кидаем в объект? Ну это можно конечно, но это не проблема js.

К вашему и удивлению множества других людей, обычный js лишь с небольшими доработками можно подвергнуть type inference.

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

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

t184256 ★★★★★ ()

Мое имхо — куча фронтендщиков, которые не могут в программирование

дай определение «программирование», да и как ты понимаешь твое имхо, это лишь твое маленькое имхо :)

umren ★★★★★ ()

С точки зрения хипсторов-фронтендеров, все правильно написал, они хотели свой бекенд.

С точки зрения ынтерпрайза - компания обучает сотрудников работе с одним ЯП. Всех, и фронтендеров, и бекендеров. В случае необходимости переброса рабочей силы с одного фронта на другой это спасает (если предполагается, что продукт компании не просто сайтик с анимашками на жсе, а более-менее полноценное приложение в браузере, с кучей логики и крутыми плюшками).

С моей точки зрения получилась достойная замена PHP. Суть та же самая - хочешь написать хорошо, пиши хорошо и запотевай над качеством кода. Хочешь писать плохо - сел и пишешь плохо.

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

Зачем авторитет? Это же всем известно - питоновский синтаксис убог.

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

Давай исходник на плюсах.

Зачем? Для начала ты давай исходник на node.js, считающий факториал в несколько тредов.

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

считающий факториал в несколько тредов

WebCL? Всё равно это лишь частный случай параллельного программирования. Распараллелить типичный код можно через Future-Promise, т.е. те же асинхронные вызовы и callback'и, которые так любят node.js-проггеры.

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