| Преимущества Python |
|
Если вы системный администратор, вам наверняка пришлось сталкиваться с Perl, Bash, ksh и некоторыми другими языками сценариев. Вы могли даже использовать один или несколько языков в своей работе. Языки сценариев часто позволяют выполнять рутинную, утомительную работу со скоростью и надежностью, недостижимой без них. Любой язык - это всего лишь инструмент, позволяющий выполнить работу. Ценность языка определяется лишь тем, насколько точно и быстро с его помощью можно выполнить свою работу. Мы считаем, что Python представляет собой ценный инструмент именно потому, что он дает возможность эффективно выполнять нашу работу. Можно ли сказать, что Python лучше, чем Perl, Bash, Ruby или любой другой язык? На самом деле очень сложно дать такую качественную оценку, потому что всякий инструмент очень тесно связан с образом мышления программиста, использующего его. Программирование -это субъективный и очень личностный вид деятельности. Язык становится превосходным, только если он полностью соответствует потребностям программиста. Поэтому мы не будем доказывать, что язык Python лучше, но мы объясним причины, по которым мы считаем Python лучшим выбором. Мы также объясним, почему он так хорошо подходит для решения задач системного администрирования. Первая причина, по которой мы считаем Python превосходным языком, состоит в том, что он очень прост в изучении. Если язык не способен быстро превратиться для вас в эффективный инструмент, его привлекательность резко падает. Неужели вы хотели бы потратить недели или месяцы на изучение языка, прежде чем вы окажетесь в состоянии написать на нем что-либо стоящее? Это особенно верно для системных администраторов. Если вы - системный администратор, проблемы могут накапливаться быстрее, чем вы можете разрешать их. С помощью языка Python вы сумеете начать писать полезные сценарии буквально спустя несколько часов, а не дней или недель. Если язык не позволяет достаточно быстро приступить к написанию сценариев, это повод задуматься в целесообразности его изучения. Однако язык, пусть и простой в изучении, но не позволяющий решать сложные задачи, также не стоит потраченных на него усилий. Поэтому вторая причина, по которой мы считаем Python превосходным языком программирования, заключается в том, что он позволяет решать такие сложные задачи, какие только можно вообразить. Вам требуется строку за строкой просматривать файлы журналов, чтобы выудить из них какую-то важную информацию? Язык Python в состоянии помочь решить эту задачу. Или вам требуется просмотреть файл журнала, извлечь из него определенные записи и сравнить обращения с каждого IP-адреса в этом файле с обращениями в каждом из файлов журналов (которые хранятся в реляционной базе данных) за последние три месяца, а затем сохранить результаты в реляционной базе данных? Вне всяких сомнений это можно реализовать на языке Python. Язык Python используется для решения весьма сложных задач, таких как анализ генных последовательностей, для обеспечения работоспособности многопоточных веб-серверов и сложнейших статистических вычислений. Возможно, вам никогда не придется решать подобные задачи, но будет совсем нелишним знать, что в случае необходимости язык поможет вам решать их. Кроме того, если вы в состоянии выполнять сложнейшие операции, но удобство сопровождения программного кода оставляет желать лучшего, это плохой знак. Язык Python ликвидирует проблемы, связанные с сопровождением программного кода, и он действительно позволяет выражать сложные идеи простыми языковыми конструкциями. Простота программного кода - существенный фактор, который облегчает дальнейшее его сопровождение. Программный код на языке Python настолько прост, что позволяет возвращаться к нему спустя месяцы. И достаточно прост, чтобы можно было вносить изменения в программный код, который раньше нам не встречался. Таким образом, синтаксис и общие идиомы этого языка настолько ясные, краткие и простые, что позволяют работать с ним в течение длительных периодов времени. Следующая причина, по которой мы считаем Python превосходным языком, заключается в высокой удобочитаемости программного кода. Блоки программного кода определяются по величине отступов. Отступы помогают взгляду следить за ходом выполнения программы. Кроме того, язык Python основан на «использовании слов». Под этим подразумевается, что хотя в языке Python используются свои специальные символы, основные его особенности в большинстве своем реализованы в виде ключевых слов или библиотек. Упор на слова, а не на специальные символы упрощает чтение и понимание программного кода. Вот эквивалентный фрагмент на языке Perl:
Теперь, когда мы выявили некоторые преимущества языка Python, мы проведем сравнение нескольких фрагментов программного кода на языках Python, Perl и Bash. Попутно мы познакомимся еще с несколькими преимуществами языка Python. Ниже приводится простой пример на языке Bash, который выводит все возможные парные комбинации символов из набора 1, 2 и символов из набора а, b: Это самый простой вложенный цикл. А теперь сравним эти реализации с циклом for в языке Python: Ниже приводится эквивалентный сценарий на языке Perl:
Далее продемонстрируем использование условных инструкций в Bash, Perl и Python. Здесь используется простая условная инструкция if/else, с помощью которой выясняется - является ли заданный путь к файлу каталогом:
А ниже - эквивалентный сценарий на языке Python: Еще один фактор, говорящий в пользу превосходства языка Python, -это простота поддержки объектно-ориентированного стиля программирования (ООП). А также то обстоятельство, что вас ничто не заставляет использовать ООП, если в этом нет необходимости. Но когда появляется потребность в нем, этот стиль оказывается чрезвычайно простым в применении. ООП позволяет легко и просто разделить проблему на составные функциональные части, объединенные в нечто под названием «объект». Язык Bash не поддерживает ООП, но Perl и Python поддерживают. Ниже приводится модуль на языке Perl с определением класса:
И далее фрагмент, в котором он используется: Программный код, в котором используется объектно-ориентированный модуль, достаточно прост. Однако на анализ самого модуля может потребоваться некоторое время, особенно если вы не знакомы с ООП или с особенностями реализации его поддержки в языке Perl. Эквивалентный класс на языке Python и порядок его использования выглядят, как показано ниже:
Примеры на языках Perl и Python демонстрируют некоторые из фундаментальных аспектов ООП, и вместе с тем они наглядно показывают различные особенности, которые используются в этих языках для достижения поставленной цели. Оба фрагмента решают одну и ту же задачу, но они отличаются друг от друга. Таким образом, если вы пожелаете использовать ООП, язык Python предоставит вам такую возможность. И вы достаточно легко и просто сможете включить его в свой арсенал. Другое преимущество Python проистекает не из самого языка, а из его сообщества. В сообществе пользователей языка Python достигнуто единодушие по поводу способов решения определенных видов задач, которые вы должны (или не должны) использовать. Несмотря на то, что сам язык обеспечивает множество путей достижения одной и той же цели, соглашения, принятые в сообществе, могут рекомендовать воздерживаться от использования некоторых из них. Например, инструкция from module import * в начале модуля считается вполне допустимой. Однако сообщество осуждает такое ее использование и рекомендует использовать либо инструкцию import module, либо инструкцию from module import resource. Импортирование всего содержимого модуля в пространство имен другого модуля может вызвать существенные осложнения, когда вы попытаетесь выяснить принцип действия модуля и узнать, где находятся вызываемые функции. Это конкретное соглашение поможет вам писать более понятный программный код, что позволит тем, кто будет сопровождать его, выполнять свою работу с большим удобством. Следование общепринятым соглашениям открывает вам путь к использованию наилучших приемов программирования. Мы считаем, что это идет только на пользу. Стандартная библиотека языка Python - это еще одна замечательная особенность Python. Если применительно к языку Python вы услышите фразу «батарейки входят в комплект поставки», это лишь означает, что стандартная библиотека позволяет решать все виды задач без необходимости искать другие модули для этого. Например, несмотря на их отсутствие в самом языке, Python обеспечивает поддержку регулярных выражений, сокетов, нескольких потоков выполнения и функции для работы с датой/временем, синтаксического анализа документов XML, разбора конфигурационных файлов, функций для работы с файлами и каталогами, хранения данных, модульного тестирования, а также клиентские библиотеки для работы с протоколами http, ftp, imap, smtp и nntp и многое другое. Сразу после установки Python модули поддержки всех этих функциональных особенностей могут импортироваться вашими сценариями по мере необходимости. В вашем распоряжении имеются все перечисленные здесь функциональные возможности. Весьма впечатляет, что все это поставляется в составе Python и вам не требуется приобретать что-то еще. Все эти возможности будут чрезвычайно полезны вам при создании своих собственных программ на языке Python. Простой доступ к огромному количеству пакетов сторонних производителей - еще одно важное преимущество Python. Помимо множества библиотек, входящих в стандартную библиотеку языка Python, существует большое число библиотек и утилит, доступных в Интернете, которые устанавливаются одной командой. В Интернете, по адресу http:// pypi.python.org, существует каталог пакетов Python (Python Package Index, PyPI), где любой желающий может выкладывать свои пакеты в общее пользование. К моменту, когда писались эти строки, для загрузки было доступно более 3800 пакетов. Начав пользоваться PyPI, вы обнаружите, что он совершенно необходим вам для поиска и установки полезных пакетов. Многие из преимуществ языка Python проистекают из его базовой философии. Если в строке приглашения к вводу Python ввести команду import this, перед вами появится так называемый «Дзен языка Python» Тима Петерса (Tim Peters):
Этот свод правил - не догма, следование которой считается обязательным на всех уровнях разработки языка, но сам дух его, кажется, пропитывает почти все, что происходит в языке и с языком. И мы считаем, что это замечательно. Возможно, именно поэтому мы день за днем стремимся использовать Python. Эта философия совпадает с тем, чего мы ждем от языка. И если она совпадает с вашими ожиданиями, значит язык Python будет хорошим выбором и для вас.
Related Articles
Set as favorite
Bookmark
Email This
Hits: 650 Комментарии (0)RSS feed CommentsНаписать комментарий |