Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Журнал ВРМ World

Работая над "Справочным руководством по Python"
Интервью с его редакторами

Издательство O'Reilly только что выпустило "Справочное руководство по Python", которое представляет собой собрание проблем, решений и практических примеров, написанных большой группой программистов Python. В нее вошло более двухсот "рецептов"; свою лепту в создание этого руководства также внесли такие светила Python, как Гвидо ван Россум (Guido van Rossum), Тим Питерс (Tim Peters), Пол Прескод (Paul Prescod) и Марк Хэммонд (Mark Hammond). Собрать воедино плоды такого коллективного творчества представляло собой исключительно непростую задачу, о чем и пошла речь во время нашей встречи с редакторами этой книги Алексом Мартелли (Alex Martelli) и Дэвидом Эшером (David Ascher).

Стюарт: Что послужило стимулом для написания "Справочного руководства по Python"?

Эшер: Как я упомянул в предисловии, история создания книги довольно необычна. Какое-то время мы с моим покойным другом Фрэнком Уиллисоном (Frank Willison) - он был редактором "Изучая Python" ( "Learning Python" ) - обсуждали "мою следующую книгу о Python". Мы прикидывали возможность написания книги о Jpython (термина Jython тогда еще не было), рассматривали другие вопросы, а затем меня пригласили работать в ActiveState, в результате чего у меня практически не осталось времени на написание книг о Python (к счастью, я стал проводить значительно больше времени, программируя на Python!). Спустя несколько месяцев Фрэнк и исполнительный директор ActiveState Дик Хардт (Dick Hardt) решили, что, поскольку сотрудничество в написании справочного руководства в интересах обеих компаний, ActiveState будет заниматься процессом интерактивного принятия материалов, а O'Reilly - изданием. Я уверен, что никто из них и не предполагал, в какие объемы работ это выльется, хотя, возможно, Фрэнк и догадывался, но просто предпочел не предупреждать меня!

Мартелли: Я знал, что справочное руководство - это как раз то, чего не хватало Python, и когда Дэвид Эшер и Лора Леуин (Laura Lewin) предложили мне присоединиться к этому проекту, я просто не мог упустить такую возможность.

На самом деле, я хотел написать такое руководство еще до того, как узнал, что O'Reilly с ActiveState уже его планируют, и я даже предложил это издательству, но идея ActiveState о "коллективно написанной" книги получила справедливое предпочтение, и к тому времени я решил отказаться от создания краткого пособия по Python (Python Nutshell).

Стюарт: Насколько концепция справочного руководства применима к Python?

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

Стюарт: Сколько "рецептов" в "Справочном руководстве по Python" и сколько всего человек участвовало в проекте?

Мартелли: Свыше 200 "рецептов", предложенных более чем 100 соавторами.

Стюарт: Было ли трудно работать с таким большим числом людей? С какими сложностями вы столкнулись, объединяя их в одну книгу?

Мартелли: Это было подлинное испытание - пытаться не умалить индивидуальность и своеобразие идей и стиля каждого участника и одновременно выдерживать единообразие изложения и подачи материала, требуемое от "Руководства по Python". Мы сделали все, что в наших силах, чтобы выполнить эти две взаимоисключающих задачи, помня о том, что обе они служат одной глобальной цели - предоставить читателю максимальное удобство в смысле ясности и легкости чтения (для этого и существует единообразие), а также показать ему многообразие индивидуальных подходов в Python (а для этого и существует своеобразие каждого автора). Так что, каждый раз, когда требовалось принять редакторское решение, глобальная цель "максимального удобства для читателя" была главным критерием.

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

Эшер: Алекс дал отличный ответ. Я просто добавлю следующее:

Одна из проблем, от которой Алекс был (я уверен, к счастью) избавлен, заключалась в разработке Web-сайта, который представлял "бланк ввода материалов книги". Для большинства "редактируемых книг" редакторы обычно координируют деятельность всех предварительно выбранных авторов, таким образом, относительно легко распределять среди них главы и темы, устанавливать общие редакторские директивы, поддерживать единообразие изложения и обеспечивать равное представление точек зрения авторитетных лиц в данной области.

В данном случае, авторы отбирались без нашего участия, и они писали на те темы, которые их интересовали. Разброс "рецептов" оказался очень неровным, и мы занялись типичной редакторской работой, когда нам пришлось искать авторов для написания введения. Некоторые разделы были прекрасно освещены (например, главы "Алгоритмы" и "Объектно-ориентированное программирование"), другие же пришлось распределить по другим главам. Примером тому - Jython, поскольку, по каким бы то ни было причинам, "рецептов", касающихся Jython, было представлено крайне мало. Помочь Алекса в устранении этих пробелов была решающей для успешного завершения книги.

Стюарт: Почему ваша книга так важна именно сейчас?

Мартелли: Применение Python стремительно растет, и основная задача - вооружить новых пользователей практическими советами и приемами, такими, как приведенные в этом руководстве.

Я все больше склонялся к мысли, что "именно сейчас подходящий момент". Только что был сформирован Бизнес форум Python (Python Business Forum), одна из основных задач которого - установить, подвергнуть всестороннему испытанию и, с благословения Гвидо ван Россума, взять под свое крыло одну избранную версию Python, которая должна быть известна как "Python в галстуке", с целью предоставления бизнес пользователям (этот Форум - консорциум компаний, для которых Python является залогом их успеха) надежную версию Python, которая будет меняться крайне редко, в то время как основная группа разработчиков Python сможет свободно и быстро продвигаться вперед, с избранной ими скоростью.

Сегодняшняя наиболее смелая надежда "Python в галстуке" - как раз в той версии Python, которая так хорошо изложена в "Справочном руководстве по Python" - Python 2.2. Я предсказываю широкое использование Python в бизнесе по мере того, как Форум будет сообщать о своих планах и реализовать их, а все новые бизнес пользователи будут применять Python 2.2, который как раз и является целью этого руководства (как и будущего краткого пособия). Серьезные, проверенные на практике примеры, полученные от огромного и разношерстного сообщества Python, а также обсуждения "за и против", применимость и альтернативы, советы и рекомендации - вот, что представляет собой это руководство, это то, в чем нуждается не только любой новичок и опытный пользователь Python, пытающийся узнать, как можно еще более эффективно использовать этот замечательный язык.

Стюарт: Что придает вашей книге уникальность по сравнению с другими книгами о Python?

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

Стюарт: Какова ваша предполагаемая аудитория?

Мартелли: Это люди, по крайней мере, немного знающие Python, но которым еще не выпал шанс работать бок о бок с настоящими знатоками этого языка, осведомленными о различных областях его применения -эта книга дает им те знания, "ноу-хау", которые пришли бы к ним с опытом.

Я бы посоветовал прочитать эту книгу даже тем, кто непосредственно не интересуется написанием кода на Python - просто для того, чтобы понять, что это за язык. Например, это руководство может помочь принять стратегическое решение о том, какой язык использовать в отдельном проекте - для этого не нужно досконально изучать многочисленные "рецепты", примеры модулей и программ и обсуждения.

Стюарт: Случались ли какие-нибудь забавные ситуации во время написания книги?

Мартелли: Мой отец в шутку угрожал, что заставит меня платить за кофе, который он готовил для меня - я поглощал его в огромных количествах: работая над этой книгой, я провел столько бессонных ночей, сколько никогда не проводил, программируя!

Я отблагодарил его, выразив свою признательность в Предисловии: последняя и самая важная благодарность... не только за кофе, но и за пример подлинной преданности - на протяжении всей жизни - своему делу, увлеченности им. После написания книги ему исполнилось 80, но он продолжает работать: он преподает в университете, у него своя практика - он врач, хотя, к счастью, он больше не работает целый день, так что теперь у него есть время угостить меня своим великолепным "экспрессо".

Стюарт: А какие-нибудь истории, связанные с языком?

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

Мы и по сей день шутим о том, что Python - ее соперница, особенно сейчас, когда моя любовь к нему, как и к ней, прошла испытание временем и показала свою серьезность и глубину. Сейчас я раз в месяц где-то на неделю (остальное время я общаюсь по сети) уезжаю из Болоньи, где я живу, в Швецию, в Готенбург (Gothenburg), где находится офис AB Strakt, фирмы, занимающей Python, на которую я работаю...

Стюарт: Какова была роль ActiveState в этом проекте?

Эшер: Три главные задачи: во-первых, ActiveState занималась Web-сайтом, что означало, что наша Web-команда отвечала за разработку и реализацию интерактивного руководства (которое все еще доступно и используется для многочисленных языков - проверьте). Потом ActiveState и O'Reilly рекламировали это руководство, что необходимо для того, чтобы получить высококачественные материалы. Наконец, ActiveState оплачивает мою работу.

Стюарт: Дэвид, расскажите нам, что нового в ActiveState? Что вы, ребята, там затеваете?

Эшер: Прямо сейчас у нас целая куча проектов, возможно, лето самая жаркая пора программирования, поскольку мы торопились довести дела до ума, чтобы в прошлом месяце показать их на конференции "Открытый код" (Open Source Convention). PerlMx - это наша программа фильтрации основанного на Perl спама, вирусов и общей электронной почты, которая снова осчастливит множество пользователей, получающих почту; мы обновили плагины Visual Studio.NET и добавили новые потрясающие возможности; однако, лично я больше всего люблю проект, над которым и работаю, это следующая версия межплатформенной, многоязыковой интегрированной среды разработки (кратко Komodo), пока я не могу говорить о ее новых возможностях, но я весьма доволен тем, что мы уже сделали. Кроме того, большинство захватывающих частей Komodo написано на Python, а писать на нем также интересно, как и в самый первый день.

Стюарт: Каковы, на ваш взгляд, перспективы Python?

Мартелли: Я думаю, что сегодняшнее быстрое развитие Python должно скоро замедлится, по мере того, как язык становится все ближе и ближе к идеалам его создателя (он уже довольно близок). Продолжится рост числа пользователей, так что ожидается, что все больше и больше пользователей будут вынуждены "узнать что к чему".

Стюарт: Оба вы участвуете в деятельности Организации программного обеспечения на Python (Python Software Foundation, PSF). Расскажите нам немного об этой организации и о людях, которые в ней работают.

Мартелли: Пусть Дэвид отвечает на этот вопрос, однако, я думаю, читателям будет интересно узнать, что некоторая часть того, что принято называть авторским гонораром, пойдет в PSF - некоммерческую организацию, цель которой продвигать Python и содействовать его применению.

Эшер: Я директор PSF, а это означает, что я являюсь членом ее правления - руководящего органа PSF. Мы строим организацию, которая может служить интересам ее членов: таких людей, как Алекс, кто внес значительный вклад в Python и кто хочет быть уверен, что Python будет процветать. С этой целью, мы создаем правовую и финансовую инфраструктуру, которая позволит PSF со всей ответственностью подойти к задаче зашиты интеллектуальной собственности на Python, а также способствовать росту этого языка. Чтобы присоединиться к организации, необходимо внести свой вклад в развитие Python, однако, компании, которые разделяют цели PSF, приглашаются к спонсорскому участию. Информацию о PSF можно посмотреть на домашней странице организации. К тому же, я написал статью для Perl Review о PSF (это просто шутка, но статья серьезная!) - соответствующий номер можно посмотреть здесь.

Стюарт: Дэвид, "Изучая Python" - одна из наиболее популярных книг о Python на этом рынке. Готовите ли вы новое издание?

Эшер: Теперь, когда работа над руководством завершена, эта книга - мой следующий проект. Это захватывающая задача, поскольку столько всего изменилось: Python 2.0, 2.1, 2.2 и ныне планируемая версия 2.3. К счастью, практически все, что изложено в первом издании, работает и по-прежнему полезно. Но сейчас, определенно, настало время для переиздания.

Эшер: Алекс, вы работаете над "Python вкратце" для O'Reilly. Как он продвигается?

Мартелли: Когда я начал работать над руководством, сроки по "Python вкратце" были сдвинуты с октября 2001 на март, а затем я поменял работу, чтобы полностью посвятить себя Python. Но эта отсрочка только пошла на пользу: я переделываю "Python вкратце" полностью так, как это сделано в руководстве, чтобы теперь эта книга охватывала все новое, что было разработано в Python 2.2, современной и наиболее значимой версии Python. "Python вкратце" должен выйти в октябре 2002, и мы выполним эту задачу вовремя.


Брюс Стюарт редактор Online Publishing Group издательства O'Reilly & Associates.