История интегрированных сред
Концепция интегрированной среды разработки приложений
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др.
Использование интегрированной среды - один из возможных подходов к разработке программ. Альтернативой ему является более ранний, традиционный подход системы UNIX, основанный на использовании набора инструментов (toolkit, toolbox), родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX) вызываемых врежиме командной строки (command line interface).
Разумеется, использовать интегрированную среду гораздо удобнее для разработчика, чем и объясняется бурное развитие и разнообразие интегрированных сред, начиная с 1980-х годов.
Одной из первых интегрированных сред стала среда Turbo Pascal [1] фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.
Корпорация Microsoft внесла особо выдающийся вклад в развитие интегрированных сред, благодаря созданию и развитию среды Visual Studio, которая является одним из лучших образцов современной интегрированной среды. Ее новую версию, Visual Studio 2013, мы и рассмотрим в данном курсе.
История интегрированных сред
Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:
· Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) фирмы Borland для поддержки программирования на этих языках, реализованные сначала для операционной системы MS DOS, затем - для ОС Windows;
· GNU Emacs [2] - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux. Среди сотрудников моей группы разработчиков, работавших с фирмой Sun Microsystems в 1990-х гг., было немало пользователей и энтузиастов среды GNU Emacs, благодаря ее реализации для платформы Solaris.
Следует также упомянуть интегрированную среду тех лет для разработки программ на объектно-ориентированном языке Smalltalk [3] фирмы Xeror PARC - одну из первых интегрированных сред ООП, в которой впервые появилось понятие байт-кода как бинарной постфиксной формы промежуточного представления программы и понятие just-in-time (JIT, динамического) компилятора, выполняющего при первом вызове метода его компиляцию в платформно-зависимый (native) код целевого компьютера.
Турбо-среды фирмы Borland оказали огромное влияние на разработчиков ПО и создателей инструментов разработки ПО. Их характерной чертой стала поддержка непрерывного цикла разработки: набор и редакторование исходного текста - компиляция - анализ и исправление ошибок - завершение компиляции - исполнение и отладка - без выхода из интегрированной среды, причем все эти этапы управлялись простым набором функциональных клавиш и не требовали явного вызова каких-либо отдельных инструментов. Привлекательным качеством Турбо-сред стала также высокая скорость компиляции. Хотя в первых версиях Турбо-Паскаля компиляция осуществлялась до первой ошибки, и для поиска и диагностики всех ошибок приходилось, после исправления предыдущей, запускать компиляцию снова, но это выполнялось мгновенно с помощью функциональных клавиш.
Турбо-среды имели встроенный механизм сборки (build) для полной компиляции всех исходных текстов проекта в бинарный код, а также режим make (F9), аналогичный функциональности классической утилиты make системы UNIX, для повторной компиляции только измененных модулей исходного текста.
Самым важным нововведением в среде Турбо-Паскаль было расширение входного языка объектно-ориентированными концепциями (класс, объект) и конструкцией unit (модуль), воплощающей в себе идею независимой единицы компиляции (compilation unit). Поддержка ООП появилась в версии 5.5. Впоследствии эти идеи были развиты, уже на платформе Windows, в новых версиях интегрированных сред фирмы Borland - Borland Pascal и Delphi (язык программирования фирмы Borland, развивающий идеи Паскаля в сочетании с ООП).
Я со своей группой в начале 1990-х гг. разработал большое число инструментов и приложений на объектно-ориентированном Турбо-Паскале (5.5, 6.0), объемом до нескольких десятков тысяч строк исходного текста (компиляторов, экспертных систем, систем расчета непотопляемости судов, для ВМФ, и др.), используя, по современным понятиям, более чем скромную конфигурацию оборудования - IBM PC с 640 килобайтами памяти под управлением MS DOS. Для размещения в памяти попеременно больших исполняемых модулей использовалась оверлейная структура (overlay). Ограничение в 640 килобайт (максимальный размер исполняемой программы в MS DOS) накладывало весьма серьезные ограничения на размер единицы компиляции, даже если фактически память компьютера имела больший объем, например, 2 МБ. Вследствие ограниченного объема памяти приходилось искусственно разбивать модули (units) на части. Тем не менее, комфортные интегрированные Турбо-среды были для нас просто бальзамом после неуклюжей поддержки основных инструментов на традиционных mainframe-компьютерах, на которых приходилось работать в режиме командной строки. Производительность работы программистов возросла в Турбо-средах просто фантастически, в десятки раз. "И уйду на PC, и утешусь на Турбо-Паскале" - пели мы в нашем программистском фольклоре тех лет.