Все динамически типизированные языки страдают от быстродействия по сравнению статически типизированными (компилируемыми). И в интерпретаторе нету доступа к branch-prediction и всяким другим плюшкам. Но есть же примеры где на динамической типизации применялись оптимизаторы с целью ускорить выполнение кода. Javascript это интерпретируемый язык, также как и Python. Но есть V8 который делает рантайм оптимизации на основе уже выполненных кусков кода. Да, JS компилируется в машинный а не байткод, но это не исключает подхода с двумя компиляторами, основным и оптимизирующим. Почему такой подход не может быть реализован для Python?
Заранее прошу прощения, я недостаточно слежу за тенденциями вируса в мире чтобы делать какую-либо оценку статьи. Но вцелом, при прочтении возникло несколько вопросов:
Сколько стран по примеру южной кореи прошло пик и вышло на стабильный процент заражений? Сколько таких "полных" кривых было проанализировано?
На основе чего была выдвинута эта гипотеза: confirmed_top.loc[country, 'end_date'] = (datetime.strptime(confirmed_top.loc[country, 'peak_date']+'20', "%d.%m.%Y").date() + timedelta(confirmed_top.loc[country, 'days_to_peak'])).strftime('%d.%m.%Y')
Если кратко: завершение эпидемии = дата пика эпидемии + время от начала до пика + 20 дней. Откуда 20 дней? Влияет ли на время завершения количество зараженных?
Дата пика для стран которые его не прошли совпадает с последней проанализированной датой. Вероятнее всего это проблема какой-нибудь проверки в скрипте. И понимающий человек это просто проигнорирует. Но хорошо бы хоть как-нибудь об этом упомянуть, потомучто просто предсказываю что найдется автор который сошлется на эти прогнозы как на "авторитетный источник" во всей этой истерии.
Могу быть неправ. Но, reselect — только и нужен для мемоизации сложных преобразований, если она не нужна — можно писать свои селекторы с О(1) в виде функций. Итог: понимай зачем нужны инструменты которые используешь.
А вобще, посмотрите пожалуйста на библиотеку redux-act. Она позволяет строить экшены без голых {type: "...."} конструкций и разбивать редьюсер на красивые функции-обработчики с ресолвом через обьект вместо switch. Почти все что вы описали в статье уже реализовано.
Все динамически типизированные языки страдают от быстродействия по сравнению статически типизированными (компилируемыми). И в интерпретаторе нету доступа к branch-prediction и всяким другим плюшкам. Но есть же примеры где на динамической типизации применялись оптимизаторы с целью ускорить выполнение кода. Javascript это интерпретируемый язык, также как и Python. Но есть V8 который делает рантайм оптимизации на основе уже выполненных кусков кода. Да, JS компилируется в машинный а не байткод, но это не исключает подхода с двумя компиляторами, основным и оптимизирующим. Почему такой подход не может быть реализован для Python?
Заранее прошу прощения, я недостаточно слежу за тенденциями вируса в мире чтобы делать какую-либо оценку статьи. Но вцелом, при прочтении возникло несколько вопросов:
confirmed_top.loc[country, 'end_date'] = (datetime.strptime(confirmed_top.loc[country, 'peak_date']+'20', "%d.%m.%Y").date() + timedelta(confirmed_top.loc[country, 'days_to_peak'])).strftime('%d.%m.%Y')
Если кратко: завершение эпидемии = дата пика эпидемии + время от начала до пика + 20 дней. Откуда 20 дней? Влияет ли на время завершения количество зараженных?
Спасибо за статью.
А вобще, посмотрите пожалуйста на библиотеку redux-act. Она позволяет строить экшены без голых
{type: "...."}
конструкций и разбивать редьюсер на красивые функции-обработчики с ресолвом через обьект вместо switch. Почти все что вы описали в статье уже реализовано.