Pull to refresh
55
0
brainfucker @brainfucker

User

Send message
Ок… Ну давайте померяемся:
Значит tornado:
Тоесть эти компиляторы компирируют JS код с продолжениями в обычный js код?
Он читает файлы с шаблоном… в прочем действительно не удачный пример…
Тем не менее здорово когда платформа изначально заточена под асинхронность!
угу… хотя к примеру libmysql синхронен по своей природе… поэтому до сих пор не сделали прямой коннектор для node… но есть dbslayer…
Но ведь Питон то тут не причём… я привёл пример на нём, так как мне нужно было на чёмто привести пример блокирующего приложения…
Но темнеменее 90% кода который я вижу на python — не асинхронный
откройте исходники любого шаблонизатора на python и убедитесь что он блокирующий… И Вам нужно будет постараться чтобы найти неблокирующий шаблонизатор, для node всё наоборот.
Боже!!! Я не сравнивал Tornado и Node… Вам лиж бы холивар завести… Я сравнивал Блокирующий ввод вывод с неблокирующим!!! Для того чтобы читатель понял зачем нужен nonblocking I/O… Кстати честный тест я тоже проводил, и победил Node правда с довольно скромным отрывом… за счёт того что v8, быстрее чем Питон, а также за счёт использования libev а не libevent внутри node.
Да… причём все модули которые пишутся сторонними разработчиками тоже под это заточены…
Спасибо! вот этого действительно JS очень нехватает… Но такой возможности скорее всего никогда не появится, как бы быстро вэб стандарты не двигались =(
с этим туго сейчас к сожалению… Есть только один модуль… Ну и сам v8 неплохо информацию об ошибках формирует
Я сравнил блокирующее приложение с неблокирующим, и сделал обсолютно правильные выводы, Ваша проблема лишь в том, что вы не поняли о чём речь.
Вы точно прочитали статью?
>И я не сомневаюсь, что Питон программист быстренько перепишет мой пример используя threads, так, чтобы он работал как надо, вот только кода станет в 2 раза больше, да и потом поднимите руки те, кто каждый запрос к файловой системе или к базе данных оформляет в отдельный тред!
Обращение к БД и к ФС — два основных места где важна асинхронность, для event-loop приложений!
Согласитесь, что когда понадобится прочитать файл или обратиться к бд, в повседневной жизни скорее всего вы будите использовать блокирующую функцию… И далеко не для всего найдёте неблокирующие реализации… А Node поставил перед собой цель зделать абсолютно весь ввод вывод асинхронным, в стандартных библиотеках, за что и заслуживает внимание уделённое в статье.
Да, не правильно вас понял с начала, если честно не слышал про продолжения… это довольно заманчиво… Я с Вами согласен… А есть ли поддержка продолжений где-нибудь кроме Scheme?
я знаком с Питоном, и знаю точно что правила далеко не банальные, особенно в вопросе работы с разными БД.
Я не сомневался, но речь то не об этом, откройте любое ваше приложение где вы читаете из файла или делаете запрос к бд, и скажите честно блокирующие они у вас или нет! Конечно на питоне можно написать неблокирующий код, я не сомневался в этом, однако Питон не предоставляет стандартных инструментов для этого, и далеко не все инструменты которые это позволяют так элегантны как reactor.callLater, А давольно часто чтобы написать неблокирующий вызов приходится городить огород с тредами… а на node любой новичёк напишет быстрый неблокирующий код.
Я в курсе, специально сделал это, я хотел показать разницу между блокирующим кодом и неблокирующим, я мог точно также написать второй пример на node используя команду блокировки wait, однако тогда мне былоты гораздо труднее объяснить что большинство на данный момент пишет именно блокирующий код… посмотрите на собственный код, например здесь запись в файл блокирует ваше приложение, а ведь в то время пока вы пишите в файл вы могли бы обслужить следующего пользователя…
так об этом то и речь! Писать на питоне неблокирующий код — не очень просто, а приведённый в статье пример и написан только для того чтобы показать разницу между блокирующим кодом и неблокирующим, обидеть питон здесь никто не хотел, я люблю питон!
Я прекрасно понимаю, но хочу сказать что сделать на питоне sleep без блокирации event loop довольно слоожно и код будет намного длиннее! и большинство программисто которые пишут на python косвенно говоря используют именно sleep, например при обращении к БД они тоже блокируют event loop, точно также! И на данный момент я не видел решений которые предоставляли возможность писать неблокирующий скрипты легко и непренуждённо, как это делает Node.

Information

Rating
Does not participate
Registered
Activity