Главное Авторские колонки Вакансии Образование
Выбор редакции:
4 958 1 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Почему наши аналитики кодят на Python

Отвечаем на вопрос и по пути разбираемся в особенностях языков программирования: зачем появляются новые, как выбрать нужный и для чего вам все это знать, если вы не программист.
Мнение автора может не совпадать с мнением редакции

ГОВОРИ НА ЯЗЫКЕ СВОЕЙ ЗАДАЧИ

Языки программирования разрабатываются для разных целей. Поэтому они отличаются по степени сложности, мощности, скорости обработки компилятором. Например, один из первых языков общего назначения – язык C – обладает синтаксисом, который легко компилируется процессором в машинный код. Поэтому написанные на нем команды работают быстро. Его часто используют системные программисты. Однако, для чтения он не так удобен, особенно если у вас большое полотно кода. Все потому, что в операциях на языке C больше используется символов, а не букв и слов. Буквы набирать быстрее и читать проще. Но у людей и компьютеров – разные предпочтения.

b_5acb1d335599d.jpg

Код программы – победителя международного конкурса запутанного кода на языке С 1998 год.

«Языки программирования развивались вместе с технологиями, – объясняет Андрей Плющенко, приглашенный эксперт статьи, руководитель группы анализа данных Eastwind. – Компьютеры распространялись повсюду, увеличивались мощности ПО, а с ними и требования к программам. Вместе с тем как разработка становилась все сложнее, программисты понимали, что им чего-то не хватает: новых библиотек, формул, автоматизации. Так, появление языков с классами: C++, C# и так далее, ознаменовало рождение концепции объектно-ориентированного программирования (ООП). В языках новой парадигмы стало доступно больше функций, которые делают за программиста рутинные вещи».

Библиотеки или функции в языке программирования – это «вшитые» готовые решения. Другими словами, это уже написанные кусочки кода для ряда операций, которые можно вызвать при необходимости. Большое количество таких шаблонов делает работу на языке удобнее и проще, но сами команды программа будет выполнять медленнее. Задержка происходит за счет того, что для выполнения действия язык обращается не напрямую к ОС, а через вызов библиотеки. Но если в вашей работе не принципиально: за 5 или 8 секунд отработает та или иная команда – вы можете выбрать язык с более удобным синтаксисом и богатыми возможностями.

b_5acb1d86761c5.jpgФрагмент кода на Python 3.5.1

Все языки программирования постоянно обновляются. Появляются новые алгоритмы действий, добавляется больше библиотек. Разница в том, что не все языки обновляются одинаково: например, в одном со временем может быть больше примочек для задач web-разработки, в других – для системных решений. При выборе языка важно, как быстро и часто в нем будут появляться обновления, важные в вашей области программирования.

«Любой может написать часть кода и выложить его в Git (распределенная система управления версиями). Оттуда можно скачать или установить напрямую то обновление языка, которое тебе нужно, – рассказывает Андрей Плющенко, Eastwind. – Одно из важных преимуществ Python для нас – для него часто появляются новые библиотеки и процедуры по анализу данных».

Так, чтобы выбрать наиболее подходящий вам язык программирования, ответьте на три вопроса:

  1. Насколько вам важна скорость выполнения команд? Для аналитика важно быстро обрабатывать данные. Но время обработки датасета, в первую очередь, зависит от технических характеристик, а не от языка программирования. Поэтому для аналитики не обязательно выбирать быстрый язык: он не внесет решающий вклад в выполнение самих операций.
  2. Насколько вам важно, чтобы у кода был простой и понятный синтаксис (написание)? Если по основному профилю вы – не программист, но в процессе работы с кодом все же приходится сталкиваться, будет оптимально выбрать менее сложный язык.
  3. Как много в языке есть библиотек для задач вашей отрасли и как часто они обновляются? От этого критерия будет зависеть насколько оперативно вы сможете адаптироваться к новым технологиям и требованиям времени.

КАК И ПОЧЕМУ АНАЛИТИКИ EASTWIND ПЕРЕШЛИ НА PYTHON

Когда аналитический отдел в Eastwind только зарождался, наши первопроходцы пользовались SQL. Вернее, сервисом по аналитике на базе Microsoft SQL: туда можно было загрузить датасет и что-то с ним сделать из списка существующих в программе алгоритмов. Это было не программирование, а сбор из кубиков. Да и кубиков было мало. Поэтому ребята отказались от этого решения из-за узкой функциональности и перешли на язык R.

«Несколько лет назад про R много писали – особенно он был популярен у статистиков, – вспоминает Андрей Плющенко, Eastwind. – Также на нем можно заниматься машинным обучением. Но его синтаксис показался нам не самым удобным и очевидным: похожие вещи делаются совершенно по-разному. В то время я учился в ШАД Яндекса, где нам рекомендовали Python. Решили попробовать».

Оказалось, у языка Python богатые возможности для анализа данных. И, что немаловажно, он обладает понятным и простым синтаксисом. Кроме того, многие конструкции в питоне привычны по другим языкам программирования. Все вместе это сокращает время разработки и позволяет специалистам заниматься своей основной задачей – аналитикой, а не застревать в дебрях программирования.

СПРАВКА
  • Автор языка Python – нидерландский программист Гвидо ван Россум. Изначально, это был объектно-ориентированный язык, но со временем он стал поддерживать и парадигму функционального программирования. Впервые автор опубликовал Python в 1991 году.
  • Один из самых популярных диструбутивов (набор библиотек) языка Python Anaconda. Он также включает в себя библиотеки языка R, и часто используется для работы с данными.
  • При обновлении языка Python сегодня разработчики придерживаются философии, известной как «Дзен Питона». Ее суть: хороший код – это простой код.

b_5acb1db618e6a.jpgАвтор Python Гвидо ван Россум

Благодаря своей простоте Python достаточно быстро набрал популярность. Сегодня его используют для быстрого прототипирования, web-разработки, написания GUI приложений, обработки данных и другого. «Питонистов» – так называют тех, кто кодит на «питоне» – становится все больше. Поэтому больше и обновлений на языке, чаще появляются новые функции и библиотеки. К тому же, Pythonсамый задокументированный язык в интернете, что облегчает его изучение.

«Мы работаем с big data на большом стеке задач, и у питона для каждого из инструментов есть свои готовые решения, – делится Андрей Плющенко, Eastwind.Вообще, под любые новые технологии на питоне очень быстро выходят новые библиотеки, которые можно брать, легко подключать и запускать в работу. В этой простоте и заключается удобство питона».

ХОЧЕШЬ ПОПАСТЬ В СЛИЗЕРИН? КАК НАЧАТЬ КОДИТЬ НА ПИТОНЕ

Хотя при выборе названия Python автор решил посвятить его британскому комедийному шоу 1970-х «Летающий цирк Монти Пайтона», сегодня образ змеи крепко закрепился за этим языком. Так как же начать писать на змеином языке? Мы попросили Андрея Плющенко поделиться собственным опытом.

Пять шагов к использованию Python:

  1. Сам язык не сложный, поэтому уровень вхождения – практически нулевой. Чтобы начать кодить на питоне – достаточно пройти несколько курсов. Например, на Coursera или в ШАД. Там дадут базовые вещи.
  2. Питон дает несколько возможностей сделать то или иное действие. Пользуясь только «базой», вы рискуете остаться на одном уровне. Бывает, что этого достаточно, но в целом: это не соответствует философии питон, так как многие вещи ты будешь продолжать писать так, как привык это делать в других языках.
  3. Чтобы понимать питон (а не просто использовать), нужно проникнуться его идеями. Если вы – не программист, перед изучением непосредственно языка, погрузитесь в понятия объектно-ориентированного и функционального программирования и разберитесь в них в равной мере. Если вы – программист, но писали раньше только в одной из парадигм, изучите и другую. Иначе вы не поймете питон до конца. Читайте статьи, форумы, мнение авторов о новых релизах, рекомендации и так далее. Так вы сможете выработать особое мышление для работы на питоне.
  4. Дальнейшее использование – зависит от ваших задач и бэкграунда. Если хотите просто кодить для себя, то вперед. Если хотите идти писать код в аналитику – нужно, в первую очередь, разбираться в аналитике. Питон дает много возможностей использования. Нужно лишь выбрать интересующую вас область и погрузиться в ее специфику.
  5. Если база изучена, а задачи понятны, остается нарабатывать практику. Я рекомендую читать документацию и смотреть, как пишут другие. Для этого можно изучать код разных библиотек, которые находятся в открытом доступе. Смотришь и думаешь: почему решение реализовано так, а не иначе? И понимаешь логику и структуру языка.
«Язык программирования – это лишь средство достижения цели, а не сама цель, – подводит итог Андрей.Для работы на Python не нужно знать все его библиотеки досконально – их очень много, и все они для разных задач. Например, ребята в группе анализа данных Eastwind хорошо умеют работать с big data на Python, но, скорее всего, не смогут разработать на нем web-сервер или GUI. Мы – специалисты не по использованию отдельно взятого языка программирования, а по решению конкретного круга задач в исследовании данных. И в рамках наших задач мы используем Python эффективно».

b_5acb1de651254.jpgГруппа анализа данных Eastwind

+3
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Систематика
Первая социально-ответственная организация в сфере интернет-маркетинга
Криковцов Вячеслав
Плюсую. сами используем Anaconda. Разобрались с библиотекой достаточно быстро.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.