https://habrahabr.ru/post/340494/Перевод статьи
5 Reasons why Python is Powerful Enough for GoogleВы готовитесь начать новый проект. Какой язык вам выбрать для разработки?
Или, если переформулировать данный вопрос:
вы ищите работу, какой язык вам нужно учить?
По названию данной статьи вы можете догадаться, что правильным ответом я считаю Python. Но почему?
Ответ заключается в том, что Python — это мощный язык. Но что это значит? Что делать язык программирование мощным?
Python эффективный
В наши дни тонны интеллектуальной энергии уходит на Большие данные (как на их анализ, так и на их обработку). Чем больше данных вам необходимо обрабатывать, тем важнее управлять используемой вами памятью.
Python предоставляет генераторы как
выражений, так и
функций.
Генераторы допускают итеративную обработку вещей, по одному элементу за раз. Это не кажется каким-то фантастическим, пока вы не начнете понимать, что для нормальной итеративной обработки списка требуется список. Список занимает память. Очень большой список занимает много памяти.
Там, где это особенно удобно (когда у вас длинная цепочка процессов), необходимо применение к набору данных. Генераторы позволяют одновременно захватывать исходные данные по одному элементу и передавать их по всей цепочке процессов.
Я часто сталкиваюсь с необходимостью переноса данных с одного сайта на другой. Некоторые из сайтов, которые я переношу, имеют десятилетние истории и гигабайты данных. Используя средства миграции на основе генератора
collective.transmogrifier, я могу считывать данные сайта, производить сложные, взаимозависимые обновления данных, в то время, как он обрабатывает, создает и сохраняет объекты на новом сайте в постоянной памяти.
Для приложений, в которых вы имеете дело еще большими наборами данных, такой инструмент может быть незаменимым. У Дэвида Бизли есть
отличная презентация, в которой содержатся некоторые довольно убедительные примеры использования генераторов для системных задач. Взгляните и вы увидите, как разыграется ваше воображение!
Python быстрый
Ладно, ладно. Я слышу фырканье. Ведь Python — это интерпретируемый язык, не так ли? Разве они не медленные?
Дело в том, что за последние годы была проделана изумительная работа, чтобы улучшить производительность Python.
Проект
PyPy направлен на ускорение работы Python в целом (и
отлично справляется с этим).
Numba может предложить
потрясающее увеличение скорости, просто добавив декораторов в код, который у вас уже есть.
Таким образом, я хочу сказать, что если вы хотите делать высокопроизводительные вычисления, Python сегодня является жизнеспособным вариантом.
Python широко распространен
Python существует уже довольно давно и используется почти во всех областях деятельности. Reddit thread создал опрос
«как вы используете Python на работе», в ответах задачи, начиная от системной автоматизации, тестирования и ETL до игр, CGI и веб-разработки.
Disney использует Python для
поддержки своего творческого процесса.
Mozilla использует Python для
изучения своей обширной базы кода и выпускает множество пакетов с открытым исходным кодом, встроенных в Python.
Проверка
PyPi, каталога общедоступных пакетов для Python, показывает 40 тысяч дополнений, доступных почти в
300 перечисленных категориях.
В принципе, если вы хотите что-то сделать на Python, есть довольно хорошие шансы, что у кого-то это уже есть, и вам не нужно начинать с нуля.
Python — это не Python
Недавно я читал пост о том,
почему существует так много разных видов Python.
Автор считает, что Python на самом деле не язык, это описание языка. Это значит, что вы можете реализовать Python любым способом.
Python, с которым большинство людей взаимодействует, это CPython, реализация, написанная на C. Одна из особенностей CPython заключается в том, что она предлагает чистую интеграцию с кодом, написанным на C, поэтому реализация оберток вокруг библиотек C относительно проста.
Но есть и
Jython, который предлагает глубокую интеграцию с Java-кодом,
Iron Python для работы с C# и .NET-кодом,
PyObjc для написания кода на Python с использованием инструментальных средств ObjectiveC и даже
pyjs, который предлагает скомпилировать ваш Python для JavaScript.
Таким образом, если у вас уже есть программный стек на одном из этих языков, довольно просто включить Python в вашу рабочую среду, чтобы вы могли извлечь максимальную пользу из всех его возможностей.
Python — это легко
У Python репутация легкого для изучения языка. Синтаксис языка предназначен для чтения. Есть
много споров по этому поводу, но факты говорят сами за себя.
Значительная часть популярности Python сосредоточена в таких областях, как
научные вычисления. Люди, работающие в этой области, в первую очередь являются учеными и лишь потом программистами (если вообще ими являются).
Передовые системы, такие как
NumPy и
SciPy, были основаны не командами инженеров-программистов, а специалистами предметной области, которые создали инструменты, необходимые для выполнения работы.
Think about that.
Если вы создаете новый проект и работаете в какой-то специализированной области, кому вы хотите доверить разбираться с тем, какие проблемы следует решать? Конечно, вы можете нанять специалистов данной предметной области и разработчиков (и в конечном итоге, они вам понадобится). Вы даже можете научить их говорить друг с другом (и в конечном итоге, вам это тоже понадобится). Но если вы только начинаете, что вам лучше всего сделать?
Я считаю, что вам необходимо выбрать язык, который дает полномочия вашим экспертам напрямую.
Выберите Python.