Python-программисты ликуют
Много о каких средах разработки рассказывал я на страницах "Компьютерных вестей". Но об IDE для такого популярного языка, как Питон, до сих пор почему-то речь не шла. Спешу исправиться: Python - далеко не аутсайдер на сегодняшней арене языков программирования, а значит, знать об инструментах разработки для него актуально и полезно.
Где взять Wing IDE
По традиции, перед тем, как рассказывать о различных "вкусных" штуках, которыми создатели Wing IDE снабдили своё детище, скажу о том, где вот это самое детище на просторах Всемирной паутины можно, так сказать, нарыть. Сделать это совсем не сложно, потому что Wing IDE имеет вполне определённое место дислокации, URL которого таков: www.wingware.com. По этому адресу можно найти дистрибутив этой среды разработки, а также разнообразную информацию, касающуюся как непосредственно Wing IDE, так и языка программирования, для которого эта среда предназначена.
Редактор кода
Пожалуй, одна из важнейших, если вообще не самая важная часть любой интегрированной среды разработки - это всё-таки редактор кода. Конечно, другие вещи тоже важны - на то она и интегрированная среда, чтобы содержать в себе и отладчик, и менеджер проектов, и разные дополнительные инструменты, и без всего этого работать довольно сложно. Но редактор кода - эта та часть, с которой программист проводит больше всего времени "с глазу на глаз", а потому обзор стоит начать именно с неё.
В Wing IDE редактор кода выполнен весьма профессионально, что видно уже буквально с первого взгляда, брошенного пользователем на среду после того, как она запустилась. О такой банальной вещи, как подсветка синтаксиса, даже говорить не стоит - сейчас это уже стандарт для блокнотов, не то что для IDE. Но редактор кода в Wing IDE умеет, конечно, гораздо больше, чем блокноты, - поддерживается фолдинг кода (сворачивание отдельных участков, не нужных в настоящий момент и только загромождающих экран), автоматическая подсветка пар скобок, выполненная, кстати, по умолчанию гораздо лучше, чем во многих других средах разработки, гораздо более известных. Поскольку язык программирования Python, для которого и создана Wing IDE, отличается от большинства других широко распространённых языков тем, что отступы являются в нём управляющими конструкциями, то Wing IDE имеет специальную поддержку работы с отступами. Правда, чем она отличается от аналогичной поддержки работы в IDE для других языков, сказать сложно. По крайней мере, лично я каких-то особенных отличий не заметил.
В джентльменский набор поддерживаемых Wing IDE "фишек" входят различные раскладки горячих клавиш, дублирующие аналогичные им раскладки из разных популярных сред разработки для различных платформ: Visual Studio, VI/Vim, Emacs. Так что если, скажем, вы пересаживаетесь на Wing IDE с той же Visual Studio, переход будет более простым за счёт этой полезной особенности Wing IDE. Среди других полезных вещей, которые, как и во всякой приличной среде разработки, имеются в том программном продукте, о котором мы сейчас ведём речь, стоит отметить именованные закладки, возможность быстрого перехода к объявлению заданного идентификатора, возможность столь же быстрого перехода к строке с определённым номером, блочное комментирование кода (оно бывает весьма и весьма полезно при отладке приложений). Если есть желание, можно пронумеровать все строки, но не думаю, что это сильно упростит навигацию по коду. Ещё отдельно стоит упомянуть, пожалуй, поддержку макросов, которые позволяют автоматизировать рутинное набивание однотипного программного кода.
Особняком стоит такая вещь, как автозавершение и автодополнение вводимого программистом вручную кода - из всех особенностей современных IDE эта едва ли не больше всего увеличивает продуктивность труда разработчика. Помимо стандартной библиотеки "Питона", среда поддерживает работу с такими библиотеками, как wxPython, PyGTK и PyQt, - а это означает, что при разработке приложений с их использованием можно использовать возможности Wing IDE на полную катушку. Ещё одна небесполезная для львиной доли разработчиков вещь - это подсветка всевозможных синтаксических ошибок прямо при наборе кода. Выявить синтаксические ошибки, таким образом, становится делом считанных секунд, а сэкономленное время можно пустить на какие-нибудь другие полезные действия по улучшению написанного кода. Поддерживает Wing IDE также и разнообразные подсказки, которые будут появляться при наведении курсора мыши на отдельные идентификаторы в коде. Есть также проводники по классам и модулям, содержащимся в проекте, так что даже в достаточно большом проекте есть возможность не запутаться. Думаю, разработчики оценят все эти возможности, предусмотрительно встроенные в Wing IDE её авторами, по достоинству.
Как видите, редактор кода в Wing IDE действительно выполнен на весьма достойном уровне. Однако хоть эта часть IDE и очень важна для разработчиков, это не означает, что остальные части среды разработки совсем не важны. Поэтому, думаю, пришло время поговорить немного и о них.
Отладка в Wing IDE
Хотя отладчики во всех нормальных средах разработки похожи друг на друга, как братья-близнецы, думаю, что отладчик - тоже очень важная часть любой среды разработки, о которой имеет смысл говорить не менее подробно, чем о редакторе кода. А может, даже более подробно - ведь работа с отладчиком более тяжела и сопряжена со всякими приключениями и неожиданностями.
Основная функция отладчика - пошаговое выполнение инструкций программного кода с возможностью просмотра значений переменных - в Wing IDE поддерживается на ура. В процессе отладки можно использовать такие полезные вещи, как точки останова (breakpoints). Точки останова могут быть и условными (conditional breakpoints), что добавляет дополнительную мощь этому годами испытанному орудию отладки программ. Но, в общем-то, если бы на этом все возможности отладчика и заканчивались, вряд ли бы о нём вообще стоило говорить. На самом же деле, среди возможностей отладки в Wing IDE есть куда более интересные, чем те, о которых я только что упомянул.
Во-первых, отладчик позволяет работать и с GUI, и с Web, и с консольными приложениями. Во-вторых, в него встроены расширенные возможности отладки ввода-вывода программ и имеется даже отдельная консоль для консольного ввода-вывода. В-третьих, поддерживается многопоточная отладка. Это не просто полезно, а жизненно необходимо для отладки синхронизации потоков в многопоточных приложениях. В-четвёртых, имеется возможность удалённой отладки. Про неё можно сказать то же самое, что про отладку многопоточную, только это уже будет относиться не просто к многопоточным приложениям, а уже к приложениям распределённым. Их написание и отладка никогда не относились к особенно лёгким задачам программирования ни в одном языке, и очень хорошо, что хотя бы отладка хоть как-то упрощается благодаря среде разработки. В-пятых, отладчик сам ловит все несловленные программистом исключения, так что потом можно найти все места, где они возникают и устранить такие бреши в программном коде. Эту возможность, правда, сложно назвать нетривиальной для современных отладчиков, но и бесполезной её тоже не назовёшь.
Отладчик в Wing IDE, как написано на сайте этой программы, имеет специальную поддержку Zope и Plone - правда, в чём заключается её "специальность", почему-то не поясняется. Имеется поддержка вычисления выражений в процессе отладки, так что можно, не пользуясь никакими дополнительными инструментами, определить, правильное значение имеет переменная или же в программе что-то пошло не так, как должно было пойти.
Другие возможности среды
Конечно, на редакторе кода и отладчике среда разработки ещё далеко не заканчивается. Есть в Wing IDE много других полезных вещей, о которых я ещё не успел рассказать.
Во-первых, стоит упомянуть встроенное средство сбора баг-репортов для самой среды разработки. Это очень хороший индикатор отношения создателей Wing IDE к своему программному продукту - и отношение это, надо сказать, радует, потому что наличие такого средства показывает заинтересованность разработчиков в том, чтобы сделать свой продукт лучше. То же самое, впрочем, можно сказать и в адрес средства автоматического обновления среды.
Полезная вещь - инструмент unit-тестирования, встроенный в Wing IDE. Многие современные методологии разработки программного обеспечения делают акцент на этом типе тестирования приложений, а некоторые даже ставят его во главу угла (если вы не слышали ничего о test-driven development, обязательно погуглите и почитайте, что это такое). В Wing IDE есть также интеграция с такими популярными системами контроля версий, как CVS, Subversion, Perforce. Конечно, нет поддержки многих других систем, например, той же TeamCoherence, но это вовсе не делает Wing IDE хуже - на мой взгляд, по крайней мере. Поддерживается такая полезная вещь, как code snippes. Это библиотека небольших, но логически завершённых фрагментов программного кода, которые можно легко и быстро добавлять в свои приложения и тем самым экономить время, нужное на кодирование. Хотя эту вещь и не назовёшь сильно важной, но она зачастую приносит довольно весомую пользу.
Ну и последним аккордом в списке всех плюсов Wing IDE хочется назвать то, что функциональность этой среды разработки можно расширить путём написания скриптов на том самом "Питоне" - то есть, разработчик имеет возможность взять удобство своей работы в собственные руки и усовершенствовать.
Резюме
Что ж, сказано всего хорошего о Wing IDE немало. Похоже, мне удалось рассказать почти о всех возможностях этой среды разработки - а если не обо всех, то уж, по крайней мере, о самых существенных, что уже само по себе очень даже и неплохо. Осталось только подвести итоги всему сказанному - этим, собственно, сейчас и займёмся.
Во-первых, хочется сказать, что Wing IDE - действительно качественная среда разработки, наверняка способная порадовать каждого программиста, который пишет на "Питоне". Благодаря удобству написания кода и отладки эта среда делает разработку приложений на "Питоне" более комфортным занятием, чем разработка без неё. А поэтому, думаю, использовать Wing IDE действительно имеет смысл.
Во-вторых, благодаря постоянному совершенствованию этого программного продукта разработчики получают возможность не просто программировать на "Питоне" в Wing IDE, но и не терять весь багаж навыков по работе со средой при переходе на её более новые версии - это тоже немаловажно, хотя часто этому не придают должного значения.
В общем, если ещё раз подытожить всё сказанное, то Wing IDE - rulezzz!
Вадим СТАНКЕВИЧ
Горячие темы