Продолжается подписка на наши издания! Вы не забыли подписаться?

Среда разработки**

Как-то, попивая чаёк, я задумался – зачем Microsoft создает такое количество редакторов кода с подсветкой синтаксиса? Принципы подсветки синтаксиса одинаковы для всех языков, создать хороший редактор совсем непросто. Так зачем же снова и снова создавать велосипед? Причем велосипед в большинстве случаев получается кривой. Можно, конечно, долго уговаривать пользователя, что в VB 6 нужен совершенно особый редактор, позволяющий "на лету" форматировать введенный код, но, честно говоря, такая помощь несколько навязчива, да и убогость остальной функциональности это мало оправдывает. Если же посмотреть на редактор SQL-выражений, используемый в MS Query Analyzer (входящий в состав средств администрирования MS SQL Server), то появляется ощущение, что в Microsoft написание редакторов с подсветкой синтаксиса является неким стандартным заданием для тренировки неопытных программистов. Да что там редакторы! Сама среда разработки не менее сложна и важна частью. В одном из интервью ведущий специалист из группы разработки нового языка программирования C# признался, что в его группу входят пять человек. Когда же у него спросили, сколько из них работало над средой разработки, он сказал: «Ну что вы, над средой работала вся компания». Так вот, главное, что проглядывается в среде – похоже, Microsoft внял телепатическим вопросам многих недоумевающих пользователей и решил, выбросив все неуклюжие наработки своих молодых программистов, взяться за разработку единой среды с общим редактором, тулбарами (ну, в общем, пользовательским интерфейсом).

Что же получилось у Microsoft? Пока что полностью на этот вопрос вам никто не ответит, все-таки бета 1 – это далеко не релиз, но кое что сказать можно и сейчас.

Я точно не знаю, кто первый создал интегрированную среду разработки (IDE). По-моему, это был Borland (а может, как всегда Xerox, ведь куда не плюнь, он был первым). Как бы там ни было, но это был не Microsoft! Первой интегрированной средой от Microsoft был Quick C. Среда Quick C появилась, как естественная попытка исправить фатальный недостаток, ну вы знаете какой! Причем попытка была довольно удачной. В связке с очень быстрым компилятором и продуманным интерфейсом (он был содран с Windows, тогда еще мало известной), а также малыми системными требованиями, эта среда оказалась очень конкурентоспособной. И хотя сторонники Borland упрекали Microsoft за то, что он не реализовал в Quick C полнофункциональную оконную инфраструктуру, общее количество удобств перевешивало имевшиеся недостатки (да и вопрос о преимуществе перекрывающихся окон по сравнению с разделением весьма небольшого в те времена размера экрана, был спорным).

После Quick C у Microsoft была большая череда откровенно неудачных экспериментов. Это и неповоротливый и сложный Developer Workbench, и Quick C для Windows, и первые версии VC. Следующей удачей (с точки зрения интерфейса) был VB. Правда, удачным его можно назвать только для средства быстрой разработки. С его помощью можно было быстро и удобно создавать интерфейс будущего приложения, но среда у него была довольно слабовата. Тем временем среда VC развивалась, и к 6-й версии стала довольно удобной. По крайней мере на мой взгляд, в ней был лучший редактор кода, хорошие средства автоматизации и легко настраиваемая и расширяемая среда. Однако удобного средства создания пользовательского интерфейса в VC не было. Да и средства автоматизации явно не дотягивали до своего аналога из MS Office. Но все это было доступно только С/С++-программистам. VB-программисты вынуждены были довольствоваться ненастраиваемой средой с неудобными клавиатурными сокращениями, а о макросах можно было только мечтать.

Новая среда претендует на звание наследника всех хороших сторон своих предков, начиная с Quick C, и если бы не медлительность в работе и не гигантские требования к ресурсам, то она, скорее всего, стала бы таким наследником. Производительность и требования к ресурсам скорее всего изменятся к релизу. Будем надеяться, что не в худшую сторону.

А сама среда действительно хороша. Ее прототипом является Microsoft Visual InterDev 6.0, входящий в поставку VS 6 и MS Office 2000 (редактор скриптов). Исполняемый модуль InterDev-а даже называется DEVENV.EXE, недвусмысленно намекая на свое предназначение. Практически все средства разработки VS.Net интегрированы в единую среду и могут пользоваться всеми ее преимуществами. «Практически» - потому что в VS.Net входит FoxPro 7.0, который имеет свою среду и не зависит от общего окружения. Правда, из общей среды можно создать один из типов FoxPro-проектов - «VFP Middle Tier Project», но для создания полнофункционального проекта придется загружать автономную среду, не блещущую улучшениями. В общем, или FoxPro еще не переделали под новую платформу, или на него попросту плюнули. В любом случае, это явный сигнал Fox-программистам: «пора подыскивать другое средство…». Ну да ладно, вернемся к среде.

Становящиеся прозрачными при перетаскивании панели инструментов, возможность прикрепить любое окно куда угодно и многие другие бесполезные вещи здесь в изобилии, но встречаются и полезные. Например, поиск с заменой по файлам. Причем при поиске и замене (как по нескольким файлам, так и внутри одного файла) можно использовать регулярные выражения (как в VC 6) или wildcards (как в MS Word). Среда полностью настраивается. Можно изменить/задать клавиатурные сокращения для любой команды, настроить меню и панели инструментов, записать или создать вручную макросы, автоматизирующие часто выполняемые операции. Не забудьте, что теперь этим могут пользоваться не только С-программисты! Настройки, которые будут использоваться по умолчанию, можно выбрать из довольно внушительного списка. Я выбрал настройки, соответствующие VC 6.

Закрепленные по сторонам рабочей среды окна, можно пометить как «Автоматически прячущиеся» (Auto Hide), при этом вдоль рамки окна появляются узкие полоски со списком скрытых окон. Если навести курсор мыши на имя скрытого окна, то соответствующее окно всплывет. Это похоже на аналогичную функциональность панели задач (Taskbar) Windows за тем исключением, что между концом экрана и началом имени окна есть некоторое расстояние, спасающее от случайных попаданий мыши в активную область. Скрытые окна открываются с некоторой задержкой, также спасающей от непреднамеренных выезжаний. Auto Hide в Windows сильно раздражает, и лично я не могу пользоваться этой возможностью. Auto Hide окон в VS.Net мне очень понравился, и я часто использовал его при работе со средой. Самое приятное, что для того, чтобы переключить окно в Auto Hide-режим и обратно, достаточно одного нажатия мыши ни кнопку , находящуюся в правом углу окна.

Рис. 5. Server Explorer

Среда стала действительно интегрированной. Через окно «Server Explorer» можно управлять локальными или удаленными серверами приложений (см. рисунок 5).

Стоит упомянуть «Динамическую помощь» (Dynamic Help). Это новое свойство призвано заменить задолбавшую скрепку из MS Office. Динамическая помощь – это окно, которое обычно закреплено сбоку рабочей области, изменяющее свое содержимое в зависимости от выделенного в данный момент элемента. Таким элементом может быть другое окно, выбранный элемент управления или строка кода, на которой в данный момент находиться курсор (см. рисунок 6). Главное преимущество перед скрепкой – ненавязчивость и отсутствие постоянно вылетающих ненужных диалогов. Любую хорошую идею можно довести до абсурда – я ничего не имею против 12 записей в Clipboard, но то, как это сделано в Word – в виде неуничтожимого и раздражающего тулбара – просто ужасно!

Рис. 6. Dynamic Help

Кратко новую среду можно охарактеризовать так: VB и VC в одном флаконе из-под MS Office. Причем практически все возможности значительно расширены...

**Полный текст статьи вы можете найти в печатной версии журнала

Copyright © 1994-2016 ООО "К-Пресс"