
Nikolay
03.07.2017
22:04:44
https://github.com/MagicStack/asyncpg/search?utf8=%E2%9C%93&q=uvloop&type=
он есть в requirements, но нигде в коде луп из него не используется

Aleksandr
03.07.2017
22:06:09

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
в лайте еще и енумов нет

Aleksandr
03.07.2017
22:08:55

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

Pit
03.07.2017
22:09:28

Nikolay
03.07.2017
22:09:34

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

Aleksandr
03.07.2017
22:09:48

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

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

Aleksandr
03.07.2017
22:13:01

Nikolay
03.07.2017
22:14:06

Aleksandr
03.07.2017
22:14:37

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

Aleksandr
03.07.2017
22:15:59

Nikolay
03.07.2017
22:16:24

Aleksandr
03.07.2017
22:17:03

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.

Aleksandr
03.07.2017
22:22:27

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

Aleksandr
03.07.2017
22:23:22
> И с чего тебе это асинхронная сетевая либа должна уметь потоки?
и с чего это asyncio это умеет? вот глупость же, ведь после подключения gevent синхронного кода в системе не становится прям
с которого все пошло
а победил libuv, сообществом, скоростью, динамикой развития, кросс-платформенностью, востребованностью. несмотря на массу сомнительных решений внутри

Nikolay
03.07.2017
22:24:03
> и с чего это asyncio это умеет?
ну вообще нет, не умеет

Aleksandr
03.07.2017
22:24:36

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
вкратце - потому что он слишком упрощенный и одновременно не представляет никаких удобств наружу для реализации подобных вещей
кастую в чат @pragus

Aleksandr
03.07.2017
22:31:13

Nikolay
03.07.2017
22:31:39

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
подглядывать там нечего

Aleksandr
03.07.2017
22:33:15

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

Aleksandr
03.07.2017
22:33:56

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

Aleksandr
03.07.2017
22:34:53

Nikolay
03.07.2017
22:34:56
либо юзать pypy
Селиванов им сейчас тоже занимается, кстати

Aleksandr
03.07.2017
22:35:41

Google

Aleksandr
03.07.2017
22:35:59

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

Aleksandr
03.07.2017
22:38:45

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
шта
асинхронное чтение файлов возможно только через thread executor

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

Aleksandr
03.07.2017
22:44:54

Nikolay
03.07.2017
22:45:07

Aleksandr
03.07.2017
22:45:28

Nikolay
03.07.2017
22:45:46
как, например, раньше делали через celery

Aleksandr
03.07.2017
22:46:26