kobezzza,
Добрый день, я - рекрутер. Ищу в химический российский холдинг Senior JavaScript Developer.Реальный опыт применения node.js. З/п выше рынка. Пересмотрели уже примерно 200 кандидатов. Ищем гения. Есть желание попробовать? |
Цитата:
|
пыха вне конкуренции потому как она на любом хостинге есть по умолчанию, а всякие питоны, рельсы и тп за них надо дополнительно платить, ждать когда включат и тп.
Другое дело, что самого скриптового языка очень мало. Движок играет роль гораздо больше. Сейчас без движка нормальный сайт не напишешь. А с движками в пыхе на самом деле плохо. Хоть и много их а толку мало. но я сомневаюсь, что Jango или рельсы так уж лучше Yii . Просто там альтернатив нет. |
Предположение о "скорой кончине РНР" напомнило мне одну баталию на одном форуме о "скорой кончине Windows", и очень скором будущем когда Linux ворвется во все дома. :)
Ребята, Денвер давно почил в бозе, есть простой и замечательный локальный сервер - Open Server. Нынешняя версия его с поддержкой РНР 7, в котором много нового, асинхронность в том числе. Linux был создан как свободный продукт, а ни как киллер для найма кончить Widows, это уже фанаты с обеих сторон несут чепуху о кончине и прочем. Так и Node.js не создавался ради уничтожения РНР и еже с ним, и задаваться вопросом почему до сих пор не прозвучало выстрела и покойный не лежит в гробу, это полнейшая чепуха. :) |
Потому что PHP модный, но с приходом NodeJS он постепенно вымирает
|
PHP проще. Может что-то пыху и убьёт, но точно не нода. Основная её фича - асинхронность всего и вся, никогда не даст ей стать базой для новичка. Слишком сложно для понимания. А почти весь интернет делается новичками на коленке.)
Что же сложного, спросите вы? Хз, отвечу я. Но статистика этого и не только форумов и всяких Q&A явственно об этом свидетельствует.) |
ES6 проще. Может что-то js и убьёт, но точно не php. Основная его фича - синхронность всего и вся, никогда не даст ей стать базой для новичка. Слишком сложно для понимания по сравнению с async await в js. А почти весь интернет делается новичками на коленке.)
Что же сложного, спросите вы? Хз, отвечу я. Но статистика этого и не только форумов и всяких Q&A явственно об этом свидетельствует.) |
MegaScript, забавно, но, увы, неправда.
ES6 с async await проще? Только на бумаге. Новичку вообще нереально поставить и настроить себе все эти бабелы, вебпаки и прочую ересь, чтоб оно таки заработало.) Не говоря уже о том, что "не будет никакого этого вашего async await", т.к. выпилили из стандарта. |
Все что нода убила, так это идею делать чаты на пхп)
|
Цитата:
Но в том, что чел думает, что псевдосинхронный код легче, чем синхронный, это печалька, ибо он не понимает, что чтобы нормально использовать async/await, нужно: 1) Уменить использовать асинхронный код, ибо он все же асинхронный. 2) Уметь использовать промисы, ибо async/await это сахар над промисами. 3) И, пожалуй, самое простое - знать синтаксис async/await Пожалуй, чутка говнокода. const echo = msg => new Promise((resolve, reject) => { setTimeout(() => { const isError = Math.round(Math.random()) if (!isError) { return resolve(msg) } reject('Something bad happend') }, 500) }) echo('hey') .then(msg => console.info(msg)) .catch(err => console.error(err)) А вот тоже самое, но с async/await (async () => { try { console.info(await echo('hey')) } catch (e) { console.error(e) } })() И теперь вопрос MegaScript, где async/await проше, чем синхронный код? |
Цитата:
Вообще под новичком я подразумевал человека, тоторый просто берёт и начинает делать то что ему нужно, максимум имя за спиной давно забытые школьные основы бейсика или студенческие основы C. С php так можно, с Node - неа. |
Цитата:
к обоим языкам можно писать расширения на с и с++ чего вам не хватает, что начинаете ругать одно или другое |
Poznakomlus, никто ничего не ругает. Я говорил про порог вхождения.
|
да php порог ниже согласен,
я по себе скажу PHP 5 в подлиннике, Котеров был отличной книгой учебником а вот PHP 7 Котеров читаю и вижу говнокод, а книгу писали (якобы) люди с 15 летним стажем, что говорить про остальных |
Цитата:
|
Цитата:
try { console.info(await echo('hey')) } catch (e) { console.error(e) } Он вообще ничем не отличается от обычного кода кроме оператора await который новечкам не то что ПОНЯТЕН, он им НЕОБХОДИМ, я помню все детство меня бесило что яваскрипт нельзя на время приостановить чтобы что-то сделать. А так тут он еще и неблокирующую приостановку делает. У меня мозг вообще тогда не понимал как это javascript все мгновенно делает, а как тогда например таймаут задать? или там обрабоать ответ от сервера? и потом я узнал про каллбаки, а потом понял что это костыли которые люди использовали пока промисы не изобрели, а потом и await собственно. так что да, await раз в 200 проще чем промисы, для этого его собственно И ПРИДУМАЛИ чтобы ПРОШ\ЩЕ и САХАРНЕЕ было)) с подключением |
MegaScript, ясно, сори, но ты отбитый.
Ладно, последняя попытка, выполни следующий код с помощью async/await, так, что бы в консоль вывелось Цитата:
setTimeout(console.log, 1000, 'foo') setTimeout(console.log, 500, 'bar') |
Цитата:
Цитата:
|
Цитата:
Цитата:
async function pause(time){ return new Promise(function (resolve){ setTimeout(resolve, time) }) } async function log(time, message){ await pause(time) console.log(message) } // запускаем параллельно две задачи log('foo', 1000) log('bar', 500) То есть async await позволяет более гибко управлять потоком, там где мы хотим ждать, и там где мы хотим распарралелиться. Более того, мы с ребятами из ES6 думаем добавить оператор await* который принимает на вход массив промисов и ждет их всех. Тогда бы можно было распарралелить две задачи, а потом выполнить код ПОСЛЕ завершения их всех, вот так: await* [log('foo', 1000), log('bar', 500)] alert('обе задачи выполнены') Пока же для этого не придумали сахар, приходится делать так: await Promise.all([log('foo', 1000), log('bar', 500)]) alert('обе задачи выполнены') А теперь ТЫ мне сделай чтобы после выполнения: setTimeout(console.log, 1000, 'foo') setTimeout(console.log, 500, 'bar') вывелось сообщение alert('обе задачи выполнены'). СЛАБО?? что, отбитый, ОБОСРАЛСЯ???? ну же, я жду код. ============================== Цитата:
К тому же теперь, чтобы все было так же просто как и в PHP, в node js вы можем писать как бы синхронный код. Там где мы в php делали запрос к базе и наш скрипт приостанавливался (А ДРУГИЕ PHP СКРИПТЫ РАБОТАЛИ КАК Ни В ЧЕМ НИ бывАло), в node мы теперь можем сделать наконец ТО ЖЕ САМОЕ(!) просто дописав перед запросом к базе данных await. Вы поняли свою ошибку? ЕСЛИ ЖЕ по данной причине сложен NodeJS то ПО ДАННОЙ ЖЕ ПРИЧИНЕ сложен и PHP!!! Если по данной причине НЕ сложен PHP, значит по этой же причине НЕ сложен и NodeJS. Any questions? |
контраргументы не завезли видно седня ^^ подожду недельку
|
MegaScript, разве твой код проще, чем синхронный?
Цитата:
const run = gen => { const it = gen(msg => it.next(msg)) it.next() } run(function* (r) { console.log(yield setTimeout(r, 1000, 'foo')); console.log(yield setTimeout(r, 500, 'bar')); alert('done'); }); |
Цитата:
в PHP пишется так: $result = db->query('bla bla'); в node.js к этому лишь добавляется оператор await var result = await db.query('bla bla'); Сделатьельно асинхронка в nodejs не слжонее для понимания чем синхронка в php. Таким образом я ДОКАЗАЛ ВЕРНОСТЬ своего утверждения. А то что там какой то чувак меня попросил написать ТАЙМАУТ НА ПРОМИСАХ, это уж наркомания полная, но раз он попросил то я ему написал)) это к разговору вообще отношения не имеет, но раз попросили. А этот ребенок еще и нагрубил мне, а как ответку получил сразу обосрался и минусанул, аж с трех аккаунтов. UPD: ой, это ты и просил))), я надеюсь ты сам то головой понимаешь что ты просишь несусветный бред НУ ВООБЩЕ не связанный с темой разговора???))) Нет ну ты вдумайся, ты попросил меня написать какой то бред не связанный с темой разговора, при чем попросил для этого использовать инструменты для этого не предназначенные, а когда я написал, ты сказал что мой код не красивый, и использовал это как аргумент К НЕВЕРНОСТИ МОЕГО УТВЕРЖДЕНИЯ))))) ЧУВАК ДА ТЫ БОЛЬНОЙ че я еще могу сказать, еще и нахамил, мдааа, ну у вас и форум)) |
Цитата:
Цитата:
Цитата:
возьмем node-jsonwebtoken jwt.verify(token, secretOrPublicKey, [options, callback]) Что бы сделать все красиво, нужно написать что-то вроде этого, а потом уже использовать await... const verifyToken = token => new Promise((resolve, reject) => { jwt.verify(token, secretOrPublicKey, async(err, decoded) => { if (err) reject(err); resolve(decoded); }); }); |
Lemme, каким образом таймауты на промисах связаны с темой разговора?
И к слову, в своем решении ты использовал генераторы, а должен был только каллбаки. хотя я вообще не совсем понимаю твою логику с таймаутом, так что видимо тебе виднее к чему этот пример. Цитата:
db.queryвозвращает промис. Цитата:
И что из этого следует? Как это вообще противоречит или связано с тем что я сказал? Что люди не всегда смогут использовать асинх евейд, и придется использовать каллбаки и по этому будет слжоно для мозга новичкам использовать каллбаки такие же какие они используют и на клиенте в браузере, при том что в браузере им не сложно, а на сервере им вдруг станет сложно, потому что это сервер, а сервер он серверный, сервернОй, серверянный потому что потому что гладиолус???? Какая логика вообще?))) То есть когда в браузере мы каллбаки делаем новичкам самый сок, а когда на сервере, то у них сразу мозг клинит и им трудно понять ассинхронку?))) |
Цитата:
А я лишь доказал обратное, что не все может выглядеть так просто с async/await, я, конечно, согласен, что синхронный код далеко не всегда проще асинхронного, но в данном контексте это не так. Т.е данный код в PHP sleep(1000) echo 'foo' sleep(500) echo 'foo' Проше, чем аналогичный в JS const sleep = time => new Promise(resolve => setTimeout(resolve, time)) (async () => { await sleep(1000) console.log('foo') await sleep(500) console.log('bar') })() Цитата:
setTimeout(() => { console.log('foo') setTimeout(() => { console.log('bar') alert('done') }, 500) }, 1000) p.s я не думаю, что стоит продолжать этот бессмысленный разговор |
Лол, вот вы срач развели. Нода с нонблок подходом не уникальна и точно не первая, кто это сделал. Во всех популярных языках есть такие фреймворки, и даже (о боже) в PHP есть.
Python - Twisted, Tornado; Java - Vertx; Scala - Spray; PHP - PHPDaemon; ... тысячи их. Говоря о моде: ща планку моды держит Go (даже всеми нами уважаемый Холивайчук свалил на Го), а нода уже просто заняла своё место под солнцем и всё, и никто никого убивать не будет. Вы так говорите, будто кроме пыха и ноды других языков нет. Пишите на чём нравится и что лучше решает ваши задачи, и не ебите мозг окружающим) |
Цитата:
Цитата:
Лан, привет всем. Вообще я аккаунт создал, с именем языка, чтобы представить вам свой новый язык (es6 в стиле coffee) но я подумал что не буду хвастаться пока не доделаю. Но аккаунт пусть пока полежит зареганный чтобы не заняли. В итоге прошло пол года. Я начал делать онлайн ММО RPG на WEBG. и не до языка щас). Но акк остался. Ну я думаю вы поняли О КОМ речь. Кто еще ударные слова ВОТ ТАК выделяет? ^_^ Кстати вот вы шутили шутили, что мой фреймворк качают только боты, а я уже месяца 3 не делал апдейт, и все ровно качают)!!!! https://www.npmjs.com/package/ui-js КАК ВЫ ЭТО ОБЬЯСНИТЕ?????????????? При чем в отличии от бреда "Матрешки", я ни где не пиарился, чисто покидал ссылки на свое чудо ребятам с ангуляра и реакта, чтобы вдохновились как я хитро shadow дом эмулировал даже с <content select=''> с мгновенной реакцией на изменение селектора. Секрет прост. По скольку у меня виртуал дом, то ни что не помешало мне сделать МУТЕЙШЕН обсерверы ^__^. Которые я кстати использую для того чтобы избежать при рендеринге сравнения двух ДОМ деревьев ДО И ПОСЛЕ, а именно я накапливаю мутейшены и потом УЖЕ МЕЖДУ НИМИ нахожу кротчайщее расстояние и его рендерю в дом. Но щас не про это разговор. Разговор про то что КАЧАЮТ!!! КАЧАЮТ ПАСОНЫ)!!!! А ВЫ ТАК И НЕ НЕ ПРИЗНАЛИ ^__^ Цитата:
await sleep(1000) alert('foo') await sleep(500) alert('foo') |
Цитата:
Цитата:
Оффтопа 2 страницы, иди лучше ММОРПГ пиши :D |
Цитата:
все, всем пока, не баньте MegaScript, так язык назову offeescript с поддержкой es6 |
И на этой прекрасной ноте мы снова прощается с Максимусом.
|
Цитата:
|
Часовой пояс GMT +3, время: 02:35. |