В предверии Нового года подводим итоги работы над дайджестом и выводим тенденций выявленные в процессе сбора новостей по языку Python.
За год доведен до ума и по максимуму автоматизирован сбор новостей. Ежедневно автоматически мониторится 19 источников и набирается в среднем 10-15 релевантных новостей из которых, в последствии отбираются лучшие и готовятся анонсы для дайджеста.
Ощутимый вклад приносят читатели дайджеста, ни один выпуск не проходит без добавленных ими новостей.
За полгода, прошедшие с тех пор как еженедельный дайджест новостей о языке программирования python и близлежащих технологиях перестал публиковаться на хабре, мы обзавелись постоянной аудиторией читателей, подружились c ведущими русскоязычными python-площадками, нашли и научились обрабатывать новые источники информации о python в сети, стали постоянно публиковаться в популярном паблике на эту тему во вконтактиках, переводили и публиковали интересные статьи.
Интересующихся подробностями и цифрами, милости просим под кат.
Как быть в курсе всех новостей.
Основная цель, ради которой создавался дайджест это создание агрегатора новостей и информации, как по языку программирования python, так и по ответвлениям или модулям. За время существования дайджеста собрано примерно 5235 материалов, переведено и опубликовано 1776 новостей.
Полезная информация распределилась по источникам следующим образом:
При этом “Разные источники” это, по большей части, twitter и то, что нам присылали гости через специальную форму. Социальные сети (Вконтактики, Google+) создают шум, но в качестве источника полезных новостей практически бесполезны.
В итоге получается, что если не хотите отстать от жизни, кипящей в python-сообществе, нужно подписываться и читать ленту ключевых twiiter-аккаунтов, читать топ r/Python за неделю, подписываться на две основных почтовых рассылки, и конечно не игнорировать хабру. Для джангистов и им сочуствующих может быть интересен агрегатор django line, основанный на трендах запросов к google по заданной тематике.
Год интересных новостей и тенденций
За время проведенное в поиске новостей, чтении статей и участии в публичных обсуждениях (а это уже более года) невозможно было не выделить новости-звездочки и не уловить некоторых тенденций. Ниже небольшой анализ текущей ситуации и подборка интересных статей, которые мы высоко оценили в течении года.
Главной тенденцией видится сильное развитие python в направлении научных вычислений и анализа данных. Далеко не последнее место здесь занимает замечательный проект IPython, который при поддержке мощных вычислительных библиотек pandas, numpy, SciKits позволяет интерактивно производить исследования и удобно делиться результатами и методами исследований/вычислений. Это заметили и в JetBrains — в PyCharm 4 улучшена поддержка и отладка IPython. Вот несколько хороших статей об этом, которые попадали в выпуски дайджеста в течении года:
- Построение интерактивных 3D диаграмм в IPython Notebook На основе сервиса plotly
- Применение IPython Notebook совместно с Apache Spark Работа через модуль PySpark открывающая новые пределы масштабируемости с технологиями Spark и Hadoop
- Поиск пузырей в фотографии пены Используем целый набор научных модулей и помимо задачи поиска пузырей определяется направление движения пены
- Графический интерфейс IPython (Jupyter) на примере свертки изображения Применение простенького html-слайдера для регулирования параметров алгоритма свертки изображения в IPython
Быстрее! Выше! Сильнее!
Еще одна тенденция — забота о производительности расчетов и алгоритмов вообще. Здесь несколько интересных подходов. Помимо указанных выше модулей, в которых уже реализованы многие численные алгоритмы, применяются, например, методики конвертации кода в машинный. Здесь замечательно себя показывает, проект Nuitka претендующий на умение собирать любой python-код в нативный с помощью преобразования его в аналогичный c++ код и последующей компиляцией. Немного другой подход в проекте Cython — его идея заключается в компиляции подмножества языка python в код, который удобно впоследствии использовать в качестве подключаемого модуля. Еще один подход jit-компиляция в процессе исполнения в специальном интерпретаторе PyPy. Версия pypy-stm, использующая модель Software Transactional Memory добралась до состояния когда ее реально можно использовать на проектах с 2.7 Ряд статей об этих технологиях и применении их в практических задачах были действительно очень интересными и даже переводились на хабре:
- Перенос выполнения части высоконагруженного кода с CPython на PyPy Выполняется с помощью модуля multiprocessing с указанием пути к новому интерпретатору. Довольно интересная возможность.
- Пишем более быстрый код Очень любопытный набор тестов производительности разных синтаксических конструкций языка.
- Когда стоит выбрать Jython Небольшой обзор и практический пример преимуществ использования Jython при интеграции с уже имеющимися Java-библиотеками
- Оптимизации в python и как они могут вас коснуться Написанный вами код разными способами оптимизируется интерпретатором при выполнении. Иногда это может привести к побочных эффектам, некоторые из которых освещены в статье и видеоматериале
- Почему python медленный: заглядываем под капот Обзор узких мест и причин их возникновения в языке python
- Пишем высокопроизводительный код на Cython
- Высокопроизводительные расширения для python на C В двух статьях автор разбирается с тем как ускорить выполнение сложных вычислений с помощью выноса их в расширение, написанное на более низкоуровневом языке. Здесь вторая часть
- Математические задачи оптимизации на Python Разбираемся, как решать задачи со множеством участников, применяя технику стохастической оптимизации. По существу, оптимизация сводится к поиску наилучшего решения задачи путем апробирования различных решений и сравнения их между собой для оценки качества. Обычно оптимизация применяется в тех случаях, когда число решений слишком велико и перебрать их все невозможно.
2.x vs 3.x
С 2011 года продолжается битва веток 2.x и 3.x. С одной стороны уже практически все библиотеки имеют приемлемую поддержку 3.x, с другой — разработчики все еще не спешат переходить на ветку будущего. Этому способствует и продление поддержки ветки 2.x до 2019 года, а также бекпортирование фич из третьей ветки.
- Почему Python 3, а не Python 2? Вопрос, который мучает всех. Ответы на этот вопрос можно найти в данной статье.
- Python, каким его хотел бы видеть Армин Ронахер Автор flask, jinja2, click делится своим мнением о проблемах в python и том в какую сторону ему стоило бы развиваться.
- PyConRu — Круглый стол: Нужно ли переходить с Python 2 на Python 3
- Почему Python 4.0 не должен быть таким, как Python 3.0 Статья из блога разработчиков Red Hat с размышлениями на тему
Углубляемся в python
Язык программирования начинает умирать как только о нем перестают писать глубокие технические статьи и создавать обучающие курсы. И того и другого за год было предостаточно, причем некоторые проекты претендовали на революционность.
- CheckIO Весьма оригинальный и увлекательный курс интерактивного игрового обучения python
- Интерактивный курс Python от learnpython.org Пошаговое обучение Python с возможностью выполнения кода прямо в браузере
- Спецкурс ВМК МГУ «Язык программирования Python» Для автора курса (Георгия Курячего) Python оказался в своё время настоящим открытием. Создавалось ощущение, что Гвидо планировал его по принципу «в других языках неудобно, надо сделать попроще». Основной упор в этой версии курса делается как раз на этой простоте.
- Мега-Учебник Flask Наконец-то переведен познавательный сериал о web-разработке на микрофреймворке Flask
- Учим старую собаку новым трюкам или как я научился любить str.format и отказался от % Reddit — канал о python Как полюбить str.format, и дать ему шанс по сравнению с форматированием через %
- Антипаттерны программирования Небольшое количество примеров о том как не стоит писать код на python
- Шпаргалка: Пишем совместимый Python 2-3 код Очень полезная статья о том как писать код чтобы он одинаково работал на Python 2.6+ и на Python 3.3+
- Топ 10 python идиом, о которых я бы хотел узнать раньше Рассказ об интересных, очевидных и не очень методиках в языке программирования python
- И еще раз о GIL в Python В этот раз касательно оптимизации числовых вычислений
- Преобразование кода в красивый, идиоматический Python Советы о том как придать своему коду красоту.
- Улучшаем управление пакетами Обзор нескольких инструментов (yolk, pip-review, peep...), которые могут существенно упростить жизнь разработчика
Web — наше все?
Смещение акцента в сторону web-разработки, в том числе на мобильных платформах, стало мировай тенденцией. Это видно и по составу статей анонсируемых на PythonDigest. Большинство из них о web или около него. Приведем лишь несколько случайных статей:
- Django 1.7 Вышел долгожданный релиз django 1.7
- Почему я не люблю Flask Есть такой популярный microframework: Flask. Многим нравится: легкий и простой для изучения, то да сё. А автору — категорически нет.
- Создание крупных приложений Flask в реальных условиях Рекомендации и базовые принципы создания хорошо поддерживаемых, масштабируемых и расширяемых проектов
- Сравнение движков шаблонизации Django vs Jinja Тесты показывают впечатляющее превосходство шаблонизатора Jinja2 над дефолтным шаблонизатором Django почти на всех фронтах. Почему почти, спросите вы? А потому что кроме технических метрик есть еще понятие совместимости с уже существующими приложениями (admin, cms, reversion ...) и удобство расширения.
- Полный Django туториал от начинающего до продвинутого Стал бесплатно доступен туториал по Django который ранее был платным для всех. Курс будет особенно полезен новичкам
- Современный Торнадо: распределённый хостинг картинок в 30 строк кода Статья о реализации простого вебсервера на Tornado
А в заключение — пожелания
Это далеко не все о чем хотелось и моглось бы рассказать, но уже новый год на носу — самое время время подвести итоги и загадать желания. Так вот, поскольку весь год мы были хорошими мальчиками и девочками, то просим у дедушки Мороза, чтобы разрозненные куски русскоязычного python-сообщества объединялись и ещё больше общались; чтобы фанаты python2 нашли компромисс с фанатами python3; чтобы kivy стала платформой номер один для мобильных приложений; чтобы pythondigest обзавелся еще большим количеством друзей, помог новичкам и гуру объединиться для развития сообщества в обсуждениях и в создании новых проектов и продолжал оставаться консолидирущей площадкой и агрегатором свежих знаний по Python`у. Ну и мира во всем мире на всякий случай — вдруг хоть в этот раз получится.
Поздравляем всех с наступающим Новым годом!
Большое спасибо owlman75 за соавторство и иллюстрацию к статье
Автор: alrusdi