Постановка задачи
Какие инструменты нужны программисту? О, если начать все их вспоминать, то можно составить очень длинный список! Потому что в нашей стране программисты не только пишут код и отлаживают программы, но также выполняют ещё тысячу и одну разнообразную задачу, которую, вообще говоря, может выполнить и человек, не имеющий диплома программиста.
Для непосредственно программирования многого на самом-то деле не надо. Достаточно текстового редактора, в котором будет писаться код, компилятора или интерпретатора и отладчика. В принципе, наиболее предпочтителен этакий инструмент-комбайн, который будет совмещать внутри себя все эти инструменты. Как известно, такие "комбайны" именуются интегрированными средами разработки, или, если короче, то IDE. В целом, IDE гораздо удобнее, чем комплекс из отдельно взятых текстового редактора, компилятора/интерпретатора и отладчика. Однако не всегда имеет смысл использовать целую интегрированную среду разработки. Например, если весь проект разрабатывается с использованием одного языка программирования, а несколько отдельных его модулей, далеко не самых больших, перенесены из проекта или просто написаны на другом языке. Тогда вполне достаточно отдельных инструментов, не объединённых в интегрированную среду. Например, если web-приложение пишется на PHP, то для разработки запросов к базе данных и пары скриптов на Perl'е нет смысла использовать специальные среды для языков SQL и Perl, достаточно блокнота.
Однако блокнот, которым будет пользоваться программист, должен отличаться от программы, которую встроили в систему разработчики Windows. И отличие должно быть в лучшую сторону. Минимальные требования, предъявляемые к блокноту для программиста, таковы:
- поддержка подсветки синтаксиса (причем, чем большее число языков программирования поддерживается, тем лучше);
- поддержка нумерации строк и закладок;
- поддержка многодокументного интерфейса (возможность открыть несколько файлов в одном окне) - очень часто нужно копировать код из одного файла в другой или сообразовывать изменения в двух файлах, а когда открыто много окон, в них несложно и запутаться;
- возможность работы с разными кодировками - чтобы в таком блокноте было удобно редактировать HTML- и XML-документы.
Естественно, блокнот - не операционная система: затраты сил, времени, денег и нервов на его разработку сравнительно невелики, особенно сейчас, когда существуют готовые библиотеки для реализации текстовых редакторов с подсветкой синтаксиса. Однако я всё же хочу ознакомить вас с несколькими текстовыми редакторами, которые приглянулись мне больше остальных. Почему приглянулись? Скорее всего, дело в том, что по функциональности они меня вполне устраивают, поэтому я успокоился, отыскав их в интернете. Немаловажным является то, что все программы, о которых я сейчас вам расскажу, являются или open-source, или хотя бы просто freeware, так что не нужно тратить деньги или заниматься незаконной деятельностью по их взлому.
Notepad++
Сначала я хотел разместить программы в обзоре в хронологическом порядке, однако потом подумал, что на первое место нужно поставить именно этот программный продукт, поскольку это действительно Блокнот (да, именно так, с большой буквы). Думаю, эта программа умеет если не всё, то практически всё, что должно входить в функциональности приличного блокнота, так что её разработка будет вестись разве что в направлении добавления новых языков для подсветки их синтаксиса.
Официальный сайт продукта: notepad-plus.sourceforge.net. Эта программа распространяется под лицензией GNU General Public License, то есть является свободным программным обеспечением. Там можно скачать не только сам дистрибутив, но и множество разнообразных плагинов и прочих вещей, расширяющих функциональность программы. Впрочем, обо всём по порядку.
Notepad++ удовлетворяет сформулированным выше требованиям на 100 с лишним процентов. На момент написания статьи он поддерживал 43 языка для подсветки синтаксиса, среди которых такие сравнительно экзотические, как Lua, Postscript, Scheme, Smalltalk и некоторые другие. Пользователь имеет возможность задать собственный синтаксис для его подсветки. Помимо нумерации строк и закладок, поддерживается фолдинг кода (это когда отдельные его участки можно сворачивать). Имеются и другие функции, полезные для редактирования программного кода: введение отступа в начало каждой строки блока кода, дублирование строк, комментирование блока кода. Текст в редакторе можно выровнять как по правому краю, так и по левому, что, конечно, интересно, но вряд ли несёт в себе глубокий практический смысл. А вот что по-настоящему полезно, это функции Function Completion и Word Completion, помогающие программисту подсказками в процессе набора исходного текста программы. Правда, для их полноценной работы нужно скачивать дополнительные файлы с сайта разработчиков программы, но на самом-то деле это не так уж и затрудняет пользователей этого замечательного программного продукта.
Среди других функций можно отметить цветную печать текста (большинство других блокнотов печатает подсветку синтаксиса только чёрным, выделяя слова жирным и курсивом), а также удобную организацию многодокументного интерфейса. Каждый документ в окне программы представлен отдельной вкладкой (как, например, страницы в браузерах Opera или Firefox). Такое представление, как мне кажется, на порядок удобнее традиционного MDI-интерфейса, при котором для переключения между окнами нужно лезть в меню.
А ещё Notepad++ поддерживает записи. Встроенного макроязыка и редактора для него а-ля VBA из Microsoft Office в этом приложении, конечно, нет, однако запись макросов позволяет здорово сократить время работы в случае написания однотипных участков кода. Хотя, на самом деле само по себе наличие таких участков в программе - не очень хороший признак...
Также, как я уже упоминал, программа поддерживает подключаемые внешние модули (плагины). Плагинов к Notepad++, конечно, не так много, как к WinAMP'у или Photoshop'у, однако они есть, и это не может не радовать. Среди них - шестнадцатеричный (HEX) редактор, а также привлекающая обилием функций группа плагинов под общим названием TextFX. В TextFX функций так много и они настолько разнообразны, что, пожалуй, эти плагины пригодятся любому: работа со специальными символами, преобразование выражений и операторов, очистка текста от лишних пробелов и пустых строк, чистка HTML-кода... Всего назвать, боюсь, никак не получится.
Что я ещё не назвал? Работа со многими кодировками? Пожалуй, только это. А, да, чуть не забыл! Угадайте, сколько "весит" дистрибутив Notepad++? Думаю, никогда не угадаете, если только не знаете. Всего-то около полутора мегабайт. И это при всех разнообразных полезных функциях. Так что если вы ещё пользуетесь стандартным блокнотом Windows для набора кода в отдельных случаях, то мой вам совет: обязательно взгляните на Notepad++. Вряд ли вам захочется возвращаться к стандартному блокноту.
Kudaz
Сейчас я познакомлю вас ещё с одним блокнотом, на этот раз от японского разработчика. Он называется Kudaz (слово это, очевидно, японское, но что оно означает, я, к сожалению, не знаю). Найти этот блокнот можно по адресу www.geocities.jp/keynes77jp. Размер его дистрибутива ещё меньше: всего один мегабайт, а умеет он много. Но Kudaz отличается от Notepad++ по своей функциональности, именно поэтому его и стоит отдельно обсудить.
Количество поддерживаемых языков для подсветки синтаксиса у этого редактора намного меньше - в списке только C/C++, Pascal, HTML, XML и CSS. Проигрывает он первому блокноту и отсутствием многодокументного интерфейса. Также отсутствуют фолдинг кода и подсказки при его наборе.
Правда, не нужно думать, что программа совсем ничего не умеет. При необходимости редактирования HTML в виде текста Kudaz может оказаться удобнее, чем Notepad++. Потому что есть встроенные функции выбора цвета из палитры, планирования структуры таблиц, вставки изображений, а также перевода обычного текста из буфера обмена в HTML. Из других функций, которые в Notepad++ - экспорт текста в RTF, Tex и HTML с подсветкой синтаксиса. Хотя, в целом, Kudaz менее функционален, поэтому я бы советовал использовать его как запасной текстовый редактор для тех случаев, когда нужно редактировать именно HTML-код. Правда, он, конечно, как и всякий текстовый редактор, менее удобен, чем редактор типа WYSIWYG.
SciTE
Название этого редактора - сокращение от Scintilla Text Editor. На самом деле эта программа была создана для демонстрации возможностей Scintilla - библиотеки для создания редакторов, как раз подобных тем, которые мы сегодня рассматриваем. Поэтому редактор этот можно найти на сайте самой библиотеки, то есть по адресу www.scintilla.org.
Этот редактор очень похож на Notepad++, выполненный, кстати, тоже на основе Scintilla (Kudaz базируется на другой библиотеке, SynEdit). Однако функциональность SciTE не так велика, как оная у Notepad++. Зато он умеет интегрироваться с некоторыми компиляторами, и тогда компиляцию можно выполнять прямо из него. Как и поиск ошибок, обнаруженных компилятором: можно найти строки, в которых допущена ошибка, с помощью сообщений, выдаваемых им. В целом же Notepad++ лучше, однако если для вас такая "интеграция" является значимым фактором, то попробуйте SciTE.
XML Notepad
Ну и последний из блокнотов, как можно увидеть по его названию, предназначен для редактирования XML-документов. Причём, что интересно, производитель этой программы - не кто-нибудь, а корпорация "Майкрософт". Найти XML Notepad можно по адресу msdn.microsoft.com/xml.
Ничего, кроме XML, с помощью этой программы отредактировать не получится. Зато XML редактировать сравнительно комфортно. Сбоку располагается дерево элементов и их атрибутов, а справа - непосредственно редактор значений. Есть поддержка схем документа (только XML Schema, DTD не поддерживается). Можно отыскать ошибки в документе или сравнить содержимое двух XML-документов прямо не выходя из редактора. В целом, конечно, для редактирования XML документов блокнот будет удобен, однако он не похож на остальные блокноты и даже близко не удовлетворяет требованиям, сформулированным мной в начале статьи. Однако, тем не менее, для многих программистов он будет полезен, поэтому, собственно, я и включил его в обзор.
Что ж, вот они, блокноты. Я их представил, своё мнение высказал. Одно могу сказать - блокнот в хозяйстве вещь полезная, поэтому хотя бы один из них стоит на своём компьютере заиметь.
Вадим СТАНКЕВИЧ
![Версия для печати Версия для печати](https://www.kv.by/sites/all/modules/print/icons/print_icon.png)
Комментарии