Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 14
Текст из файла (страница 14)
По всему миру проводится огромное количество конференций, самыми крупными из которых являются OSCON (организатор – издательство O’Reilly) и PyCon (организатор –PSF). Первая из них рассматривает различные открытые проекты, а втораяпосвящена исключительно событиям, связанным с языком Python, которыйпереживает бурный рост в последние несколько лет. Количество посетителейPyCon в 2008 году практически удвоилось по сравнению с предыдущим годом, увеличившись с 586 посетителей в 2007 году до более 1000 посетителейв 2008. Этому удвоению предшествовало 40% увеличение числа посетителейв 2007 году, с 410 человек в 2006. В 2009 году конференцию PyCon посетили943 человека, немного меньше, чем в 2008, но все равно достаточно много дляпериода глобального кризиса.В чем сильные стороны Python?Естественно – это вопрос разработчика.
Если у вас еще нет опыта программирования, язык следующих нескольких разделов может показаться немного непонятным, но не волнуйтесь, мы будем рассматривать все эти термины позднее, в ходе изложения материала. А для разработчиков ниже приводится краткое введение в некоторые особенности языка Python.В чем сильные стороны Python?53Он объектно-ориентированныйPython���������������������������������������������������������������изначально является объектно-ориентированным языком программирования.
Его объектная модель поддерживает такие понятия, как полиморфизм, перегрузка операторов и множественное наследование, однако, учитывая простоту синтаксиса и типизации Python, ООП не вызывает сложностейв применении. Если эти термины вам непонятны, позднее вы обнаружите, чтоизучать Python гораздо легче, чем другие объектно-ориентированные языкипрограммирования.Объектно-ориентированная природа Python, являясь мощным средствомструктурирования программного кода многократного пользования, крометого, делает этот язык идеальным инструментом поддержки сценариев дляобъектно-ориентированных языков, таких как C++ и Java. Например, при наличии соответствующего связующего программного кода, программы на языке Python могут использовать механизм наследования от классов, реализованных на C++, Java и C#.Как бы то ни было, но ООП не является обязательным в Python; вы сможете стать опытным программистом и при этом не быть специалистом по ООП.Как и C++, Python поддерживает оба стиля программирования – процедурныйи объектно-ориентированный.
Объектно-ориентированные механизмы могутиспользоваться по мере необходимости. Это особенно удобно при решении тактических задач, когда отсутствует фаза проектирования.Он свободныйPython может использоваться и распространяться совершенно бесплатно. Каки в случае с другими открытыми программными продуктами, такими как Tcl,Perl, Linux и Apache, вы сможете получить в Интернете полные исходные тексты реализации Python.
Нет никаких ограничений на его копирование, встраивание в свои системы или распространение в составе ваших продуктов. Фактически вы сможете даже продавать исходные тексты Python, если появитсятакое желание.Но «свободный» не означает «не поддерживается». Напротив, сообществосторонников Python в Интернете отвечает на вопросы пользователей со скоростью, которой могли бы позавидовать большинство разработчиков коммерческих продуктов. Кроме того, свободное распространение исходных текстовPython способствует расширению команды экспертов по реализации. И хотяпредоставляемая возможность изучать или изменять реализацию языка программирования не у всех вызывает восторг, тем не менее, наличие последнейинстанции в виде исходных текстов придает уверенность.
Вы уже не зависитеот прихотей коммерческого производителя – в вашем распоряжении находится полный комплект исчерпывающей документации.Как уже упоминалось выше, разработка Python ведется сообществом, усилиякоторого координируются в основном через Интернет. В состав сообществавходит создатель Python – Гвидо ван Россум (Guido van Rossum), получившийофициальное звание Пожизненного Великодушного Диктатора (BenevolentDictator for Life, BDFL) Python, плюс тысячи других разработчиков. Изменения в языке принимаются только после прохождения формальной процедуры54Глава 1. Python в вопросах и ответах(известной как «программа совершенствования продукта», или PEP) и тщательно проверяются формальной системой тестирования и самим Пожизненным Диктатором.
Это обеспечивает большую степень консерватизма Pythonв отношении изменений, по сравнению с некоторыми другими языками программирования.Он переносимСтандартная реализация языка Python написана на переносимом ANSI C,благодаря чему он компилируется и работает практически на всех основныхплатформах. Например, программы на языке Python могут выполняться на самом широком спектре устройств, начиная от наладонных компьютеров (PDA)и заканчивая суперкомпьютерами.
Ниже приводится далеко неполный списокоперационных систем и устройств, где можно использовать Python:•• Операционные системы Linux и UNIX•• Microsoft Windows и DOS (все современные версии)•• Mac OS (обе разновидности: OS X и Classic)•• BeOS, OS/2, VMS и QNX•• Системы реального времени, такие как VxWorks•• Суперкомпьютеры Cray и ЭВМ производства компании IBM•• Наладонные компьютеры, работающие под управлением PalmOS, PocketPCили Linux•• Сотовые телефоны, работающие под управлением операционных системSymbian и Windows Mobile•• Игровые консоли и iPod•• И многие другиеПомимо самого интерпретатора языка в составе Python распространяетсястандартная библиотека модулей, которая также реализована переносимымспособом. Кроме того, программы на языке Python компилируются в переносимый байт-код, который одинаково хорошо работает на любых платформах,где установлена совместимая версия Python (подробнее об этом будет рассказываться в следующей главе).Все это означает, что программы на языке Python, использующие основныевозможности языка и стандартные библиотеки, будут работать одинаково и вLinux, и в Windows, и в любых других операционных системах, где установленинтерпретатор Python.
В большинстве реализаций Python под определенныеоперационные системы имеется также поддержка специфических механизмов этих систем (например, поддержка COM в Windows), но ядро языка Pythonи библиотеки работают совершенно одинаково в любой системе. Как уже говорилось выше, Python включает в себя средства создания графического интерфейса Tk GUI под названием tkinter (Tkinter в Python 2.6), что позволяетпрограммам на языке Python создавать графический интерфейс, совместимыйсо всеми основными графическими платформами без индивидуальной программной настройки.В чем сильные стороны Python?55Он мощныйС точки зрения функциональных возможностей Python������������������������������������������������можно назвать гибридом.
Его инструментальные средства укладываются в диапазон между традиционными языками сценариев (такими как Tcl, Scheme и Perl) и языками разработки программных систем (такими как C, C++ и Java). Python обеспечиваетпростоту и непринужденность языка сценариев и мощь, которую обычно можно найти в компилирующих языках. Превышая возможности других языковсценариев, такая комбинация делает Python удобным средством разработкикрупномасштабных проектов.
Для предварительного ознакомления ниже приводится список основных возможностей, которые есть в арсенале Python:Динамическая типизацияPython����������������������������������������������������������������сам следит за типами объектов, используемых в программе, благодаря чему не требуется писать длинные и сложные объявления в программном коде. В действительности, как вы увидите в главе 6, в языке Pythonвообще отсутствуют понятие типа и необходимость объявления переменных.
Так как программный код на языке Python не стеснен рамками типовданных, он автоматически может обрабатывать целый диапазон объектов.Автоматическое управление памятьюPython автоматически распределяет память под объекты и освобождает ее(«сборка мусора»), когда объекты становятся ненужными. Большинствообъектов могут увеличивать и уменьшать занимаемый объем памяти помере необходимости.
Как вы узнаете, Python сам производит все низкоуровневые операции с памятью, поэтому вам не придется беспокоиться об этом.Модульное программированиеДля создания крупных систем Python предоставляет такие возможности,как модули, классы и исключения. Они позволяют разбить систему на составляющие, применять ООП для создания программного кода многократного пользования и элегантно обрабатывать возникающие события и ошибки.Встроенные типы объектовPython предоставляет наиболее типичные структуры данных, такие каксписки, словари и строки, в виде особенностей, присущих самому языкупрограммирования. Как вы увидите позднее, эти типы отличаются высокой гибкостью и удобством. Например, встроенные объекты могут расширяться и сжиматься по мере необходимости, могут комбинироватьсядруг с другом для представления данных со сложной структурой и многоедругое.Встроенные инструментыДля работы со всеми этими типами объектов в составе Python имеютсямощные и стандартные средства, включая такие операции, как конкатенация (объединение коллекций), получение срезов (извлечение части коллекции), сортировка, отображение и многое другое.Библиотеки утилитДля выполнения более узких задач в состав Python также входит большаяколлекция библиотечных инструментов, которые поддерживают практиче-56Глава 1.