Моноязыковые и многоязыковые интегрированные среды

Первоначально интегрированные среды разрабатывались для программирования на каком-либо одном исходном языке/ Например, среда Турбо-Паскаль - для программирования на расширении языка Паскаль фирмы Borland.

Однако постепенно проявилась тенденция к превращению таких моноязыковых интегрированных сред в многоязыковые, поскольку для разработки проектов на различных языках используются сходные принципы и механизмы и, кроме того, иногда удобно использовать в большим проекте фрагменты программы, написанные на разных языках. Например, хотелось бы использовать готовый унаследованный код (legacy code), написанный на более раннем языке (например, Си), чтобы не переписывать его заново, например, на C#, с единственной целью включения в проект.

Например, широко известная интегрированная среда NetBeans первоначально создавалась как студенческий проект Карлова университета в Праге для программирования на языке Java. В настоящее время среда NetBeans развилась в мощную многоязыковую интегрированную среду, в которой реализована компонента C / C++ development pack, обеспечивающий поддержку разработки проектов на языках C и C++.

Отметим, что среда Visual Studio.NET с самого начала создавалась как многоязыковая среда. Это принципиальная установка фирмы Microsoft - дать возможность разработчикам выбрать наиболее удобный язык (или языки) для соответствующих частей разработанного проекта, а затем собрать проект из бинарных компонент (сборок - assemblies), полученных путем компиляции с соответствующих язяков в единый бинарныйпромежуточный код CIL. Ниже мы еще на раз рассмотрим подробнее эту удобную особенность Visual Studio и поддерживаемый ею набор языков.

Резюме

Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы.

Первыми интегрированными средами стали Турбо-среды фирмы Borland, GNU Emacs, среда программирования на языке Smalltalk. Интегрированные среды существенно повысили производительность программистов и обеспечили удобство разработки.

К числу возможностей современных интегрированных сред относятся: текстовый редактор (включая code completion - автоматическое завершение кода), система сборки бинарных кодов их исходных кодов, отладчик, профайлер, генератор unit-тестов, инструменты поддерждки коллективной разработки, инструменты связи с системой управления версиями, обфускатор, средства создания различных видов проектов и их визуализации, средства расширения функциональности и видов проектов (plug-ins); инструменты моделирования архитектуры проектов на языке UML.

Интегрированные среды могут быть моноязыковыми и многоязыковыми. Среда Visual Studio изначально является многоязыковой, а с версии 7 поддерживает платформу Microsoft.NET.

Ключевые термины

Генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструментNUnit в среде Visual Studio
Инструменты поддержки коллективной разработки программ (teamwork) - инструменты поддержки этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др.
Набор инструментов (toolkit, toolbox) - группа инструментов разработки программ, родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и вызываемых в командном режиме
Рефакторинг (refactoring) - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try-catch - блока для обработки ранее не учтенного исключения и т.п.
Система поддержки сборки (build) - инструментарий для компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка икомпоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, поставляемый вместо с ОС, либо специфичный для данной среды
Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) - интегрированные среды фирмы Borland для поддержки программирования на конкретных языках, реализованные сначала для операционной системы MS DOS, затем - для Windows
GNU Emacs - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux