Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Интегрированные среды разработки программ

Содержание:

Введение

Интегрированная среда разработки, ИСР (англ. IDE, Integrated Development Environment или Integrated Debugging Environment) — система программных средств, используемая программистами для разработки программного обеспечения (ПО).

Обычно среда разработки включает в себя:

  • текстовый редактор;
  • компилятор и / или интерпретатор;
  • средства автоматизации сборки;
  • отладчик.

Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. Хотя и существуют ИСР, предназначенные для нескольких языков программирования — такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, но обычно ИСР предназначается для одного определённого языка программирования - как, например, Visual Basic, PureBasic, Delphi, Dev-C++.

Частный случай ИСР, их эволюционное развитие — среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.

2. Постановка задачи

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

История создание интегрированных сред разработки.

Первые ИСР были созданы для работы через консоль или терминал, которые сами по себе были новинкой: до того программы создавались на бумаге, вводились в машину с помощью предварительно подготовленных бумажных носителей (перфокарт, перфолент) и т. д.

Dartmouth BASIC был первым языком, который был создан с ИСР, и был также первым, который был разработан для использования в консоли или терминале. Эта ИСР (часть Dartmouth Time Sharing System) управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических ИСР, распространённых в XXI веке. Однако она позволяла править исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным ИСР.

Maestro I — продукт от Softlab Munich, был первой в мире интегрированной средой разработки для программного обеспечения в 1975 г.[2] и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов. Он был установлен у 22000 программистов во всем мире. До 1989 года 6000 копий было установлено в Федеративной Республике Германия. Ныне Maestro I принадлежит истории и может быть найден разве что в Музее Информационной технологии в Арлингтоне.

Одной из первых ИСР с возможностью подключения плагинов была Softbench.

Причины создания ИСР и общее описание.

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

Обычно IDE ориентирована на определенный язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования. Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode.

IDE обычно представляет из себя единственную программу, в которой проводилась вся разработка. Она обычно содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель среды разработки заключается в том, чтобы абстрагировать конфигурацию, необходимую, чтобы объединить утилиты командной строки в одном модуле, который позволит уменьшить время, чтобы изучить язык, и повысить производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE являются графическими, они использовались еще до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для *nix-систем).Они были основаны на тексте, используя функциональные клавиши или горячие клавиши, чтобы выполнить различные задачи (например, Turbo Pascal). Использование IDE для разработки программного обеспечения является прямой противоположностью способа, в котором используются несвязанные инструменты, такие как vi (текстовый редактор), GCC (компилятор), и т.п.

Интегрированные среды разработки также часто поддерживают пометки в комментариях в исходном тексте программ, отмечающие места, требующие дальнейшего внимания или предполагающие внесение изменений, такие как TODO. В дальнейшем эти пометки могут выделяться редакторами (напр. vim, emacs, встроенный редактор Visual Studio) или использоваться для организации совместной работы с построением тегов и задач (например, в IntelliJ). Использование комментариев с TODO так же является стандартом оформления кода на Object Pascal, Delphi. Microsoft в руководстве по Visual Studio рекомендует использовать тег TODO (наравне с HACK, UNDONE) для следующих пометок:

  • добавление новых функций;
  • известных проблем, которые нужно устранить;
  • предполагаемых к реализации классов;
  • мест размещения кода обработчиков ошибок;
  • напоминаний о необходимости переработки участка кода.

Обычно интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами (программным отладчиком-симулятором, внутрисхемным эмулятором, эмулятором ПЗУ и программатором).

Строго говоря, интегрированные среды разработки не относятся к числу средств отладки. Отладка – лишь одно из свойств интегрированных сред, которые представляют собой основу любой визуальной среды разработки или RAD-среды.

При традиционном подходе, начальный этап написания программы строится следующим образом:

  1. Исходный текст набирается при помощи какого-либо текстового редактора.
  2. По завершении набора, работа с текстовым редактором прекращается и запускается кросс компилятор.
  3. Как правило, вновь написанная программа содержит синтаксические ошибки, и компилятор сообщает о них на консоль оператора.
  4. Вновь запускается текстовый редактор, и оператор должен найти и устранить выявленные ошибки, при этом сообщения о характере ошибок выведенные компилятором уже не видны, так как экран занят текстовым редактором.

И этот цикл может повторяться не один раз. Если программа имеет большой объем, собирается из различных частей, и подвергается длительному редактированию или модернизации, то даже этот начальный этап может потребовать много сил и времени. После этого наступает этап отладки программы и к редактору с компилятором добавляется эмулятор или симулятор, за работой которого хотелось бы следить прямо по тексту программы в текстовом редакторе.

Интегрированные среды (оболочки) разработки (Integrated Development Environment, IDE) позволяют избежать большого объема однообразных действий и тем самым существенно повысить эффективность процесса разработки и отладки позволяют, то есть они являются RAD-средами различной степени автоматизации процесса программирования.

Работа в интегрированной среде дает программисту:

  • Возможность использования встроенного многофайлового текстового редактора, специально ориентированного на работу с исходными текстами программ;
  • Иметь автоматическую диагностику выявленных при компиляции ошибок, когда исходный текст программы, доступный редактированию, выводится одновременно с диагностикой в многооконном режиме;
  • Возможность параллельной работы над несколькими проектами. Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого проекта;
  • Минимум перекомпиляции. Ей подвергаются только редактировавшиеся модули;
  • Возможность загрузки отлаживаемой программы в имеющиеся средства отладки, и возможность работы с ними без выхода из оболочки;
  • Возможность подключения к оболочке практически любых программных средств.

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

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

Так же существуют и облачные IDE.

Облачные технологии (или облачные вычисления, cloud computing) – технологии распределенной обработки цифровых данных, с помощью которых компьютерные ресурсы предоставляются интернет-пользователю как онлайн-сервис. Программы запускаются и выдают результаты работы в окне web-браузера на локальном ПК. При этом все необходимые для работы приложения и их данные находятся на удаленном интернет-сервере и временно кэшируются на клиентской стороне: на ПК, игровых приставках, ноутбуках, смартфонах… Преимущество технологии в том, что пользователь имеет доступ к собственным данным, но не должен заботиться об инфраструктуре, операционной системе и программном обеспечении, с которым он работает. Слово «облако» – это метафора, олицетворяющая сложную инфраструктуру, скрывающую за собой все технические детали. Технологии облачных вычислений нацелены на решение следующих задач:

1. Удобная работа с файлами на нескольких гаджетах: их редактирование и обработка без переноса с одного устройства на другое, без необходимости заботиться о совместимости программного обеспечения.

2. Решение проблемы ограниченного объема жесткого диска компьютера или флеш-карты.

3. Вопрос лицензированного программного обеспечения.

4. Возможность одновременной работы над одним документом нескольким людям.

Множество десктопных приложений давно переместились в «облако», включая и IDE. Быстро растет популярность удобных и доступных облачных сред для веб-разработки.

  1. Примеры интегрированных сред разработки.
  2. Eclipse

Является бесплатной программной платформой с открытым исходным кодом, контролируется организацией Eclipse Foundation. Написана на языке программирования Java и основной целью её создания является повышение продуктивности процесса разработки программного обеспечения.

Претендует на статус наиболее популярной Java IDE и является единственным конкурентом такой мощной платформы как NetBeans.

Но в отличие от NetBeans который для создания элементов пользовательского интерфейса использует платформо-независимую библиотеку Swing, в Eclipse используется платформо-зависимая библиотека SWT - Standard Widget Toolkit.

IDE разработанные на базе платформы Eclipse применяются для создания программного обеспечения на различных языках программирования, так как Eclipse является платформой для разработки любых интегрированных сред программирования и расширений для себя же, по принципу "Плагины для Eclipse разрабатываются в самой Eclipse".

Особенности платформы Eclipse

Кроссплатформенность - работает под операционными системами Windows, Linux, Solaris и Mac OS X.

Используя Eclipse можно программировать на множестве языков, таких как Java, C и C++, PHP, Perl, Python, Cobol и других.

Является фреймворком для разработки других инструментов и предлагает обширный набор API для создания модулей.

Используя подход RCP (Rich Client Platform) Eclipse является инструментом для создания практически любого клиентского программного обеспечения.

Работа над проектом Eclipse ведётся в нескольких направлениях, основные три - работа над платформой Eclipse, разработка Java IDE, разработка плагинов для расширения функциональности Eclipse.

Гибкость и расширяемость достигается благодаря модульности платформы.

Архитектура платформы Eclipse.

Основным элементом является исполняющая среда - Eclipse Runtime, в которой выполняются коды расширений и модулей. Она обеспечивает всю базовую функциональность платформы - управление расширениями и обновлениями, взаимодействие с операционной системой, обеспечение работы системы помощи.

Следующим элементом является собственно IDE - она отвечает за управление основными элементами программы, их расположением и настройками, управление проектами, отладку и сборку проектов, поиск по файлам и командную разработку.

NetBeans

NetBeans IDE - бесплатная интегрированная среда разработки с открытым исходным кодом для разработчиков программного обеспечения. Среда предоставляет все средства, необходимые для создания профессиональных десктоп приложений, корпоративных, мобильных и веб-приложений на платформе Java, а также C/C++, PHP, JavaScript, Groovy и Ruby.

Основные характеристики IDE:

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

IDE имеет в своем составе расширенный многоязыковой редактор для различных языков программирования - Java, C/C++, Ruby, Groovy, PHP, JavaScript, CSS, XML, HTML, RHTML, JSP, документацию Javadoc. Существует возможность расширения функций редактора с целью поддержки любого другого языка.

Редактор NetBeans делает отступы строк, проверяет соответствие скобок и слов, подсвечивает синтаксис исходного кода.

Производится проверка ошибок во время ввода, отображение вариантов для автозавершения кода и фрагментов документации по требуемому языку программирования.

Редактор может генерировать и вставлять в исходный код стандартные фрагменты кода на Java или других языках.

Браузер классов позволяет просматривать иерархию и структуру любого класса Java - отображаются интерфейсы, базовые классы, производные классы и члены классов.

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

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

Расширенные средства для выполнения контекстно-зависимого поиска по всей среде IDE, справочным материалам и всем открытым проектам и файлам.

Существует возможность создания проектов в свободном формате или начинать работу с проектом с шаблона. В комплекте со средой IDE поставляются шаблоны и примеры проектов для приложений Java SE, мобильных, веб-приложений и приложений уровня предприятия, приложений JavaFX, подключаемых модулей NetBeans, приложений Groovy, PHP, C/C++, Ruby и Ruby on Rails.

NetBeans IDE является платформой для построения десктоп приложений с функциональным пользовательским интерфейсом, т.к. представляет из себя фреймворк к Java библиотеке Swing.

NetBeans имеет встроенную поддержку CVS, Mercurial и Subversion. Для просмотра изменений используется редактор с цветовыми обозначениями.

Возможности программирования в NetBeans:

Разработка Java десктоп приложений с профессиональными графическими интерфейсами пользователя. Используется визуальный редактор - Swing GUI Builder. Работа осуществляется путем перетаскивания элементов графического интерфейса из палитры на холст. Предварительное позиционирование элементов можно осуществлять с помощью указателя мыши. Панель свойств и инспектор компонентов предоставляют возможность тонкой настройки каждого компонента интерфейса.

Создание веб-приложений и корпоративных приложений в соответствии со стандартами. Среда NetBeans предоставляет полную поддержку Java EE 6. Позволяет разрабатывать веб-страницы, сервлеты, веб-сервисы, Enterprise Java Beans (EJB), проекты Java EE с использованием JavaServer Faces 2.0 (Facelets), Spring, Struts и Hibernate.

Программирование на PHP, поддержка всех сопутствующих языков программирования, технологий и веб-стандартов. Возможность создавать проекты PHP на основе платформы Zend или Symfony. Редактор PHP динамически интегрирован с функциями редактирования HTML, JavaScript и CSS. Проекты PHP могут быть развёрнуты из среды NetBeans на локальном или удаленном сервере при взаимодействии через FTP или SFTP.

Возможность создания, тестирования, отладки и внедрения приложений, функционирующих на мобильных телефонах, карманных компьютерах, телеприставках и встраиваемых системах. Visual Mobile Designer (VMD) создает всю необходимую модульную инфраструктуру проекта и обеспечивает быструю разработку графических интерфейсов путём перетаскивания в рабочую область компонентов - экран ожидания, экран входа в систему, обозреватель файлов, средство составления сообщений SMS и экран заставки. Возможность создания пользовательского интерфейса на основе SVG.

Использование JavaFX Composer для визуального структурирования приложения JavaFX с графическим интерфейсом, аналогично конструктору GUI Swing для Java десктоп приложений.

Возможность разработки профессиональных приложений на языках C, C++ для различных платформ - Windows, Linux, Mac и Solaris. Поддерживаются все широко используемые компиляторы - GNU, Cygwin и MinGW. Существует возможность установки требуемого компилятора, определений препроцессора, параметров времени компиляции и т.д.

Расширенные возможности по работе с базами данных - встроенный клиент к базам данных - MySQL, Postgres, Oracle и др., редактор запросов SQL, возможность редактировать таблицы баз данных напрямую через редактор таблиц.

  1. Geany:

Одна из самых легких и быстрых сред для веб-разработки. Geany обеспечивает удобную работу с HTML, XML, PHP и другими языками веб-программирования.

Базовые возможности:

  • поддержка и подсветка синтаксиса множества языков;
  • фолдинг (сворачивание блоков кода);
  • автодополнение и подсказки;
  • сниппеты;
  • удобная навигация;
  • управление проектом;
  • менеджер плагинов;
  • система обработки кода от компиляции до выполнения.

Преимущества:

  • Текстовый редактор Geany обладает большой производительность, быстро открывая большие текстовые файлы.
  • В Geany реализован "вкладочный" интерфейс, которые облегчает одновременную работу с несколькими файлами.
  • Реализована подсветка синтаксиса, которая непременно будет полезна разного рода программистам и вебмастерам.
  • В Geany отсутствуют проблемы с определением кодировки.
  • Программа обладает удобным "классификатором". К примеру, открывая CSS-файл, Geany сканирует его содержимое и в левой колонке отображает все используемые классы и идентификаторы. Этим самым очень сильно облегчая поиск и передвижение по CSS-файлу, делая работу вебмастера проще.
  • Можно сворачивать часть кода, что позволяет облегчить работу и визуально разгрузить большой файл с программным кодом.
  • Реализована возможность подсвечивать текущую строку, отображать нумерацию строк, а также возможность добавлять отступы.
  • Есть наглядный инструмент выбора цвета.
  • Легко настраиваемый внешний вид интерфейса редактора.
  • Базовый функционал программы можно расширить большим количеством модулей, которые можно найти на официальном сайте.
  • Geany можно установить во всех популярных ОС: Linux, Windows, MacOS.
  • Реализована удобная возможность авто-завершения html-тегов, закрытия открытых скобок и т.д.
  • В Geany есть встроенный эмулятор терминала и реализован простой менеджер проектов.

Light Table

Легковесная интегрированная среда разработки, написанная на ClojureScript с использованием node.js (точнее, node-webkit, в котором этот фреймворк объединён с Chromium, а начиная с версии 0.8 — electron). Разработана Крисом Грейнджером и Робертом Аттори.

В настоящее время IDE поддерживает разработку на Clojure, ClojureScript, JavaScript и Python, а также HTML и CSS. Для всех этих языков обеспечивается REPL, среда позволяет немедленно вычислять выражения и видеть результаты сделанных в коде изменений в режиме реального времени.

Отличительными особенностями новой среды программирования являются простота и минимализм интерфейса в сочетании с его отзывчивость. Так, помимо мгновенного показа результата вычислений, она выражается, к примеру, в отображении документации по функции при выделении мышью её названия.

Поддержка дополнительных языков программирования возможна с помощью плагинов.

Рис. 1 Сравнение интегрированных сред разработки.

6. Примеры облачных интегрированных сред разработки.

1.Cloud9

Cloud9 — интегрированная среда разработки, предоставляемая по модели облачных вычислений, запущенная 28 февраля 2011 года разработчиками текстового редактора Ace. Среда поддерживает несколько языков программирования, при этом, основной фокус направлен на JavaScript и HTML/CSS. Среда разработки полностью написана на JavaScript, и использует Node.js на серверной стороне. В качестве текстового редактора используется Ace, имеется интеграция с GitHub и Bitbucket. Имеется возможность развёртывать написанные приложения в Microsoft Azure.

Преимущества продукта:

  • Vim-режим;
  • удобный версионный контроль (Git, SVN);
  • встроенные инструменты для контроля качества CSS- и JavaScript-кода.

Codeanywhere

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

Редактор понимает синтаксис базовых языков веб-программирования (HTML, CSS, JavaScript, PHP, SQL) и ряда других. Интегрированный Dropbox и SFTP-клиент позволяют обмениваться файлами с другими разработчиками и осуществлять резервное копирование.

Eclipse Che

Многопользовательская система Eclipse Che объединяет в себе среды для разработки и выполнения кода. Система поиска и установки плагинов позволяет настроить инструмент в соответствии с потребностями программиста.

Благодаря архитектуре на основе плагинов Eclipse Che может выступать платформой для создания собственных специализированных web-ориентированных сред редактирования кода и встраивания элементов IDE в имеющиеся продукты. Уже доступны плагины, предоставляющие поддержку различных типов приложений (мобильные приложения, web-приложения, графические программы, консольные утилиты), языков программирования (С/C++, Go, Java, Python, Ruby, PHP, SQL), фреймворков (Angular JS, Docker, Yeoman), систем сборки (Ant, Bower, Grunt, Gulp, Maven, Npm) и инструментариев (Code Mirror, Git, Orion, SSH, Subversion). Для расширения функциональности среды может применяться RESTful API, при помощи которого разработчики могут адаптировать IDE для новых типов проектов, добавить собственные команды и обеспечить интеграцию с любой инфраструктурой.

Центральным звеном Eclipse Che является Workspace Server, предоставляющий средства для создания рабочих пространств, доступных через RESTful API, который может быть использован для управления рабочим пространством из любой среды разработки. Базовый интерфейс написан с использованием web-технологий и может быть открыт в web-браузере. Дополнительные интерфейсы развиваются для мобильных устройств, терминала и рабочего стола. Также подготовлен плагин для классической среды Eclipse. При этом, так как рабочее окружение формируется на сервере, все клиентские интерфейсы получают доступ к единому окружению, отличается только представление данных. Все операции выполняются на сервере, включая редактирование и отладку.

Neutron Drive

Большинство сложных проектов применяют уже созданные и испытанные ранее решения. Так, облачная среда Neutron возникла на базе редактора кода Ace. Новая IDE имеет встроенный SFTP-клиент, что позволяет программисту легко изменять файлы на удаленном сервере и сразу же видеть внесенные изменения.

Интерфейс программы легко подстраивается под конкретного пользователя благодаря набору визуальных тем и настраиваемых горячих клавиш.

Orion

Orion – относительно молодой продукт, возникший на базе легендарной Eclipse Java IDE. Многолетний опыт мощного и проверенного инструмента был перенесен в облако, сохранив привычный интерфейс.

Основная сфера применения среды – разработка фронтенда, поэтому имеется хорошая поддержка HTML, CSS и JavaScript с различными надстройками.

На текущий момент работа над продуктом еще ведется: в скором времени можно ожидать появления новых функций и добавления других языков программирования.

Сравнение облачных сред разработки

Рис.2

Заключение.

Для изучения сред разработки было проведено теоретическое изучение и сравнение программ. Немаловажным аспектом понимания ИСР является изучение языков разработки. По итогам проведенной работы было возможно заключить, что на данный момент наиболее удобными и эффективными являются программы, требующие установки на компьютер, однако будущее их развития лежит в сфере облачных технологий.

Литература

  1. В.В.Корнеев, А.И.Киселев Современные микропроцессоры.- М.: НОЛИДЖ, 1998
  2. Официальный сайт Eclipse: https://www.eclipse.org/
  3. Ю.В.Новиков, О.А.Калашников, С.Э.Гуляев Разработка устройств сопряжения для персональных компьютеров типа IBM PC. Под общей редакцией Ю.В.Новикова. Практ. пособие. - М.: ЭКОМ., 1997
  4. Микропроцессорные ситемы и микроЭВМ в измерительной технике: Учеб. пособие для вузов/ А.Г.Филиппов, А.М.Аужбикович, В.М.Немчинов и др.- М.: Энергоатомиздат, 1995.
  5. Официальный сайт NetBeans: https://netbeans.org/
  6. Б.М.Каган, В.В.Сташин Основы проектирования микропроцессорых устройств автоматики.- М.: Энергоатомиздат, 1987
  7. Г.Науман,В.Майлинг, А.Щербина Стандартные интерфейсы для измерительной техники: пер. с нем.- М.: Мир,1982.
  8. Казаченко В.Ф. Микроконтроллеры: Руководство по применению 16-разрядных микроконтроллеров INTEL MCS-196/296 во встроенных системах управления. - М.: Издательство Эком, 1997
  9. Официальный сайт Geany https://www.geany.org/
  10. Кодить с комфортом: 16 лучших сред для веб-разработки // сетевой журнал Библиотека программиста https://proglib.io/
  11. Монахов В. Язык программирования Java и среда NetBeans. — СПб.: «БХВ Петербург», 2008. — С. 640.