
Sergey
22.05.2018
21:40:48
и переменные объявленные в глобальной области видимости не видны внутри функций
там много чего
что ты не упомянул

Алексей
22.05.2018
21:41:14

Google

Алексей
22.05.2018
21:41:31
можно даже загуглить классическую статью на хабре про недостатки пыхи


Sergey
22.05.2018
21:47:55
В заключении, тот факт, что PHP программы оперируют на уровне запросов, означает, что рабочий процесс программиста является быстрым и эффективным, и остаётся быстрым после изменения приложения. Множество языков продуктивной разработки претендуют на это, но если они не очищают своё состояние при каждом запросе, и основной поток событий разделяет программный уровень состояния между запросами, они почти всегда требуют некоторое время на запуск. Для типичного сервера приложений на Python'е, типичный цикл отладки будет выглядеть примерно как «подумать, отредактировать, перезапустить сервер, отправить несколько тестовых запросов». Даже если «перезапустить сервер» занимает всего несколько секунд из общего количества часов, это забирает большой срез из 15-30 секунд наших человеческих мозгов на необходимость удержания в голове самой ненужной части текущего состояния.
тут он бред пишет
тот же фласк
и прочие через wsgi работают
там через пайпы сервер отдает запрос питоновскому приложению
и получает от него ответ
почти тож самое


Amir
22.05.2018
21:55:07
да какая разница пхп или питон

Sergey
22.05.2018
21:55:43
пхп уродец

Amir
22.05.2018
21:55:57
а ты считаешь что питон красавелла?

Sergey
22.05.2018
21:55:58
правда и питон хуйня полная так-то

Google

Алексей
22.05.2018
21:56:19

Amir
22.05.2018
21:56:20
это рассизм девелоперский )))

Joss
22.05.2018
21:56:24

Алексей
22.05.2018
21:56:24
и да, питон красивый

Amir
22.05.2018
21:56:31
питон?
ну по мне руби быстрее(в разработке) и симпотичнее
хотя на перле я быстрее сделаю чем на пхп питоне или руби
все субъективно

Sergey
22.05.2018
21:57:07
там потоки прикрутили

Amir
22.05.2018
21:57:37
и часто ты прямо вот честно так потоками балуешься?

Sergey
22.05.2018
21:57:39
кто-то ж 20 лет ждал

Amir
22.05.2018
21:57:46
ну так что бы вообще понимать что там происходит, в ручном режиме?

Sergey
22.05.2018
21:57:56
ну например я тикет систему ща пишу

Amir
22.05.2018
21:58:06
а причем тут потоки?)

Sergey
22.05.2018
21:58:08
там тикеты из входящих писем формируются
письма в потоках парсятся

Amir
22.05.2018
21:58:46
в зеленых?

Sergey
22.05.2018
21:58:51
со всякими аттачами письмо метров 30 может весить

Amir
22.05.2018
21:58:59
т.е. ты точно знаешь какой сейчас поток в исполнении

Sergey
22.05.2018
21:59:06
уже приличное время занимает его обработка

Google

Amir
22.05.2018
21:59:23
может все таки лучше корутины?

Sergey
22.05.2018
21:59:38
а вот в цветах потоков я не разбираюсь

Roman
22.05.2018
21:59:42

Sergey
22.05.2018
21:59:59
чем твои корутины лучше?
пидорская вещь

Roman
22.05.2018
22:00:20

Amir
22.05.2018
22:00:30
от опыта и к чему рука лежит )

Sergey
22.05.2018
22:00:35
если захотелось с калббеками асинками и эвейтами ебаться пиши на ноде

Amir
22.05.2018
22:00:59
а ты уверен что знаешь ноду?

Roman
22.05.2018
22:01:00

Алексей
22.05.2018
22:01:01
Го прекрасен
Давай начнём с такого вопроса: может ли вообще язык, содержащий в себе такую вещь как goto называться прекрасным?

Nikolay
22.05.2018
22:01:02
ну извинити
другого питона у нас для вас нет

Amir
22.05.2018
22:01:11
исходники смотерл как устроены колбеки в стеке?)

Roman
22.05.2018
22:01:13

Алексей
22.05.2018
22:01:15

Sergey
22.05.2018
22:01:20
на питоне много библиотек только вот в асинхронность большинство не может

Алексей
22.05.2018
22:01:27

Sergey
22.05.2018
22:01:36
не то что в асинхронность а в банальную потокобезопасность

Amir
22.05.2018
22:01:37
как евентлуп себя поведет, если ты устроишь сильную нагрузку на проц с расчетами

Google

Roman
22.05.2018
22:01:50

Amir
22.05.2018
22:01:56
хреново)

Nikolay
22.05.2018
22:01:57
Идите спать уже, солнце скоро встанет, опять за весла

Sergey
22.05.2018
22:02:26
покемон грузит тем как устроены калбеки в ноде

Алексей
22.05.2018
22:02:34

Nikolay
22.05.2018
22:02:35
ок.
В интернете опять кто-то не прав?

Sergey
22.05.2018
22:03:58
как в питоне эти корутины работают
в сишарпе асинки просто над тредами синтаксический сахар

Алексей
22.05.2018
22:04:39
ну просто насколько я знаю, если в горутине будет крутиться числодробильный код, то планировщик го её не будет самостоятельно убирать из тредпула и если насоздавать кучу горутин с числодроблением, то всё зависнит к хренам
В ноде зависнит к хренам ещё раньше

Amir
22.05.2018
22:06:31

Александр
22.05.2018
22:07:51
Подскажите дешевый хостинг для питона. Дешевле 5$

Алексей
22.05.2018
22:08:05

Amir
22.05.2018
22:08:09


Sergey
22.05.2018
22:08:58
I am really glad someone asked this question, because for the longest time I also believed threads were necessary to concurrency. When I first saw event loops, I thought they were a lie. I thought to myself "there's no way this code can be concurrent if it runs in a single thread". Keep in mind this is after I already had gone through the struggle of understanding the difference between concurrency and parallelism.
After research of my own, I finally found the missing piece: select(). Specifically, IO multiplexing, implemented by various kernels under different names: select(), poll(), epoll(), kqueue(). These are system calls that, while the implementation details differ, allow you to pass in a set of file descriptors to watch. Then you can make another call that blocks until the one of the watched file descriptors changes.
Thus, one can wait on a set of IO events (the main event loop), handle the first event that completes, and then yield control back to the event loop. Rinse and repeat.
How does this work? Well, the short answer is that it's kernel and hardware-level magic. There are many components in a computer besides the CPU, and these components can work in parallel. The kernel can control these devices and communicate directly with them to receive certain signals.
These IO multiplexing system calls are the fundamental building block of single-threaded event loops like node.js or Tornado. When you await a function, you are watching for a certain event (that function's completion), and then yielding control back to the main event loop. When the event you are watching completes, the function (eventually) picks up from where it left off. Functions that allow you to suspend and resume computation like this are called coroutines.


Алексей
22.05.2018
22:09:56
I am really glad someone asked this question, because for the longest time I also believed threads were necessary to concurrency. When I first saw event loops, I thought they were a lie. I thought to myself "there's no way this code can be concurrent if it runs in a single thread". Keep in mind this is after I already had gone through the struggle of understanding the difference between concurrency and parallelism.
After research of my own, I finally found the missing piece: select(). Specifically, IO multiplexing, implemented by various kernels under different names: select(), poll(), epoll(), kqueue(). These are system calls that, while the implementation details differ, allow you to pass in a set of file descriptors to watch. Then you can make another call that blocks until the one of the watched file descriptors changes.
Thus, one can wait on a set of IO events (the main event loop), handle the first event that completes, and then yield control back to the event loop. Rinse and repeat.
How does this work? Well, the short answer is that it's kernel and hardware-level magic. There are many components in a computer besides the CPU, and these components can work in parallel. The kernel can control these devices and communicate directly with them to receive certain signals.
These IO multiplexing system calls are the fundamental building block of single-threaded event loops like node.js or Tornado. When you await a function, you are watching for a certain event (that function's completion), and then yielding control back to the main event loop. When the event you are watching completes, the function (eventually) picks up from where it left off. Functions that allow you to suspend and resume computation like this are called coroutines.
и что это?


Sergey
22.05.2018
22:10:04
ничего

Александр
22.05.2018
22:10:27

Google

Sergey
22.05.2018
22:10:54
все эти корутины полезны только в приложениях, где функции: select(), poll(), epoll(), kqueue() часто вызываются
веб сервера
и всякие там парсеры
боты

Алексей
22.05.2018
22:11:33
вот именно

Sergey
22.05.2018
22:11:52
а он про что рассказывал
про вычисления
и питоновские корутины
и нода
одинаково загнутся
так что письма имеет смысл в тредах парсить
там пачка из 10 писем долго парсится
и корутины мне никак уж не помогут

Amir
22.05.2018
22:13:16
а ему вообще пофигу :)

Алексей
22.05.2018
22:13:41
корутины для cpu bound задач не предназначены, это в принципе очевидно
питоновские потоки тоже могут тут не особо помочь из-за GIL
тут уже надо смотреть на конкретную реализацию

МАТЬ
22.05.2018
22:23:43
Привет ребята , кто может бота создать в телеге?

Димон
22.05.2018
22:24:51
Любой зарегистрированный пользователь.