Введение

Интегрированная среда разработки (IDE) — это программное приложение, предоставляющее комплексные средства для разработки программного обеспечения. IDE обычно включает в себя как минимум редактор исходного кода, инструменты автоматизации сборки и отладчик. Некоторые IDE, такие как IntelliJ IDEA, Eclipse и Lazarus, содержат необходимый компилятор, интерпретатор или и то, и другое; другие, такие как SharpDevelop и NetBeans, — нет. Граница между IDE и другими компонентами более широкой среды разработки программного обеспечения нечеткая; иногда в них интегрируются система контроля версий или различные инструменты для упрощения создания графического пользовательского интерфейса (GUI). Многие современные IDE также оснащены обозревателем классов, обозревателем объектов и диаграммой иерархии классов для использования в объектно-ориентированной разработке программного обеспечения.

Обзор

Интегрированные среды разработки (IDE) созданы для максимального повышения производительности программистов, предоставляя тесно связанные компоненты с унифицированным пользовательским интерфейсом. IDE представляют собой единую программу, в которой осуществляется вся разработка. Эта программа обычно включает в себя множество функций для написания, изменения, компиляции, развертывания и отладки программного обеспечения. Это отличается от разработки программного обеспечения с использованием отдельных инструментов, таких как vi, GDB, GNU Compiler Collection или make. Одна из задач IDE – сократить объем конфигурации, необходимой для объединения нескольких инструментов разработки. Вместо этого она предоставляет тот же набор возможностей как единое целое. Уменьшение времени на настройку может повысить производительность разработчиков, особенно если освоение IDE происходит быстрее, чем ручная интеграция и изучение отдельных инструментов. Более тесная интеграция всех задач разработки способна повысить общую производительность, а не только упростить настройку. Например, код может непрерывно анализироваться в процессе редактирования, обеспечивая мгновенную обратную связь при обнаружении синтаксических ошибок, что позволяет разработчикам быстрее и проще отлаживать код в IDE. Некоторые IDE специализированы для конкретного языка программирования, предлагая набор функций, наиболее точно соответствующий парадигмам этого языка. Однако существует множество многоязычных IDE. Хотя большинство современных IDE имеют графический интерфейс, текстовые IDE, такие как Turbo Pascal, широко использовались до появления оконных систем, таких как Microsoft Windows и X Window System (X11). Они обычно используют функциональные клавиши или горячие клавиши для выполнения часто используемых команд или макросов.

История

Изначально интегрированные среды разработки (IDE) стали возможны при разработке через консоль или терминал. Ранние системы не могли их поддерживать, поскольку программы передавались компилятору или ассемблеру через перфокарты, бумажные ленты и т. п. Dartmouth BASIC был первым языком программирования, созданным с использованием IDE (и также первым, разработанным для работы непосредственно перед консолью или терминалом). Его IDE (входящая в состав системы совместного использования времени Дартмута) была командной строкой, и поэтому мало походила на управляемые меню графические IDE, ставшие популярными после появления графического пользовательского интерфейса. Однако она объединяла редактирование, управление файлами, компиляцию, отладку и выполнение, что соответствовало принципам современной IDE. Maestro I – продукт компании Softlab Munich и первая в мире интегрированная среда разработки программного обеспечения. Maestro I была установлена на 22 000 рабочих местах программистов по всему миру. До 1989 года 6 000 установок существовало в Федеративной Республике Германия. Maestro, вероятно, была мировым лидером в этой области в 1970-х и 1980-х годах. Сегодня один из последних экземпляров Maestro I можно найти в Музее информационных технологий в Арлингтоне, штат Техас. Softbench была одной из первых IDE с концепцией подключаемых модулей (плагинов). В 1995 году Computerwoche отметила, что использование IDE не встретило положительного отклика у разработчиков, поскольку оно, по их мнению, ограничивало их творческий потенциал. По состоянию на 2023 год наиболее часто запрашиваемыми в Google IDE являются Visual Studio, Visual Studio Code и Eclipse.

Выделение синтаксиса

Редактор IDE обычно предоставляет подсветку синтаксиса и может отображать структуры, ключевые слова языка и синтаксические ошибки с помощью визуально различающихся цветов и эффектов шрифта.

Контроль версий

Ожидается, что IDE будет предоставлять интегрированный контроль версий для работы с репозиториями исходного кода.

Поиск кода

IDEs могут предоставлять поддержку поиска по коду. Поиск по коду имеет два различных значения. Во-первых, это поиск объявлений классов и функций, мест их использования, операций чтения/записи переменных и полей и т.д. IDE могут использовать различные типы пользовательского интерфейса для поиска по коду, например, виджеты на основе форм и интерфейсы, основанные на естественном языке. Во-вторых, это поиск конкретной реализации определенной функциональности.

Визуальное программирование

Визуальное программирование – это сценарий использования, при котором обычно требуется IDE. Visual Basic позволяет пользователям создавать новые приложения, перетаскивая элементы программирования, строительные блоки или узлы кода для создания блок-схем или структурных диаграмм, которые затем компилируются или интерпретируются. Эти блок-схемы часто основаны на Унифицированном языке моделирования. Этот интерфейс получил распространение благодаря системе Lego Mindstorms и активно изучается рядом компаний, стремящихся использовать возможности пользовательских браузеров, таких как те, что представлены в Mozilla. KTechlab поддерживает визуальный код и является популярной IDE с открытым исходным кодом и симулятором для разработки программного обеспечения для микроконтроллеров. Визуальное программирование также обеспечивает возможности распределенного программирования (например, программное обеспечение LabVIEW и EICASLAB). Ранняя система визуального программирования Max была создана по образцу аналогового синтезатора и с 1980-х годов используется для разработки программного обеспечения для музыкальных выступлений в реальном времени. Другим ранним примером была Prograph – система, основанная на потоке данных, изначально разработанная для Macintosh. Графическая среда программирования "Grape" используется для программирования комплектов роботов qfix. Этот подход также применяется в специализированном программном обеспечении, таком как Openlab, где конечные пользователи хотят иметь гибкость полноценного языка программирования, избегая при этом традиционного порога вхождения, связанного с его изучением.

Языковая поддержка

Некоторые IDE поддерживают несколько языков программирования, таких как GNU Emacs, IntelliJ IDEA, Eclipse, MyEclipse, NetBeans, MonoDevelop или PlayCode. Поддержка дополнительных языков часто реализуется через плагины, которые можно устанавливать в одну и ту же IDE одновременно. Например, Flycheck — это современное расширение для проверки синтаксиса в реальном времени для GNU Emacs 24, поддерживающее 39 языков. Другой пример — JDoodle, онлайн-IDE, работающая в облаке и поддерживающая более 76 языков. Eclipse и NetBeans предлагают плагины для C/C++, Ada, GNAT (например, AdaGIDE), Perl, Python, Ruby и PHP, выбор между которыми осуществляется автоматически на основе расширения файла, окружения или настроек проекта.

Онлайн

Онлайн-интегрированная среда разработки, также известная как веб-IDE или облачная IDE, — это среда разработки, работающая в браузере и предназначенная для разработки программного обеспечения или веб-приложений. К онлайн-IDE можно получить доступ через веб-браузер, что обеспечивает переносимую рабочую среду. Онлайн-IDE обычно не обладает полным набором функций традиционной или настольной IDE, хотя основные функции, такие как подсветка синтаксиса, как правило, присутствуют. Мобильная интегрированная среда разработки (IDE) — это программное приложение, предоставляющее полный набор инструментов для разработки программного обеспечения на мобильных платформах. В отличие от традиционных настольных IDE, мобильные IDE разработаны для работы на смартфонах и планшетах, позволяя разработчикам писать, отлаживать и развертывать код непосредственно с мобильных устройств.