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

Журнал ВРМ World

Программирование на Python: схватывая суть

Пройдясь по всему спектру мощных языков программирования, мы увидим у каждого из них на фасаде вывеску со впечатляющим перечнем возможностей. Некоторые из вывесок побольше и попривлекательнее, чем другие (потраченные на маркетинг доллары действительно работают), но за любой стоит толпа преданных сторонников, выкрикивающих оттуда восторженные возгласы. Каждый программист выглядит весьма убежденным в несомненных преимуществах своего любимого языка.

Мне пришлось выяснять, поборов свою восприимчивость и всесторонне используя такие компании/технологии, как Google, Red Hat, Industrial Light и Magic, Yahoo и множество других, что же делает таким особенным язык Python?

Искусство использования языка Python

Недавно на Конвенции открытых программных средств О'Рейли в Монтеррей, Калифорния, один из посетителей поделился со мной своими проблемами при написании некоего кода. Он написал приложение на Perl, которое должно было решать бодрящую задачу подсчета его налогов. Все работало великолепно, объяснил он, пока наши добрые друзья из IRS не выпустили очередную реформу налогового законодательства. Осознав, что необходимы изменения в программе, он внимательно перечитал исходный код и понял, что чрезвычайно сложно внести изменения в код, написанный им же самим год назад. Это было явно сродни попытке пробраться через дремучий лес в надежде найти ключ, спрятанный тобою где-то там под камнем у какого-то дерева.

После написания нескольких программ на языке Python, он понял, что существует альтернатива - код, который намного яснее, бесконечно проще читается и, следовательно, модифицируется с минимальными усилиями. Код, написанный им год назад, можно было бы легко переделать.

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

Трехголовый кашалот

Каждый язык имеет свои особенности в структуре блоков, синтаксисе и других элементах; эти особенности почитаемы его защитниками и страстно любимы его критиками. Программисты, пишущие на Python, воркуют о простоте, привносимой отступами, тогда как поклонники С шумят о достоинствах его фигурных скобок. Каждый рекламирует свой собственный метод как наилучший.

Никто не станет опровергать тот факт, что со своими уникальными достоинствами и недостатками данный язык более подходит для решения одних задач и менее - для других. Вот тут-то и выходит на сцену фантастический дизайн языка Python. Python может естественным образом интегрировать в одну программу языки типа C, C++, Fortran, Java и другие. Python с выгодой использует качества других языков, поддерживая их способности к склеиванию - благодаря своей беспрецедентной гибкости и силе - превращаясь в подобие "клея", соединяющего эти языки и просто продолжающего работать. Программисты языка Python хвастливо спрашивают, зачем довольствоваться одним языком, когда можно использовать все?

Радость новичка

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

Я немедленно подписался под всеми заявлениями о простоте Python. Если я смог написать multiplicationtable.py, значит и миллионы жаждущих кода студентов отделений вычислительной техники будут вовлечены в мир объектно-ориентированного программирования. Фрэнк Стаджено из компьютерной лаборатории Кембриджского университета подтверждает, что Python идеально подходит для "экспрессивной природы программирования: синтаксис не мешает логике программирования. Кроме того, в пользу Python говорит и то, что это практичный язык, которым студенты могут пользоваться в решении реальных задач". На вопрос "Как насчет языка Python?" профессора, похоже, уже дружно кивают головами.

Python продолжает впечатлять своей мощью и адаптивностью, начиная с поощрения новичков самых первых уровней и поднимаясь до вызова самым опытным хакерам на высшем уровне. Продуманность дизайна позволяет этому языку объединять специализированные свойства других языков в единую программу. И при этом Python остается простым в изучении и использовании, выразительным, практичным, объектно-ориентированным, легким в работе, быстрым... я что-то упустил?

Я снимаю шляпу перед мистером ван Россумом: будущее действительно выглядит светлым.