Как стать автором
Обновить

Комментарии 105

<?php
	echo 'Hello World!';
?>


const http = require('http');
const hostname = 'localhost';
const port = 8000;

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});


Это как бы совсем разные вещи. Чтобы пхп-код отобразил hello world в браузере, нужно поднять и настроить сервер. А просто скормить этот код интерпретатору, то сообщение выведется в STDOUT. Так что аналогичный код на js — console.log('Hello world');.

А вот приведённый код на js запускает сервер, слушающий 8000-й и выводящий строку в ответ на запрос. Причём сервер асинхронный.

Даже упертые Node.js-разработчики должны использовать PHP для простых сайтов и приложений.

Ну прям обязаны.

К сожалению, такое могут себе позволить не все хостеры, поэтому и цены будут соответствующие.

2016 уже. VDS-ки дешёвые. Shared-хостинги уже отживают своё.

А вообще — очередная ненужная холиварная статья с субъективными мнениями.
Hello world на PHP тоже выглядит проще
Hello world!
Это да, сейчас почти на любом языке можно 1-й командой поднять сервер даже с CGI. Но всё равно, способы выполнения кода разные.
В случае пхп наш сервер — внешнее приложение, исполняющее пхп-код и перенаправляющий STDOUT в тело ответа (ну в простом случае, который в статье).
В случае JS мы программно создаём сервер с неблокирующим IO, можем им управлять и т.д.
В случае JS мы программно создаём сервер с неблокирующим IO, можем им управлять и т.д.


Конечно, именно так. И именно по этой причине PHP проще. По умолчанию у PHP абсолютно тупая схема работы, и это позволяет очень быстро поднимать сервисы, удобно и быстро их скейлить а когда количество серваков уже дороже работы программиста, применять решения типа php-pm (не умирающий PHP, не путать с php-fpm) и т.д. для ускорения критических частей системы, при чем вообще не переписывая «синхронный» код. Так же есть проекты типа amphp, которые привносят асинхронщину на корутинах в PHP, что удобно.

То есть PHP очень простой и очень хорошо скейлится. Для задач где мне придется точно работать с большими потоками данных (именно потоками данных а не сложной логикой) я скорее всего буду смотреть в сторону ноды с его простым ивент лупом или же в сторону go/erlang.

мы программно создаём сервер с неблокирующим IO

В Go http сервер часть стандартной библиотеки. Означает ли это что go проще чем nodejs в плане написания helloworld? нам же не надо ничего ставить для этого.
Ну я не утверждал, что одно проще второго. Я просто указал на то, что примеры не эквивалентны и плохо сравнимы между собой. Собственно, как и пхп с нодой. У них есть свои области применения, в которых они хороши. И эти области на самом деле почти не пересекаются.
Эм, а поконкретнее? Если в случае пыха всё довольно очевидно — абсолютно любое серверное I\O приложение, то в случае ноды я затрудняюсь с ответом, что бы «не пересекать» области применения.
PHP плохо подходит (пока что) для обработки потоков данных, nodejs в этом плане лучше (event loop из коробки, вся стандартная библиотека не блокирует поток выполнения и все такое).

То есть чатики писать удобнее на ноде, а сложную бизнес логику с возможностью скейлиться быстро + дешево — PHP. Подходы которые одинаково хороши как для ноды и как для PHP требуют немного другого уровня знаний от разработчиков (вроде cqrs, event sourcing) и тут стоимость решений и риски будут примерно одинаковые, но нода будет выигрывать по производительности из коробки.
По-моему это слишком «бородатые» факты (ну кроме локов стримов), что бы брать на веру. Надо тестить, т.к. php 7 + react в стеке на продакшене буквально перевернули мои взгляды на «умирание пыха».

Так что лично я нынче засомневался во всём, что касается вроде бы очевидных вещей, с которыми согласился бы раньше без раздумий.
т.к. php 7 + react в стеке на продакшене буквально перевернули мои взгляды на «умирание пыха».


Я говорю про «из коробки» и «удобство». PHP7 + amphp более чем норм для потоковой обработки данных, НО он все же медленнее jS и у него вся стандартная библиотека синхронная. Проект amphp развивается, через годик такими темпами уже будет ништяк все, но все же повторюсь. Для всего этого и что бы все было ништяк — надо брать дорогих разработчиков. И профит слегка теряется.
2016 уже. VDS-ки дешёвые. Shared-хостинги уже отживают своё.

Вот только все разработчики и пользователи продуктов не стали, пока, поголовно системными администраторами.
Предлагаете плодить массы не настроенных, и не поддерживаемых нормально vps? Что ж, ботнетоводы и прочие злоумышленники будут рады.
А зачем пользователям продуктов хостинги вообще? Если они пользователи, то подпускать к серверам их не стоит.
Да и все ли shared-хостинги настроены нормально? В их внутренности вы не сможете заглянуть. Вы уверены, что их админят знающие и адекватные люди? Приходится надеяться на неизвестных вам людей.
А в случае VDS можно хотя бы нанять кого-то на аудит.
А зачем пользователям продуктов хостинги вообще?

А кем являются все те люди, которые пользуются хостингом? Они являются пользователями того или иного продукта, например того же wordpress, установив его и ведя в нём блог.

Да и все ли shared-хостинги настроены нормально?

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

А в случае VDS можно хотя бы нанять кого-то на аудит.

В случае VDS, абсолютному большинству, не можно, а нужно нанять того, кто его нормально настроит, а потом будет приглядывать за ним.
Ещё раздобыть место для бекапов и.т.п. Т.е. это уже совсем не так бюджетно, как кажется на первый взгляд.

Ну и наконец, в случае шаред хостинга, как и VDS при проблемах с поддержкой/работой его меняют.
Кстати, насколько оверселят хостеры VDS, насколько грамотно у них построена инфраструктура, и насколько адекватны их специалисты, вы тоже не знаете, и посмотреть своими глазами не можете, как и на шареде.
Я предлагаю сделать Вам голосовалку, я бы проголосовал за NodeJS
Сравнение фреймворков нулевое, сравнение библиотек нулевое. Опять хелловорлдами меряемся?
PHP — можно делать по DDD с красивым ООП (потому что красивая функциональщина в PHP не выйдет), JavaScript — можно делать красивую функциональщину. Отсюда имеем как минимум совершенно разные сферы применения. И все. Отсюда у нас есть ограничения по фреймворкам и их слабые/сильные стороны.

Проблема — мало кто делает в PHP DDD с красивым ООП и уж тем более мало кто делает в JS красивую функциональщину.
Страстью! :)

P.S. По такому же критерию давайте ДВС и реактивные движки сравнивать. Ага, по страстности конструкторов )
Какая то субъективная оценка (Особенно в части пунктов о будущем технологий, о производительности и инструментах разработки).

Достаточно вспомнить что Ruby в общем и RoR в частности тоже взлетел очень быстро и был окрещен «убийцей php и прочих „говноязыков“», а потом как то сдулся и занял свою узкую нишу стартапов.

То же самое сейчас творится и с JS. Умные дядьки разработали классную платформу для решения определенных узких задач. Пришли куча фронтэндщиков которые раньше рисовали формочки и прелоадеры в браузере и возомнили себя супермегаспециалистами во всех областях разработки ПО, и начали клепать кучу говнокода используя здравую технологию не по назначению.

Пишут на бедной ноде сейчас все кому не лень и все что попало. Количество говнокода перевалило больше чем его было в том же PHP за все время. Слава богу в ракеты и авиационные системы до сих пор не встроили… И всегда у таких разработчиков один аргумент «Зачем мне учить С++ я и на node могу десктопное приложение написать». «Зачем мне учить ObjC я и на ноде могу под iOS написать». Увы но качество этого ПО ниже плинтуса в 90% случаях.

IMHO порог входа у node.js с нуля (не переучиваясь с PHP или Java) на порядок ниже чем в PHP. Сам язык проще на порядок.
JS намного сложнее, по-моему, если учитывать его структуру — прототипы, прото, километры подводных камней в типах и контекстах. Пых же имеет совершенно квадратную архитектуру языка, обвешан огромным апи на все случаи жизни и не имеет вообще проблем с типами (кроме разве что каста строки к массиву) и объектной структурой.

JS кажется проще потому что там функция на все случаи жизни, а манки-патчинг позволяет творить всё что угодно с чем угодно. Задача на js решается всегда «в лоб», на пыхе зачастую проходится весь путь от интерфейсов и адаптеров до самой бизнес-логики. Т.е. пых в текущих его ипостасиях больше походит на джаву или шарп с их километровыми абстракциями и полиморфизмом из-за чего и кажется сложнее.
JS намного сложнее, по-моему, если учитывать его структуру — прототипы, прото, километры подводных камней в типах и контекстах.

Это вы назвали те архитектурыне решения что в JS называют «фичами», а в PHP «Говняная архитектура говняного языка». :D

Я рассматриваю с точки зрения синтаксиса языка и языковых конструкций которые повзоляют упростить решение тех или иных задач.
С этой точки зрения на мой опять таки личный взгляд JS проще. Не надо парится надо абcтракциями, паттернами, не надо вообще не о чем думать, садишься и решаешь как вы заметили задачу «в лоб» попутно борясь с «фичами». Если не знать вообще об абстракциях, ООП, архитектуре и т.п. и изучать JS как первый язык то все будет достаточно просто.
Так на пыхе тоже так же можно, «в лоб», но это, как вы выразились называется «Говняная архитектура говняного языка». Так писали раньше, когда 5.2 был в моде (хотя и это не факт).

Я постарался просто объективно оценить «сложность языка для полного его осмысливания», а не ту ступень, на которой находятся популярные пакеты в npm\composer. Потому что если оценивать именно уровень «как начать писать, что бы никто потом не убил за говнокод», то тут JS однозначный лидер, согласен.
Просьба пояснить что не так в моём высказывании (за что минусы), т.к. если расшифровывать моё высказывание, получается следующее.

Объектная модель:

В php:
— Примитив (int, string, array, null, bool, resource)
— Класс (интерфейсы и трейты тоже классы внутри языка)
— Объект класса

В js:
— Функция
— Объект от функции (в т.ч. null, который объект вообще без прототипа, т.е. без производной от функции)
— Прототип объекта (поле у функции)
— Прото объекта (поле __proto__)
— Примитивный объект (объект с symbol методом primitive value в ES'15)
— Примитив (только undefined)

По поводу способа решения задач — можно открыть ссылки на гитхаб на любую популярную библиотеку\фрейм, из выдающихся на js могу отметить разве что Aurelia, в остальных, даже Angular на TypeScript — сделано всё высокосвязным и «в лоб» или минимальной абстракцией.

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

Нету ни какой обиды, Я программирую уже больше 10 лет и за это время был и фронт и бэк и сайты и прикладные нативные приложения и промышленные контроллеры и мобильные приложения, мне просто есть с чем сравнивать. Я писал и на JS и на PHP и на C# и на Java и на Ruby и на Node.js и под системы Metso DNA и Siemens-S7 и я до сих пор уверен что место JS в браузере. Ну еще в области простеньких микросервисов если говорить о node.js
К сожалению, такое могут себе позволить не все хостеры, поэтому и цены будут соответствующие.

5 баксов за digitalocean — дорого? Или вы мечтаете про бесплатные хостинги?
5$ по нынешнему курсу — это не так дорого, но дешевле брать у отечественного поставщика. Рубль не стабилен сейчас. Поэтому брать в долларах для проекта, который пока не имеет инвесторов — абсолютно не выгодно.
тогда шах и мат — aws 1 year free ;)
тем более, они подняли фришный уровень и дают по факту 2 машины по 1гб оперативки
Это отлично, с этого и надо начинать ;)
Вот, тоже заметил этот момент. Сервера уже давно копейки стоят. Некоторые хостеры совсем обнаглели, там цены выше чем за VPS/VDS. Т.е. в некоторых случаяx, сервер даже дешевле будет.
Ну так в случае с хостингом за этим зоопарком на сервере нужно следить, и поддержку осуществлять. Т.е. тут уже стоимость человеко-часов влияет, а не чисто стоимость железа.
Да, есть такое. Администратирование стоит денег. С другой стороны проекты где это администратирование нужно — не влезут на шаред хостинги. Проблема в основном в базовой настройке (порты позакрывать, права настроить)
Проблема в основном в базовой настройке (порты позакрывать, права настроить)

Ну не скажите. Вот к примеру у одного из клиентов ломанули Joomla и начали массово рассылать спам, причем с такой интенсивностью, что очередь на отправку была больше миллиона писем (тупо место закончилось). Там даже проблема было почистить этот каталог штатными средствами всё очень тупило. И что вы предлагаете новичку делать?
именно! Бесплатные! А как же студенты и опен сорс? Да и просто поиграться или показать кому-то, платить по 5$ в месяц?
На php бесплатных хостингов море!
А как же студенты и опен сорс?


github pages покрывает 70% нужд опенсурса, остальные 30% — тут есть варианты. Да и студенты не такой бедный народ что бы небыло 5-ти баксов. А даже если нет — опенсурс же, найдется кто-то у кого есть сервачек за пазухой если сильно надо.
Раньше студенты как-то догадывались собрать дома из говна и палок сервак, «допиздиться» с местным провайдером о выделенных IP и обратных зонах, после чего хостить на нем всякую никому не нужную хрень, получая за это лишнюю копеечку.
Вы забыли, что с VPS, как минимум нужно разбираться больше, чем с хостингом. У многих начинающих проблема, с тем как залить что-то на хостинг по FTP, а вы хотите чтобы они подняли ноду на vps.
Ну без знания азов администрирования UNIX нет смысла заниматься такой разработкой.
Для ознакомления вполне подойдёт убунта в качестве ОС. Программ в репе много, все идут с хорошими конфигами. Нода на vps в режиме «поиграться» поднимается парой команд.
Для «поиграться» ноду и на винду можно поставить. Речь о том, чтобы хоть какой-то хомпейдж сделать.
Для хомпейджа достаточно тех же нескольких команд. А юниксы надо хоть немного знать, так как на 90% VDS будет именно он.
В конце концов, это, например, не какая-нибудь платёжная система, где всё должно быть энтерпрайзно и секьюрно.
Если у вас есть свой сервер, виртуальный или нет не важно, у вас должно быть всё секюрно. Чтобы не слить домен в блеклисты при релее спама, например. Или не слить огромную сумму за ресурсы в облаке, которые потратили за вас… А если не повезёт можно и на что-то более криминальное нарваться.
Многие этого не понимают, и многих из них это и не коснётся в итоге, но вероятность попасть отнюдь не нулевая.
сначала пусть поднимут ее в вагранте на виртуалке. Потом потренеруются. Потом пусть поучатся, коль уж решили заниматься еще и администратированием а не приглашать специалиста… Ну вы меня поняли.
Шаред хостинг и есть в какой-то мере «приглашать специалистов».
И самое забавное если почитать комментарии судей, то Бруно в основном выдает объективные суждения и где то даже молчит или уступает,
а Джейсм в основном только и делаеть что расхваливает ноду :/
Потому что Бруно скорее всего в целом насрать.
Он знает на каких задачах его язык не очень, и вместо того чтобы горлопанить, как этот переделаный версталь, тихо учит Scala :D
Лол. Как же забавляют почитатели ноды, что постоянно пишут какие-то левые сравнения что лучше и что хуже.
Потушите уже пукан и пишите код.
Причем обязательно пишут с интригой, типа сначала нода проигрывает, а потом догоняет и вырывается вперед :)
Ну, а всякие параметры типа страсть и будущее — вообще смешно. Сколько уже этих убийц PHP было, где убийца Wordpress на ноде?
Во-первых, я имел в первую очередь аналогичную по популярности систему, а не о том, что на ноде в принципе можно сделать бложик.
Во-вторых, классная альтернатива, которую даже скачать нельзя или демку увидеть.
Очередная альтернатива, которая забудется через неделю. Про ghost ведь уже забыли? Который был первым блоговым движком на ноде ;)
Несколько особенностей, которые делают Node.js так популярны (скорость, масштабируемость, совместимость с JSON, низкое использование ресурсов), позволяют использовать его для многих других видов применения, например, питающих разработке микроконтроллеров (IoT). Я имею в виду, кто не любит роботов?

Перевод на троечку. Даже согласование слов после гуглтранслейта не поправлено, не говоря уж про осмысленность перевода. Во многих местах приходится ломать голову и переводить обратно, чтоб понять, какая мысль была в оригинале. Пожалуй лучше оригинал почитать.
Подробный мануал «как устроить холивар из пустого места».
— Милая, нам нужно серьезно поговорить…
— Наконец-то повзрослел! Давай!
— Как ты думаешь, кто сильнее, акула или медведь?

Очередное сравнение несравнимого. Все это — лишь инструменты. Определенным задачам — определенные инструменты.
Каждый раз, когда я вижу замечание, меня тянет задать вопрос. Каким задачам какие инструменты? Конкретно.
Я вот могу назвать задачи, спецом для решения которых были созданы что php, что node.
ИМХО:

Если Вам надо написать быстро сайт из 2-3 страниц — я бы не стал его писать на Node.
Не потому, что этого сделать нельзя, а потому что не целесообразно.

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

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

Если мне надо написать высоконагруженное API для какого-то сервиса, я бы не стал его писать на PHP, а выбрал Node или, вообще, Go.
Не потому, а просто потому, что удобней, стабильней и проще.

И еще вдогонку на «подумать» — если у меня штат PHP-программистов, я бы не стал писать вторые две задачи на Node, как и не стал бы писать первые две на PHP, если бы у меня был штат NodeJS-ников.

Надеюсь, понятно.

P.S. Микроскопом вполне неплохо забиваются гвозди, если приноровиться. Но это не повод.
Всегда есть инструмент который более подходит для одних конкретных задач и менее для других.
Забыл дописать в P.S.:
Всегда есть инструмент который более подходит для одних конкретных задач и менее для других. Но это не в коем случае не говорит о том, что данный, подходящий инструмент круче другого, не подходящего. Они просто разные. Ибо очень много гиков любят восхвалять то, что модно или на чем они пишут, принижая все остальное. Это не программисты — это гики, ибо программисты пользуются языками как мастер — инструментом. Нужный для нужной задачи. И не пишут статьи «Молоток vs Отвертка».
Вы начали с того, что сравнивать php и node некорректно, потому что каждой задаче нужно подыскивать свои инструменты, раскрыли свою мысль утверждением, что отличия инструментов в том, что кадров по php на рынке в разы больше и они дешевле, а закончили проведением аналогии между сравнением php с node и молотка с отвёрткой.

Любая аналогия врёт, но ваша врёт особенно нагло. Основная функция молотка — забивать гвозди, основная функция отвёртки — закручивать шурупы. Нельзя заменить отвёртку молотком и молоток отвёрткой. Основная функция php и node — изготовление бекенда с веб-сайтам. Они прекрасно заменимы и без особых проблем справляются с одним и тем же множеством задач.

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

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

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

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

И да — Node и PHP — это два разных инструмента, заточенные под разные вещи, что не мешает на них реализовать одинаковый функционал — да — однако удобство и окружение языка диктуют определенную область применения.
У вас инструменты не аллегория, а аналогия. Есть разница. И аналогия эта лжёт. Лжёт потому, что в спектры применения php и node пересекаются, а спектры применения молотка и отвёртки — нет.

Я просил вас раскрыть свою мысль и написать для каких задач подходит php а для каких node. Вы написали, что php подходит для 2-3 страничных сайтов, а node для высоконагруженных одностраничных приложений. То есть разница не такая уж чтобы большая. Но если вам вдруг кажется, что сделать 2-3 страничный сайт на node примерно настолько же сложно, как сделать сайт на баше, я буду очень удивлён.

Считаете, что node и php должны решать совершенно разные задачи — может так и есть. Но пока что вы привели в пример задачи, которые без особых проблем решаются что одним инструментом, что другим. Как только находится задача, которую можно решить двумя разными инструментами — эти инструменты можно сравнивать по критению удобства решения этих задач.
И еще — полегче на поворотах — я никому ничего не вру. Я ответил Вам на Ваш-же вопрос с моей точки зрения. Вы, я надеюсь, ИМХО видели в моем комментарии.
Да и точек зрения на одно и тоже может быть несколько.
Вы не врёте, а аналогия ваша лжива. Как в общем и все аналогии. Просто в случае с молотком и отвёрткой это особенно очевидно. Вот как-то так.
И тем и другим можно, в принципе, сделать одни и те же операции.
Но одним удобнее делать операцию, которую менее удобно делать другим.

В чем лживость?
Какие операции, которые можно делать молотком, можно делать отвёрткой? И какие операции, которые можно делать отвёрткой — можно делать молотком?

Ответ простой — никакие. Множества операций, для которых предназначен молоток и операций, для которых предназначена отвёртка — не пересекаются. А множества операций, для которых предназначен php и операций, для которых предназначен node — пересекаются. Задачи, которые решает php можно без особых усилий решать нодой — и это будет удобно. И наоборот.

Вот поэтому аналогия между парой молоток-отвёртка и php-node лжива.
Какие операции, которые можно делать молотком, можно делать отвёрткой? И какие операции, которые можно делать отвёрткой — можно делать молотком?


И тем и другим можно здорово так калечить людей.

Задачи, которые решает php можно без особых усилий решать нодой — и это будет удобно. И наоборот.


Не все задачи на PHP будет так же удобно сделать как на ноде, с другой стороны не все решения на nodejs можно сделать так же удобно как и на PHP (попробуйте на PHP пописать функциональщину), пускай и жертвуя чуть чуть производительностью (хотя этот вопрос можно обойти).

В целом это все пустое.
И тем и другим можно здорово так калечить людей.

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

Тем не менее многие задачи одинаково удобно делать на ноде и на php. И по критерию удобства решения этих задач nodejs и php прекрасно сравниваются.
Эмм… Вы реально все это пишите, или просто поржать? :)

Нельзя сравнить эти инструменты по удобству причинения телесных повреждений, хотя бы потому, что повреждения они оставляют разные — отвертка — колотые, а молоток — давленные :D

А если серъезно — в принципе попытаться сравнить можно все что угодно — полезности только будет ноль. Кто сильнее — акула или медведь? :)
Нельзя сравнить эти инструменты по удобству причинения телесных повреждений, хотя бы потому, что повреждения они оставляют разные — отвертка — колотые, а молоток — давленные :D

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

Можно обрисовать спектр ситуаций, когда очевидно нужен молоток, когда очевидно нужна отвёртка и когда можно использовать то, чем привык работать.
Кто сильнее — акула или медведь?

Мышечной массы больше у большой акулы. Если вы имели в виду кто победит, то уточните что за акула, хищная ли она. Ну и уточните, что за медведь, их много. На суше схватку устраивать бесполезно, там акула быстро дожнет, на глубине акула очевидно сильнее, на мелководье бывает по разному.
Во-первых, кол-во мышечной массы с силой слабо связано.
Сухих людей встречали? Рукопожатие их чувствовали? А вообще — любимая Вами википедия Вам в помощь про это.

Во-вторых видите сколько наводящих вопросов Вы задали — т.е. сравнивать их просто так — бесполезно — сравнить можно лишь в конкретной ситуации — вы сами на свой вопрос и ответили.

Если вернуться обратно, к языкам — то говорить о том что — PHP или Node в веб лучше — некорректно. Нужно четко обозначить задачу — тогда да, можно сравнить. Но это уже совсем другой вопрос, не так ли?

И давайте продолжим в личке, если хотите — и так тему замусорили.
И давайте продолжим в личке, если хотите — и так тему замусорили.

Я думаю напишу статью, в комментариях можно будет обсудить. Будет по теме :). Как напишу — постучусь в личку.
:)

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

На то это и АЛЛЕГОРИЯ а не АНАЛОГИЯ.
Ни надо это путать, и никто, конечно, так поступать с отверткой и молтком не будет.

Но NodeJS изначально заточен под асинхронку и кластеризацию «из коробки» и круг задач у него соотвествующий.
PHP был задуман именно для сайтов, его название расшифровывается даже как Hypertext Preprocessor.

И усилия придется прикладывать — ибо круг задач, хоть и в чем-то похож, но различается. Там вверху коммент есть про Hello world!
Ну и, конечно, для профи и там и там, хоть усилия и будут — но реализовать они все это смогут. Другой вопрос — зачем?

Аналогия — лжива, аллегория — нет. У меня — аллегория. Почитайте значение этих слов на досуге.

И да, как заметил комментатор Выше — это все софистика :)
Просто любят люди сравнивать несравнимое и потом получать кайф от этого, вместо того чтобы сесть, подумать и выбрать нужное, а не лучшее :))))
На то это и АЛЛЕГОРИЯ а не АНАЛОГИЯ.

То есть вы в технической дискуссии для обоснования своего мнения решили использовать аллегорию? Нет, круто конечно. Так и вижу — node — хорошо наточенная отвёртка легко проникающая в трещины предметной области, тогда как php молоток, который тупо корёжит всё, что видит :). Вот это — аллегория. У вас — аналогия.
Почитайте значение этих слов на досуге.

Да, почитайте. С википедии можно начать.
Просто любят люди сравнивать несравнимое

Несравнимое это неопределённый интеграл и вомбат по критерию удобства выхватывания катаны. node и php имеют сходный спектр применения и прекрасно сравниваются.
Да, почитайте. С википедии можно начать.

Давайте с гугла:
Выражение чего-н. какой-н. мысли, идеи в конкретном образе.

И да, не вижу ничего плохого в том, чтобы использовать это в тех. дискуссии. На простых понятиях проще объяснять, но, видимо, не всем :)
Ахахах Ребят, это Холивар PHP vs Node.JS, а не Отвертки против Молотка
Вот именно! :)
>а просто потому что это задача хорошо ложиться на Node.
>а просто потому, что удобней, стабильней и проще.

ну или просто потому, что вы знаете nodejs лучше, например?
Я написал тоже самое там где «подумать» :)
а в 6 и 10 раундах обе технологии побеждали? почему в предидущих раундах у обоих технологий счёт меньше на 1?
PHP не сутулиться и есть реальные проекты, и варианты, которые позволяют PHP работать быстрее.

За что вы так с нами?
да, там есть сборщик мусора, который убивает наши переменные после выполнения скрипта
Уважаемый переводчик, сборщиком мусора принято называть совсем другой механизм.
А как насчет того что бы сравнить дебаг этой всей истории?
Когда пришлось профилировать и дебажить nodejs самый вменяемый инструмент оказался AppDynamics, который платный.

Вообще начал использовать node.js из-за socket.io, но для таких целей сейчас можно go использовать.
Какие еще задачи кроме риалтайма вы бы повесили на node.js? Да еще как тул для фронтенда (сборка клиентского js, скомпилировать js на сервере)
Сравнили лопату с микроскопом. На PHP ниже порог входа, но код ***. Node даёт полную свободу, вплоть до сохранения пользовательского состояния в RAM между запросами, метапрограммирования и кастомизации чего угодно, но нужно уметь с этим работать. Я не говорю про производительность, есть и на PHP проекты, выдерживающие миллионы запросов, но всё таки это платформы из разных миров.
На PHP легче писать говнокод, который будет проходить unit-тесты, про порог входа не уверен.
О, у похапешников бомбануло. Правда глаза режет, видать.
Стало интересно, кто из них лопата а кто микроскоп и почему?)
И вы про написали про свободу, подкрепив это мутными примерами, думаете пхп такое как «до сохранения пользовательского состояния в RAM между запросами» вообще вообще не умеет?)
Не сразу сообразил, о каких драгоценных камнях в Ruby идет речь ) Полез в словарь — и точно: gem — «драгоценный камень» )))
Наверное захватывающе пользоваться английскими словами при написании кода, при этом не знать что они означают)
Во всяком случае, что касается гемов — никогда не задумывался об их истинном значении ))
Ruby — это тоже драгоценный камень, только тссс ;)
По секрету, и перл тоже :-)
«В соответствии с федеральным законом от 26 марта 1998 г. N 41-ФЗ «О драгоценных металлах и драгоценных камнях» (ст. 1), к драгоценным камням отнесены: природные алмазы, изумруды, рубины, сапфиры и александриты, а также природный жемчуг в сыром (естественном) и обработанном виде.»

https://ru.wikipedia.org/wiki/%D0%94%D1%80%D0%B0%D0%B3%D0%BE%D1%86%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%B0%D0%BC%D0%BD%D0%B8
>>Даже упертые Node.js-разработчики должны использовать PHP для простых сайтов и приложений.

WTF? Node.js хватит для любых веб-приложений.
>> должны использовать PHP

Сжеч ведьму!
Почему ни кто не сказал про CMS? Про конструкторы?
Они имеют свою нишу.
А вы попробуйте настоить Apache, PHP и т.п. без XAMPP =)
Apache+PHP уже звучит как ругательство.
Так то nginx же.
Впрочем для того и другого how to по установке может понять даже пятиклассник, бывали тут случаи.
А сколько таких пятиклассников в % соотношении?
Какие еще % о чем вы? Сейчас на прям на ютюбе уже есть видео гайд для установки и настройки походу уже чего угодно.
А тут кто-то пишет в минусы «А вы попробуйте настоить Apache, PHP „
А вы попробуйте настоить Apache, PHP и т.п. без XAMPP =)


а зачем? Вы же не будете запускать node без nginx? для разработки же хватит PHP + база данных по вкусу. Ну то есть разницы практически никакой.

Дополню, что в качестве БД можно использовать sqlite, особенно при наличии приемлемой ОРМ и не сильно завязанных на БД задач. Так что при разработке на php можно обойтись одним голым php.
Там настраивать нечего особо: Одной командой консоли всё устанавливается, один файл конфига хоста создаётся для nginx.
Я лично для своих проектов http://vibed.org/ использую. Куда лучше Node.js. На выходе exe файл включающий в себя http сервер. Никакой мороки с развертыванием.
Никакой мороки с развертыванием.


да, надо только потушить старый сервер, запустить новый, проблемы с миграциями те же что и для всех… Если взять Docker то деплоймент любых приложений будет происходить по такой же схеме, и не важно что внутри, ruby + ror, похапэ, java…

Dlang хороший язык, но пока слегка сырой. Да и посмотрите на тот же go — все так же из коробки, но в отличии от D предоставляет вам горутины, на которых конкуренси организовывать проще чем в той же ноде (и эффективнее). И да, http сервер — часть стандартной библиотеки, со своими абстракциями т.д.

Вариантов на чем писать и как писать миллион и еще чуть чуть, хоть на хаскеле.

>Dlang хороший язык, но пока слегка сырой.
Чем сырой?

>Да и посмотрите на тот же go — все так же из коробки, но в отличии от D предоставляет вам горутины
vibed и D умеет те же самые го-рутины, только синтаксис гораздо выразительнее чем на Go.

Я тут, кстати, пилю помаленьку wait-free channels, подключайтесь :-) https://github.com/nin-jin/go.d
От холиваров php vs * мутит уже. Мы приходим в магазин и перед нами 5-7 видов хлеба. Мы не спорим какой лучше, мы покупаем привычный нам и потребляем. Время делает своё дело над ассортиментом. Давайте просто потреблять их и делать лучше. Каждый по-своему. Эволюция разберется за нас кому жить, а кому умирать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории