@ru_python

Страница 3093 из 9768
Nikolay
03.07.2017
22:04:44
https://github.com/MagicStack/asyncpg/search?utf8=%E2%9C%93&q=uvloop&type=

он есть в requirements, но нигде в коде луп из него не используется

и более того засунет его дефолтным eventloop в asyncio
нет, не засунет, позицию свою по этому моменту он давно озвучил

Google
Nikolay
03.07.2017
22:06:19
ссылку можно?
посмотри ролик с Селивановым с пайкона

он там прекрасно объясняет, почему uvloop никогда не будет дефолтным

вкратце - потому что левая сторонняя зависимость cpython'у нахер не уперлась

Pit
03.07.2017
22:07:32
Кхем, а чё ето, в SQLite нету класса даты/времени?

Nikolay
03.07.2017
22:08:24
Кхем, а чё ето, в SQLite нету класса даты/времени?
возьми алхимию, там хуки для этого всего

в лайте еще и енумов нет

Aleksandr
03.07.2017
22:08:55
вкратце - потому что левая сторонняя зависимость cpython'у нахер не уперлась
может я ошибаюсь но это его мастодонты переубедили видимо)

Nikolay
03.07.2017
22:09:08
более того, у libuv есть несколько серьезных внутренних косяков

Nikolay
03.07.2017
22:09:34
Pit
03.07.2017
22:09:38
Благодарю

Aleksandr
03.07.2017
22:09:48
да там и переубеждать особо нечего
ну насчет левой зависимости слабый аргумент, это сильнейшая либа в своем классе, так можно и openssl назвать левой зависимостью

Google
Nikolay
03.07.2017
22:10:03
с довольно серьезными багами

Aleksandr
03.07.2017
22:10:20
Nikolay
03.07.2017
22:10:27
например, поверх нее SSL реализовать - это убиться

Aleksandr
03.07.2017
22:10:29
с довольно серьезными багами
и сомнительными решениями, да

Nikolay
03.07.2017
22:10:33
Aleksandr
03.07.2017
22:11:05
libev, например
его просто похоронить забыли кажется

Nikolay
03.07.2017
22:11:15
я почти уверен, что ни один наркоман из кор девелоперов всерьез даже не рассматривал включения биндингов к libuv в ядро питона

Nikolay
03.07.2017
22:14:06
почему openssl не левая зависимость по такой логике?
потому что это каноническая реализация ssl, без нее бы его не было вообще

Aleksandr
03.07.2017
22:14:37
потому что это каноническая реализация ssl, без нее бы его не было вообще
у нее есть куча альтернатив и у нее просто катастрофические 0day есть

Nikolay
03.07.2017
22:14:43
есть мнение, что Гвидо уже гораздо более похер на принятие решений в питоне, чем было в начале пути

у нее есть куча альтернатив и у нее просто катастрофические 0day есть
куча альтернатив? где? все сервисы, которые на линухе используют SSL, базируются на openssl

а 0day там из последнего был только heartbleed

Aleksandr
03.07.2017
22:15:59
Nikolay
03.07.2017
22:16:24
о да, он тут в тредики asyncio заглядывает, ага, я читаю регулярно
заглядывает, конечно, но основные девелоперы там - Светлов и Селиванов

Aleksandr
03.07.2017
22:17:03
куча альтернатив? где? все сервисы, которые на линухе используют SSL, базируются на openssl
все существующие eventloop используют libuv, извини, за зеркальную аргументацию, но это факт

Google
Nikolay
03.07.2017
22:17:12
gevent использует libev

tornado вообще при желании роллбэчится на самописную обертку вокруг epoll

nodejs использует, да, многие другие - нет

и go точно так же срать с высоты на libuv, там своя реализация

Aleksandr
03.07.2017
22:20:42
gevent использует libev
это вообще-то хак-либа спасшая в свое время не одного питониста, она не умеет файлы, не умеет потоки, она мало что умеет нормально подпроцессы, она не умеет сигналы нормально, она много чего не умеет

Nikolay
03.07.2017
22:21:52
это вообще-то хак-либа спасшая в свое время не одного питониста, она не умеет файлы, не умеет потоки, она мало что умеет нормально подпроцессы, она не умеет сигналы нормально, она много чего не умеет
это вообще-то оптимизированный форк libevent, который гораздо быстрее и на который много чего завязано. И с чего тебе это асинхронная сетевая либа должна уметь потоки? Более того, то, что ты написал, никак не отменяет того, что я уточнил выше.

ага, С++, например. И там активно юзают libev.

Nikolay
03.07.2017
22:22:38
с которого все пошло

Aleksandr
03.07.2017
22:23:22
> И с чего тебе это асинхронная сетевая либа должна уметь потоки? и с чего это asyncio это умеет? вот глупость же, ведь после подключения gevent синхронного кода в системе не становится прям

с которого все пошло
а победил libuv, сообществом, скоростью, динамикой развития, кросс-платформенностью, востребованностью. несмотря на массу сомнительных решений внутри

Nikolay
03.07.2017
22:24:50
пока на асинхронной либе без такой-то матери не реализовывается ssl - эта либа точно не победит никого

потоки не умеет?
именно, asyncio просто оборачивает наследники Executor, которые могут уметь в потоки. А могут и не уметь.

почитай вот этот тред, занимательное чтиво https://github.com/gevent/gevent/issues/790

Google
Aleksandr
03.07.2017
22:26:17
Nikolay
03.07.2017
22:26:44
ну вообще libuv это L4-либа, если касаться сети, TLS не ее задача вообще
ну вообще, если я не путаю, по моей ссылке написано, почему libuv в этом плане полное говно

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

кастую в чат @pragus

Aleksandr
03.07.2017
22:31:13
ну вообще, если я не путаю, по моей ссылке написано, почему libuv в этом плане полное говно
поэтому они его все же решили добавить?) ну там описаны известные вещи, не надо использовать DNS от libuv, там совсем все плохо, используй UDP, минусов у нее хватает

Aleksandr
03.07.2017
22:32:12
Nikolay
03.07.2017
22:32:35
ну все же они решили чет там поглядеть
нет, не решили. Они либо работают с одной сишной либой, либо с другой

Admin
ERROR: S client not available

Nikolay
03.07.2017
22:32:40
подглядывать там нечего

Nikolay
03.07.2017
22:33:19
ты меня в чем убедить пытаешься? :) что libuv круче всех? нет, не круче. Что питон будет на него завязываться? нет, не будет

Nikolay
03.07.2017
22:34:09
более того, у меня вообще упорные подозрения, что большинство кода, для которого производительность асинхронного i/o реально важна, будет написана на Go/Rust

ну лучше gevent вообще ничего не придумано пока, это уже понятно
ну лучше gevent придуман asyncio, а дальше осталось только код оптимизировать и доделать gilectomy

Nikolay
03.07.2017
22:34:56
либо юзать pypy

а я смотрел на rust, чего-то там не весело совсем с этим
ну посмотри на tokio, может, изменишь мнение)

Селиванов им сейчас тоже занимается, кстати

Aleksandr
03.07.2017
22:35:41
ну лучше gevent придуман asyncio, а дальше осталось только код оптимизировать и доделать gilectomy
ага, остается только придумать абстракцию над asyncio чтобы зубодробительно не копаться в его странном api а писать продукты

Google
Aleksandr
03.07.2017
22:35:59
Nikolay
03.07.2017
22:36:11
ага, остается только придумать абстракцию над asyncio чтобы зубодробительно не копаться в его странном api а писать продукты
отличное у него API, разве что сделали копии стандартных примитивов, но идея все равно понятна

наверняка скоро просто будет две concurrent-либы, и можно будет просто выбирать, треды тебе или корутины, в зависимости от executor

Nikolay
03.07.2017
22:39:36
вы используете его в лайве?
я использую его в продакшене, если ты об этом

Aleksandr
03.07.2017
22:41:31
в питоне треды не нужны "всем"
синхронному коду нужны, куча либ не портирована еще

файлам нужны

Nikolay
03.07.2017
22:42:12
синхронному коду нужны, куча либ не портирована еще
никакому коду не нужны треды, код разделяется на разные сервисы в случае синхронных долгих вызовов

Aleksandr
03.07.2017
22:43:16
никакому коду не нужны треды, код разделяется на разные сервисы в случае синхронных долгих вызовов
executor нужен чтобы использовать конкурентность тредов в питоне, чтобы не блокировать eventloop

шта
асинхронное чтение файлов возможно только через thread executor

Nikolay
03.07.2017
22:44:23
в 99% случаев единственный Executor, от которого есть профит - процессный

Aleksandr
03.07.2017
22:44:54
ты не понял, треды в питоне не нужны совсем в текущем виде
как можно сделать блокирующий вызов не заблокировав eventloop?

Nikolay
03.07.2017
22:45:07
как можно сделать блокирующий вызов не заблокировав eventloop?
послав сообщение другому процессу, очевидно же

Aleksandr
03.07.2017
22:45:28
Nikolay
03.07.2017
22:45:46
какому другому процессу?
воркеру, который выполняет синхронный блокирующий код

как, например, раньше делали через celery

Aleksandr
03.07.2017
22:46:26
воркеру, который выполняет синхронный блокирующий код
ну да, архитектура что надо, тред - не нужно, а отдельный процесс и очередь сообщений - это легко просто и быстро!

Страница 3093 из 9768