#encoding koi8-r #extends phd_site #implements respond #attr $Title = 'python.html' #attr $Copyright = 2001 ## #def body_text Python начался в 1990 году, когда сотрудник голландского института CWI.NL Гвидо ван Россум участвовал в проекте ABC (http://www.cwi.nl/cwi/projects/abc.html) - проекте создания обучающего языка и интерактивной среды. Многие идеи Гвидо позаимствовал из этого проекта. В 1991 году была версия 0.9, и с тех пор новые версии выходили примерно раз в год (1.0, 1.1 и до 1.5.2 включительно), когда произошла некоторая заминка. Американская корпорация CNRI (http://www.cnri.reston.va.us/), где в ту пору работал Ван Россум, стала выделять ему все меньше времени на развитие собственно языка и интерпретатора. Ему это не понравилось, и он стал искать спонсора для своей работы. Вскоре он вместе с еще 5 главными разработчиками ушел в фирму BeOpen. Там была выпущена версия Python 2.0, главным изменением в котором был шаг в сторону большей открытости разработчиков. Дерево CVS переехало на SourceForge, появилась возможность послать bug-report и участвовать в общении с разработчиками. Плюс разные изменения языка и библиотек, появился Unicode и т.д. В BeOpen, однако, финансовые дела тоже не задались, и та же команда всем составом перешла в фирму Digital Creations (создатели Zope). Сошлись за одним рабочим столом авторы Python и Zope! 17 апреля 2001 вышел Python 2.1. В этой версии главное изменение - появление вложенных контекстов (nested scopes), пока еще опционально, чтобы дать разработчикам возможность проверить свой код перед тем как в версии 2.2 вложенность перестанет быть опциональной. Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход. Python поддерживает множественное наследование, переопределение инфиксных операторов, причем можно переопределить как левый оператор, так и правый; в версии 2.1 есть полное переопределение операторов сравнения (механизм rich comparison для объектов, поддерживающих частичное упорядочивание, например, матриц). В Python имеются исключения и механизм их перехвата; таким образом программист может построить правильную обработку ошибок и создать надежную программу. Встроенные механизмы интроспекции позволяют опрашивать свойства объектов во время выполнения программы. Например, можно узнать кол-во и имена параметров функции; эту интроспекцию использует Zope, чтобы подготовить правильный список параметров функции при вызове ее из web. Из современных языков Python можно сравнить в первую очередь с Java и Perl. Python выполняет все обещания, которые дала, да не выполнила Java. Python очень хорошо переносим. Мало найдется таких платформ, на которые Python не перенесен. Я не говорю про UNIX и Windows, конечно - с точки зрения переносимости куда интереснее такие платформы как Mac, Amiga, Palm, RiscOS, AS/400 и многие другие. Для особых любителей Java есть Jython. Он состоит из двух частей: во-первых, это интерпретатор Pyhon, написанный на Java, а во-вторых это компилятор Python в байт-код Java. В сравнении с Perl - Python как язык ему совершенно равномощен, но избавлен от великого множества неприятностей и неудобств, присущих Perl. Python обладает богатой стандартной библиотекой, плюс великим множеством модулей, доступных в Интернете. Для пользователей Windows есть пакет win32, из которого доступны практически все функции Windows API. Существует Русскоязычная Группа Пользователей Python и Zope. Сайт группы расположен по адресу http://zope.net.ru/. На список рассылки можно подписаться, послав по адресу majordomo@list.glas.net письмо с телом subscribe python. #end def $phd_site.respond(self)