Интегрированная среда разработки ( IDE ) — это программное приложение , которое предоставляет комплексные возможности для разработки программного обеспечения . IDE обычно состоит как минимум из редактора исходного кода , инструментов автоматизации сборки и отладчика . Некоторые IDE, такие как IntelliJ IDEA , Eclipse и Lazarus, содержат необходимый компилятор , интерпретатор или и то, и другое; другие, такие как SharpDevelop и NetBeans , этого не делают.
Граница между IDE и другими частями более широкой среды разработки программного обеспечения не является четко определенной; иногда интегрируются система контроля версий или различные инструменты для упрощения построения графического пользовательского интерфейса (GUI). Многие современные 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 (часть системы разделения времени Dartmouth ) была основана на командах и поэтому не очень походила на управляемые меню графические IDE, популярные после появления графического пользовательского интерфейса . Однако он интегрировал редактирование, управление файлами, компиляцию, отладку и выполнение способом, соответствующим современной IDE.
Maestro I — продукт компании Softlab Munich, первая в мире интегрированная среда разработки [1] программного обеспечения. Maestro I была установлена у 22 000 программистов по всему миру. До 1989 года в Федеративной Республике Германии существовало 6 000 установок . Maestro, возможно, был мировым лидером в этой области в 1970–1980-х годах. Сегодня один из последних Maestro I можно найти в Музее информационных технологий в Арлингтоне, штат Техас.
Одной из первых IDE с концепцией плагина была Softbench . В 1995 году Computerwoche отметил, что использование IDE не было хорошо воспринято разработчиками, поскольку это ограничило бы их креативность.
По состоянию на август 2023 года [update]наиболее часто искомыми IDE в Google Поиске были Visual Studio , Visual Studio Code и Eclipse . [2]
Редактор IDE обычно обеспечивает подсветку синтаксиса , он может отображать как структуры, ключевые слова языка, так и синтаксические ошибки с помощью визуально различимых цветов и эффектов шрифта. [3]
Автодополнение кода — важная функция IDE, призванная ускорить программирование. Современные IDE даже имеют интеллектуальное автодополнение кода .
Автодополнение кода — это функция автодополнения во многих интегрированных средах разработки (IDE), которая ускоряет процесс кодирования приложений, исправляя распространенные ошибки и предлагая строки кода. Обычно это происходит с помощью всплывающих окон при наборе текста, запроса параметров функций и подсказок запросов, связанных с синтаксическими ошибками. Современное программное обеспечение для автодополнения кода обычно использует генеративные системы искусственного интеллекта для прогнозирования строк кода. Автодополнение кода и связанные с ним инструменты служат для документирования и устранения неоднозначности для имен переменных , функций и методов с использованием статического анализа . [4] [5]
Эта функция присутствует во многих средах программирования. [6] [7] Реализации включают IntelliSense в Visual Studio Code . Термин изначально был популярен как «список выбора», и некоторые реализации до сих пор называют его так. [8]Расширенные IDE обеспечивают поддержку автоматизированного рефакторинга . [3]
Ожидается, что IDE обеспечит интегрированный контроль версий для взаимодействия с исходными репозиториями. [3]
IDE также используются для отладки, используя интегрированный отладчик , с поддержкой установки точек останова в редакторе, визуального рендеринга шагов и т. д. [9]
IDE могут предоставлять поддержку для поиска кода. Поиск кода имеет два разных значения. Во-первых, это поиск объявлений классов и функций, использований, чтения/записи переменных и полей и т. д. IDE могут использовать различные виды пользовательского интерфейса для поиска кода, например, виджеты на основе форм [10] и интерфейсы на основе естественного языка. Во-вторых, это поиск конкретной реализации некоторой указанной функциональности. [11]
Визуальное программирование — это сценарий использования, в котором обычно требуется IDE. Visual Basic позволяет пользователям создавать новые приложения, перемещая программирование, строительные блоки или узлы кода для создания блок-схем или структурных диаграмм, которые затем компилируются или интерпретируются. Эти блок-схемы часто основаны на Unified Modeling Language .
Этот интерфейс был популяризирован с помощью системы Lego Mindstorms и активно просматривается рядом компаний, желающих извлечь выгоду из мощи пользовательских браузеров, таких как те, что есть в Mozilla . KTechlab поддерживает flowcode и является популярной IDE с открытым исходным кодом и симулятором для разработки программного обеспечения для микроконтроллеров. Визуальное программирование также отвечает за мощь распределенного программирования (ср. программное обеспечение LabVIEW и EICASLAB). Ранняя система визуального программирования, Max , была смоделирована по образцу конструкции аналогового синтезатора и использовалась для разработки программного обеспечения для исполнения музыки в реальном времени с 1980-х годов. Другим ранним примером был Prograph , система на основе потока данных , изначально разработанная для Macintosh . Графическая среда программирования «Grape» используется для программирования наборов роботов qfix .
Этот подход также используется в специализированном программном обеспечении, таком как Openlab, где конечным пользователям нужна гибкость полноценного языка программирования без традиционной кривой обучения, связанной с ним.
Некоторые IDE поддерживают несколько языков, например GNU Emacs , IntelliJ IDEA , Eclipse , MyEclipse , NetBeans , MonoDevelop , JDoodle или PlayCode.
Поддержка альтернативных языков часто обеспечивается плагинами , что позволяет устанавливать их в одной и той же IDE одновременно. Например, Flycheck — это современное расширение для проверки синтаксиса «на лету» для GNU Emacs 24 с поддержкой 39 языков. [12] Другим примером является JDoodle, онлайновая облачная IDE, поддерживающая 88 языков. [1] Eclipse и Netbeans имеют плагины для C / C++ , Ada , GNAT (например, AdaGIDE), Perl , Python , Ruby и PHP , которые выбираются автоматически на основе расширения файла, настроек среды или проекта.
IDE могут быть реализованы на разных языках, например:
Программисты Unix могут объединять инструменты командной строки POSIX в полноценную среду разработки, способную разрабатывать большие программы, такие как ядро Linux и его окружение. [13] В этом смысле вся система Unix функционирует как IDE. [14] Свободный программный инструментарий GNU (включая GNU Compiler Collection (GCC), GNU Debugger (GDB) и GNU make ) доступен на многих платформах, включая Windows. [15] Всепроникающая философия Unix «все есть текстовый поток» позволяет разработчикам, которые предпочитают ориентированные на командную строку инструменты, использовать редакторы с поддержкой многих стандартных инструментов сборки Unix и GNU, создавая IDE с такими программами, как Emacs [16] [17] [18] или Vim . Отладчик Data Display Debugger предназначен для использования в качестве расширенного графического интерфейса для многих стандартных инструментов текстового отладчика . Некоторые программисты предпочитают управлять make-файлами и их производными, а не аналогичными инструментами сборки кода, включенными в полную IDE. Например, большинство участников базы данных PostgreSQL используют make и GDB напрямую для разработки новых функций. [19] Даже при сборке PostgreSQL для Microsoft Windows с использованием Visual C++ скрипты Perl используются в качестве замены make , а не полагаются на какие-либо функции IDE. [20] Некоторые IDE для Linux, такие как Geany, пытаются предоставить графический интерфейс для традиционных операций сборки.
На различных платформах Microsoft Windows инструменты командной строки для разработки используются редко. Соответственно, существует множество коммерческих и некоммерческих продуктов. Однако каждый из них имеет свой дизайн, что обычно приводит к несовместимости. Большинство основных поставщиков компиляторов для Windows по-прежнему предоставляют бесплатные копии своих инструментов командной строки, включая Microsoft ( Visual C++ , Platform SDK , .NET Framework SDK, утилита nmake ).
IDE всегда были популярны на классических Mac OS и macOS от Apple Macintosh , начиная с Macintosh Programmer's Workshop , Turbo Pascal , THINK Pascal и THINK C сред середины 1980-х годов. В настоящее время программисты macOS могут выбирать между собственными IDE, такими как Xcode , и инструментами с открытым исходным кодом, такими как Eclipse и Netbeans . ActiveState Komodo — это фирменная многоязычная IDE, поддерживаемая в macOS.
Онлайновая интегрированная среда разработки , также известная как веб-IDE или облачная IDE, представляет собой IDE на основе браузера , которая позволяет разрабатывать программное обеспечение или веб-разработку. [21] Онлайновая IDE может быть доступна из веб-браузера, что позволяет использовать портативную рабочую среду. Онлайновая IDE обычно не содержит всех тех же функций, что и традиционная или настольная IDE, хотя все основные функции IDE, такие как подсветка синтаксиса, обычно присутствуют.
Интегрированная среда разработки (IDE) на базе мобильных устройств — это программное приложение, которое предоставляет комплексный набор инструментов для разработки программного обеспечения на мобильных платформах. В отличие от традиционных IDE для настольных компьютеров, IDE на базе мобильных устройств предназначены для работы на смартфонах и планшетах, позволяя разработчикам писать, отлаживать и развертывать код непосредственно со своих мобильных устройств.