Существующие ide для разработки. NetBeans IDE - универсальная интегрированная среда разработки приложений. Пометки в комментариях

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

Если Xcode — любимая среда разработки Apple , то Visual Studio — это среда разработки от Microsoft. Visual Studio в основном известна для написания приложений, включающих в себя.NET. Это полный набор инструментов, позволяющий произвести точную отладку и настройку приложения. Есть как Community-версия, так и PRO.

Visual Studio предназначена не только для разработчиков на C++, но также поддерживает многие другие популярные языки, такие как C#, Visual Basic и F#.

Visual Studio предлагает множество функций, некоторые из которых:

  • интеллектуальное автодополнение кода;
  • дизайнер графических форм (GUI);
  • простая в использовании навигационная система.

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

Подробнее можно узнать .

2 -Xcode

Xcode — это не просто интегрированная среда разработки, а полный набор инструментов для разработки программного обеспечения, созданных Apple для разработки программного обеспечения для MacOS, iOS, WatchOS и tvOS.

Xcode — лучшая IDE для Mac хотя бы потому, что она создана разработчиками операционной системы. Поэтому, если вы являетесь разработчиками под платформы Apple, эта среда для вас.

Функции Xcode:

  • создание приложений под все Apple платформы;
  • автодополнение кода;
  • удобная работа с GUI.

Подробнее можно узнать .

3 — NetBeans

Хотя NetBeans славится разработкой на Java, это также одна из лучших сред разработки на C++ как для Windows, так и для Mac с Linux.

У NetBeans также есть много готовых шаблонных проектов для C и C++, которые можно использовать в качестве основы для ваших приложений. NetBeans был написан с использованием Java, он также может быть использован для проектов PHP и HTML5. Идеально подходит для начинающих, но и опытные программисты часто используют его.

Плюсы NetBeans:

  • это ПО о открытым исходным кодом;
  • разработан и поддерживается компанией Oracle;
  • поддержка визуализированного создания GUI-имнтерфейсов;
  • поддержка Qt Toolkit;
  • поддержка удаленного развития;
  • легкая файловая навигация.

Подробнее можно узнать .

4 — Eclipse

Eclipse — еще одна простая в использовании и при этом мощная IDE для C и C++. Между Eclipse и NetBeans мало различий, но все же Eclipse является более быстрой средой разработки.

Плюсы Eclipse:

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

Подробнее можно узнать .

5 — CodeLite

CodeLite — это еще одна бесплатная и быстрая IDE для программирования на C и C ++. CodeLite также поддерживает разработку на PHP и JavaScript.

Функции CodeLite:

  • мультиплатформенная поддержка;
  • встроенная поддержка GCC/clang/VC++;
  • CodeLite обладает удивительно быстрым и мощным инструментом завершения кода из-за собственного анализатора;
  • поддержка профилирования, рефакторинга;
  • анализ статического кода и браузер классов.

Подробнее можно узнать .

6 — Qt Creator

Qt Creator — самая известная среда разработки для создания графических приложений. Если вы собираетесь создать хорошее приложение с графическим интерфейсом, Qt Creator станет для вас идеальным выбором.

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

Некоторые из функций Qt Creator:

  • простой и удобный конструктор GUI-форм;
  • кроссплатформенность;
  • поддержка отладки, компиляции, профилирования, автозаполнения кода и рефакторинга;
  • поддержка анализа статического кода;
  • быстрый компилятор Qt;
  • визуализация данных Qt;
  • Qt Quick 2D Renderer;
  • Qt WebView;
  • Qt Virtual Keyboard.

Подробнее можно узнать .

7 — Code::Blocks

Codeblocks — это еще одна свободная и открытая среда IDE для C и C++, написанная с использованием GNU C++. Главный плюс — кроссплатформенность программы. CodeBlocks также можно использовать для языков c и Fortran.

Некоторые из функций CodeBlocks:

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

Подробнее можно узнать .

8 — Dev-C++

Dev-C++ — это бесплатная интегрированная среда разработки с открытым исходным кодом, написанная в Delphi для Windows. Это легкая IDE, которой требуется всего на пару минут для установки. Это — лучшая среда разработки для новичков, в ней можно установить плагин для создания GUI-интрефейсов методом перетаскивания элементов.

Некоторые из возможностей Dev-C++:

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

Подробнее можно узнать .

9 — CLion

Это отличная среда разработки на C++, созданная известной компанией JetBrains. Она поставляется с некоторыми замечательными функциями, такими как «Smart Editor» , «Code Analysis», «Embedded Termina»l.

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

Возможности CLion:

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

Подробнее можно узнать .

10 — Geany

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

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

Сначала давайте разберемся что такое IDE? Согласно википедии IDE - это интегрированная среда разработки (англ. Integrated Development Environment) - система программных средств, используемая программистами для разработки программного обеспечения.

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

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

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

  • Поддержка различных языков
  • Автодополнение
  • Рефакторинг
  • Подсветка
  • Дебаггер
  • Интеграция SVN / Git
  • Проверка соблюдения стандартов
  • Компилятор
  • Переводчик
  • Управление и редактирование баз данных

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

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

Представьте их как легкие IDE. Быстрые, надежные и настраиваемые. Помните нашу аналогию с швейцарским армейским ножом раньше? Sublime Text 3, Coda 2 и Atom – отличные примеры таких IDE. Они не являются традиционными IDE, но при правильной настройке они прекрасно вписываются в поняти IDE.

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

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

По этим причинам мы решили немного смешать список и включить как полноценные, так и «облегченные» IDE, которые будут очень полезны веб разработчикам.

Давайте начнем наш тур по IDE для веб разработки с PhpStorm.

PhpStorm

PhpStorm – это коммерческая IDE от компании JetBrains, она может похвастаться внушительным набором полезных функций.

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

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

PhpStorm не только для разработки PHP (кстати, у него есть полная поддержка PHP 7). Он также имеет отличную поддержку HTML, JavaScript и CSS.

Веб-сайт: https://www.jetbrains.com/phpstorm/
Стоимость: бесплатная 30-дневная версия
Релиз: 2009
Регулярно обновляется: да
Поддерживаемые расширения: плагины
Написан на: Java

Sublime Text 3

Далее в нашем списке – Sublime Text 3, разработанный Джоном Скиннером. Спустя много лет многих лет он стал мощным и очень быстрым пользовательским редактором. Он также хорошо известен как чрезвычайно стабильный и может легко обрабатывать очень большие файлы.

Интересно, что Sublime Text 3 не видел крупного релиза уже несколько лет. Несмотря на то, что он регулярно обновляется, обновления в основном содержат исправления ошибок наряду с незначительными улучшениями и новыми функциями. Sublime Text 3 по-прежнему находится в стадии бета-тестирования, не смотря на то, что он был выпущен как бета-версия еще в 2013 году! И в настоящее время новостей о новом крупном выпуске нет.

Sublime Text 3 очень быстро запускается. Фактически, это происходит почти мгновенно. Он работает очень быстро, без задержек или сбоев, что обеспечивает чрезвычайно плавное и эффективное редактирование кода. Он довольно минималистский и имеет менеджер пакетов для установки надстроек (написанных на Python) без необходимости перезапуска.

Как упоминалось выше, он обрабатывает файлы больших размеров очень хорошо. Существует огромное количество мощных надстроек (называемых пакетами), которые делают Sublime Text очень гибким и универсальным.Сложно отрицать, что использование Sublime Text одно удовольствие.

Вы также можете найти большое количество руководств и видеоуроков по Sublime Text 3. Это доказывает, что Sublime Text 3 по-прежнему очень популярен и широко используется многими веб-разработчиками на повседневной основе, что свидетельствует о качестве этого фантастического маленького редактора.

Несмотря на то, что Sublime Text по-прежнему очень популярен, он может начать терять почву в течение следующих нескольких лет. Однако, если библиотека пакетов Sublime Text 3 продолжит свое процветание, то на отсутствие крупного выпуска можно закрыть глаза, в краткосрочной перспективе.

  • Веб-сайт: https://www.sublimetext.com/
  • Стоимость: 70$, присутствует бесплатная версия
  • Релиз: 2008
  • Регулярно обновляется: нет
  • Написан на: C ++, Python
  • Кросс-платформенная поддержка: да

Atom

Построенный командой GitHub, Atom – это новый парень среди популярных IDE в нашем обзоре. Выпущенный в 2014 году, это один из самых популярных редакторов на данный момент и имеет быстро растущее сообщество.

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

Atom также имеет огромную дополнительную библиотеку с более чем 6 000 пакетов .

Подобно Sublime Text, Atom полностью поддерживает проекты, а также индивидуальное редактирование файлов. Есть встроенная поддержка Git, что неудивительно, поскольку Atom разработала команда GitHub.

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

Многие пользователи жалуются на то, что при редактировании наблюдается медленная загрузка и неоднородная производительность, особенно при работе с большими файлами. Возможно это связанно с тем, что Atom создан на JavaScript, в то время как, Sublime Text разработан на C ++, который работает изначально быстрее. Только время покажет, смогут ли будущие версии Atom решить эти проблемы. Однако стоит помнить, что Atom относительно молодой и имеет достаточно времени, чтобы созреть.

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

  • Веб-сайт: https://atom.io/
  • Стоимость: 100% бесплатно
  • Релиз: 2014
  • Регулярные обновления: да
  • Поддерживаемые расширения: пакеты
  • Написан на: JavaScript
  • Кросс-платформенная поддержка: да

Coda 2

Coda был впервые выпущен в 2007 году, всего за год до Sublime Text. На протяжении многих лет он был очень сильным игроком, разделяя большую часть рынка веб-разработки с Sublime Text, на компьютерах Mac. Это главный недостаток Coda – даже спустя десять лет после первоначального выпуска, нет версии на Windows. Это единственный не кросс-платформенный редактор нашего обзора.

Редактор включает в себя встроенный терминал и клиент управления исходным кодом, а также FTP-клиент и встроенный редактор MySQL.

Несмотря на то, что Coda 2 регулярно обновляется, это, в основном, исправления ошибок и в течение многих лет не было выпусков новых версий.

Не ошибитесь, Coda 2 – очень хороший выбор. Возможно, он еще себя покажет, я все же определенно рекомендую проверить его, прежде чем принимать окончательное решение. Особенно, если вы пользователь macOS!

  • Веб-сайт:
  • Стоимость: 25$ (бесплатная пробная версия на 7 дней)
  • Релиз: 2007
  • Регулярно обновляется: да
  • Поддерживаемые расширения: плагины
  • Кросс-платформенная поддержка: нет

NetBeans

И разнообразные инструменты для упрощения конструирования графического интерфейса пользователя . Многие современные среды разработки также включают браузер классов , инспектор объектов и диаграмму иерархии классов - для использования при объектно-ориентированной разработке ПО. IDE обычно предназначены для нескольких языков программирования - такие как IntelliJ IDEA , NetBeans , Eclipse , Qt Creator , Geany , Embarcadero RAD Studio , Code::Blocks , Xcode или Microsoft Visual Studio , но есть и IDE для одного определённого языка программирования - как, например, Visual Basic , Delphi , Dev-C++ .

История

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

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

Пометки в комментариях

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

См. также

Напишите отзыв о статье "Интегрированная среда разработки"

Примечания

Отрывок, характеризующий Интегрированная среда разработки

«Ну что ж делать. Уж если нельзя без этого! Что ж делать! Значит, так надо», – сказал он себе и, поспешно раздевшись, лег в постель, счастливый и взволнованный, но без сомнений и нерешительностей.
«Надо, как ни странно, как ни невозможно это счастье, – надо сделать все для того, чтобы быть с ней мужем и женой», – сказал он себе.
Пьер еще за несколько дней перед этим назначил в пятницу день своего отъезда в Петербург. Когда он проснулся, в четверг, Савельич пришел к нему за приказаниями об укладке вещей в дорогу.
«Как в Петербург? Что такое Петербург? Кто в Петербурге? – невольно, хотя и про себя, спросил он. – Да, что то такое давно, давно, еще прежде, чем это случилось, я зачем то собирался ехать в Петербург, – вспомнил он. – Отчего же? я и поеду, может быть. Какой он добрый, внимательный, как все помнит! – подумал он, глядя на старое лицо Савельича. – И какая улыбка приятная!» – подумал он.
– Что ж, все не хочешь на волю, Савельич? – спросил Пьер.
– Зачем мне, ваше сиятельство, воля? При покойном графе, царство небесное, жили и при вас обиды не видим.
– Ну, а дети?
– И дети проживут, ваше сиятельство: за такими господами жить можно.
– Ну, а наследники мои? – сказал Пьер. – Вдруг я женюсь… Ведь может случиться, – прибавил он с невольной улыбкой.
– И осмеливаюсь доложить: хорошее дело, ваше сиятельство.
«Как он думает это легко, – подумал Пьер. – Он не знает, как это страшно, как опасно. Слишком рано или слишком поздно… Страшно!»
– Как же изволите приказать? Завтра изволите ехать? – спросил Савельич.
– Нет; я немножко отложу. Я тогда скажу. Ты меня извини за хлопоты, – сказал Пьер и, глядя на улыбку Савельича, подумал: «Как странно, однако, что он не знает, что теперь нет никакого Петербурга и что прежде всего надо, чтоб решилось то. Впрочем, он, верно, знает, но только притворяется. Поговорить с ним? Как он думает? – подумал Пьер. – Нет, после когда нибудь».
За завтраком Пьер сообщил княжне, что он был вчера у княжны Марьи и застал там, – можете себе представить кого? – Натали Ростову.
Княжна сделала вид, что она в этом известии не видит ничего более необыкновенного, как в том, что Пьер видел Анну Семеновну.
– Вы ее знаете? – спросил Пьер.
– Я видела княжну, – отвечала она. – Я слышала, что ее сватали за молодого Ростова. Это было бы очень хорошо для Ростовых; говорят, они совсем разорились.
– Нет, Ростову вы знаете?
– Слышала тогда только про эту историю. Очень жалко.
«Нет, она не понимает или притворяется, – подумал Пьер. – Лучше тоже не говорить ей».
Княжна также приготавливала провизию на дорогу Пьеру.
«Как они добры все, – думал Пьер, – что они теперь, когда уж наверное им это не может быть более интересно, занимаются всем этим. И все для меня; вот что удивительно».
В этот же день к Пьеру приехал полицеймейстер с предложением прислать доверенного в Грановитую палату для приема вещей, раздаваемых нынче владельцам.
«Вот и этот тоже, – думал Пьер, глядя в лицо полицеймейстера, – какой славный, красивый офицер и как добр! Теперь занимается такими пустяками. А еще говорят, что он не честен и пользуется. Какой вздор! А впрочем, отчего же ему и не пользоваться? Он так и воспитан. И все так делают. А такое приятное, доброе лицо, и улыбается, глядя на меня».
Пьер поехал обедать к княжне Марье.
Проезжая по улицам между пожарищами домов, он удивлялся красоте этих развалин. Печные трубы домов, отвалившиеся стены, живописно напоминая Рейн и Колизей, тянулись, скрывая друг друга, по обгорелым кварталам. Встречавшиеся извозчики и ездоки, плотники, рубившие срубы, торговки и лавочники, все с веселыми, сияющими лицами, взглядывали на Пьера и говорили как будто: «А, вот он! Посмотрим, что выйдет из этого».
При входе в дом княжны Марьи на Пьера нашло сомнение в справедливости того, что он был здесь вчера, виделся с Наташей и говорил с ней. «Может быть, это я выдумал. Может быть, я войду и никого не увижу». Но не успел он вступить в комнату, как уже во всем существе своем, по мгновенному лишению своей свободы, он почувствовал ее присутствие. Она была в том же черном платье с мягкими складками и так же причесана, как и вчера, но она была совсем другая. Если б она была такою вчера, когда он вошел в комнату, он бы не мог ни на мгновение не узнать ее.
Она была такою же, какою он знал ее почти ребенком и потом невестой князя Андрея. Веселый вопросительный блеск светился в ее глазах; на лице было ласковое и странно шаловливое выражение.
Пьер обедал и просидел бы весь вечер; но княжна Марья ехала ко всенощной, и Пьер уехал с ними вместе.
На другой день Пьер приехал рано, обедал и просидел весь вечер. Несмотря на то, что княжна Марья и Наташа были очевидно рады гостю; несмотря на то, что весь интерес жизни Пьера сосредоточивался теперь в этом доме, к вечеру они всё переговорили, и разговор переходил беспрестанно с одного ничтожного предмета на другой и часто прерывался. Пьер засиделся в этот вечер так поздно, что княжна Марья и Наташа переглядывались между собою, очевидно ожидая, скоро ли он уйдет. Пьер видел это и не мог уйти. Ему становилось тяжело, неловко, но он все сидел, потому что не мог подняться и уйти.
Княжна Марья, не предвидя этому конца, первая встала и, жалуясь на мигрень, стала прощаться.
– Так вы завтра едете в Петербург? – сказала ока.
– Нет, я не еду, – с удивлением и как будто обидясь, поспешно сказал Пьер. – Да нет, в Петербург? Завтра; только я не прощаюсь. Я заеду за комиссиями, – сказал он, стоя перед княжной Марьей, краснея и не уходя.

Важнейшим элементом в процессе разработки приложения является выбор правильной IDE, зависящий не только от платформы, но и уровня собственной подготовки. Давайте познакомимся с наиболее популярными из них методом «от противного», представляя не столько их преимущества, сколько наиболее часто встречаемые укоры со стороны разработчиков.

Начнём с официальных представителей лидеров мобильного рынка: Windows, Google и Apple.

Visual Studio 2015

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

Недостатки: новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

Android Studio

Описание: относительно молодая и стремительно развивающаяся IDE, ориентированная на разработчиков приложений для Android.

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

XCode

Описание: IDE, ориентированная на создание приложений для OS X и iOS. Для использования языков Objective C и Swift на сегодня это лучшее, а для некоторых задач и вовсе единственное решение.

Недостатки: многие разработчики жалуются на стабильность среды, вынуждающую вносить дополнительные изменения в свои проекты после выхода очередной версии. Кроме того, XCode относительно сложная IDE для самопознания новичком. Именно поэтому рекомендуем вам пройти наш . На нем мы рассмотрим тонкости работы с этой IDE.

От официальных представителей перейдём к универсальным кроссплатформенным средам разработки:

Xamarin Studio

Описание: популярный инструмент разработки приложений под Windows, Phone, Android и iOS, использующий по сути только один язык - C#. Помимо непосредственно Xamarin Studio вы также можете пользоваться плагином для Visual Studio.

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

IntelliJ IDEA

Описание: IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++.

Недостатки: производительность. Томительное ожидание выполнения компиляции, перекомпиляции, тестирования порой действительно раздражает.

Appcelerator Titanium

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

Недостатки: возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону: генерируемые ошибки в коде, искусственные ограничения, недостаточно качественная документация.

Eclipse

Описание: среда разработки, изначально ориентированная на работу с Java, прославилась большим количеством внешних модулей, существенно расширяющих её функциональность (в том числе, это касается количества поддерживаемых языков).

Недостатки: существенная нехватка документации, нет единого сообщества разработчиков.

Netbeans

Описание: мощная IDE для разработки приложений на Java, JavaScript, Python, PHP, C, C++ и даже Ада.

Недостатки: невысокое быстродействие из-за концепции «всё в одном». Некоторые плагины (в том числе для разработки приложений для Android) имеют существенные ограничения функциональности.

PhoneGap

Описание: необычная среда разработки кроссплатформенных приложений, не требующая знания «родных» языков. То есть для того, чтобы создать приложение для Android, знание Java вам не потребуется. Используются JavaScript в связке с HTML5 и CSS3.

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

А какими IDE пользуетесь вы? И какие у них недостатки?

Хотелось бы в очередной раз поднять эту довольно спорную тему.

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

В статье я постараюсь исправить это упущение и расставить ещё немного точек над «ё».

Приглашаю всех поучавствовать в поисках идеального инструмента.

О моём опыте

Программировать я начинал ещё в ДОС. на Turbo Pascal-е. Причём, почему-то, IDE мы тогда использовали только для отладки, и то достаточно редко. Для писания кода предпочитали использовать некий безымянный edit.exe без всякой подсветки синтаксиса в связке с Volkov Commander. И этого хватало. Этим же способом я позже занимался ассемблером и, частично, C++.

Продолжая изучать C++ я перешел на Windows и, соответственно, Visual Studio - куда же без него. Застал версии, если не ошибаюсь, с 5 до 7. После простенького редактора это было нечто - кодогенерация и автодополнение вызывали восторг. Правда, во всём этом сгенерированном добре разобраться было практически невозможно, но это казалось неважным.

Через некоторое время я пересел на Linux и занялся веб-разработкой на php. Здесь параллельно изучал vim и для разработки использовал ZendStudio. В какой-то момент начал использовать только Vim для всего - превратил его, в соответствии с многочисленными руководствами в маленькую ide. В нём же написал свою первую велосипедную CMS на php.

Замечу, что до этого программирование не было основным видом моей деятельности. Да, я и для работы писал различные мелкие утилитки, делал темы для для WordPress, но основным родом деятельности было администрирование.

Как только я занялся разработкой профессионально - возможностей vim мне перестало хватать. Был сначала eclipse, потом netbeans, сейчас - phpstorm.

Последние пол-года героически пытаюсь освоить emacs, в т.ч. в качестве основной рабочей среды.

Так что у меня есть с чем сравнивать и, надеюсь, моё мнение будет достаточно обоснованным и агрументированным.

IDE? IDE...

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

Начну, пожалуй, с одного из бесспорных преимуществ редактора - его богатых возможностей по работе с текстом и возможности всё делать не отрывая рук от клавиатуры. Cреды в большинстве своём так не умеют. Только вот нужны ли такие возможности при написании кода? При написании статьи или письма, думаю, удобно одним нажатием клавиши поменять местами 2 слова или передвинуть абзац вверх страницы. Но в тексте программы это, в большинстве случаев бессмысленно и требует рефакторинга. А платить за это приходится либо пальцедробительными сочетаниями клавиш emacs, либо не менее мозгодробительными командами в vim. А ведь это всё нужно поминать! То, что просто решается одним движением мыши, вроде перемещения окна или изменения их размеров, превращается в целый квест. Да даже выделить текст проще мышкой - точнее, быстрее, и на надо считать сколько там слов до нужнго места в тексте. Нет, программисту тоже могут быть полезны эти функции, но дело в том, что его временные затраты на собственно редактирование кода ничтожны, так что выгоды во времени не будет практически никакой. А вот значительное усложнение инструмента - налицо.

Программист 80% своего времени тратит на понимание написанного кода и перемещению по нему. Причём перемещению именно по коду, а не по тексту! И здесь ему редактор не может помочь абсолютно ничем. Список параметров метода во всплывающей подсказке не покажет, перейти к определению метода не позволит, синтаксис не проконтролирует. А IDE, даже самые простые, с этим справляются просто и элегантно. Я недавно потратил минут 10 на поиск определения одного метода в проекте при помощи silversearcher из emacs. Оказалось, класс был определён в другом модуле и т.п. 10 минут, вместо одного клика мышкой! Я в emacs, конечно, недостаточно опытен, поэтому пусть будет 5 минут, даже минута. Но всё равно соотношение впечатляет.

И вот здесь IDE показывает свой, пожалуй, единственный, но очень жирный плюс - это наличие синтаксического анализатор языка программирования. Среда «понимает» что она редактирует код. Редактор - нет. А это и автодополнение, и навигация, и подсветка синтаксических, а, иногда, и семантических ошибок. Кажется, излишество, приятная мелочь, баловство. Но оно, превращается в необходимость после того, как размер проекта привысит некоторый предел. А с учётом объемных современных фреймворков - этот предел наступает практически сразу.

Да, на проекте из десятка файлов и пары тысяч строк, этот плюс не проявляет себя во всей красе. Редактор тоже может выполнять то же самое автодополнение, но он никогда не отсеет бессмысленные, варианты. И если размер проекта приближается к 100 тыс строк и состоит из тысяч файлов не считая библиотек, то становится проблемно выбирать нужное название из мешанины из названий переменных, методов других классов, да и просто слов из комментариев (было такое в vim-е у меня, не знаю, может, исправили). Интеллектуальные подсказки избавляют от необходимости помнить названия нужных функций и их параметры. Часто это просто физически невозможно.

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

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

Кто-то может возразить, что в современных редакторах многие из этих функций уже реализованы и ничем не уступают самым навороченным IDE. Не соглашусь. Во-первых, полноценных реализаций нет. Не работают они, как должны. Во-вторых, установка всего этого уже достаточно сложная задача. Да даже конфигурация внутренних функций редактора уже нетривиальна. Попробуйте, скажем, включить нумерацию строк в том же emacs! Плюс ко всему, часто нужный функционал реализуется десятком плагинов непонятно как между собой взаимодействующих. А часто ещё и имеющих десяток версий и веток, не всегда совместимых, странно настраиваюхся и т.п. Можно, конечно, потратить месяц, всё настроить и установить (что тоже удел энтузиастов), но это всего лишь приблизит редактор к уровню IDE. К примеру, вернёмся к тем же проектам - я пробовал и Project под vim и projectile под emacs и ещё некоторые плагины. Если Project ещё более-менее отвечает моим требованиям (хотя в последней версии мне вообще не удалось создать проект из-за багов), то projectile оставил исключительно негативные впечатления.

И тем не менее, у редакторов есть несколько областей применения, где они, как минимум, составляют достойную конкуренцию средам разработки.

Во-первых, они себя лучше показывают на мелких проектах. Нет смысла загружать IDE-комбайн для работы с проектом в 10-20 файлов. Проще в редакторе подправить 3-4 строки.

Во-вторых, в некоторых специфических областях все преимущества IDE нивелируются. Например, низкоуровневая разработка для linux. Я этим не занимался, но, судя по структуре кода и предпочтениям разрабочиков (около 70% - emacs и клоны, 25% - vim, 5% - какая-то экзотика вроде jed), IDE там делать нечего. Весь нужный код, с которым происходит работа, собран, как правило в одном-двух файлах, и не нужно прыгать в пределах всего проекта. Да и не сильно поможет автодополнение при выборе из десятка-двух функций с почти одинаковыми названиями.

В-третьих, редакторы могут работать не только с кодом. Всю их мощь можно задействовать при работе с csv или xml файлами. Либо чего-то другого, в чём иногда возникает необходимость, вроде статьи или письма. И не нужно переучиваться, искать удобную программу или запоминать горячие клавиши - всё под рукой, всё одинаковое.

В-четвёртых, возможность работы с языками, для которых нет вменяемой IDE. Скажем, с тем же ruby мне среда не сильно помогла. SublimeText-а оказалось достаточно. Хотя с большим ruby проектом я не работал, возможно, там бы IDE себя показала.

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

Итого

Я не очень люблю IDE, хотя так могло показаться по предыдущему тексту. Считаю их довольно монструозными, с кучей ненужных функций, медленными и требовательными к ресурсам. Да и лучшие из них довольно дорогие. Кроме того, я считаю, использование IDE расслабляет, и привязывает к себе. У редакторов, соответственно, всё наоборот. Плюс доступность и возможности тонкой доводки под себя. По крайней мере vim и emacs. В конце концов, они мне просто нравятся. Эту статью, например, я пишу в Emacs.

Но индустрия (и начальство) диктует свои требования. Если не использовать IDE, производительность значительно упадёт. Но никто не даст вам пол-часа на поиск пропущенной запятой в 10 тыс строках кода. Это всё должно выполняться автоматически и автоматически же исправляться. Мне тоже иногда нравится покопаться в коде без всяких инструментов - но на работе это непозволительная трата времени.

После всех своих проб и ошибок я сделал такой вывод - редактор можно использовать для разработки, но с IDE, после определённого предела он не сравнится и использование редактора для чего-то, за что вам платят - непозволительная роскошь. Да, если использовать правильные практики разработки, правильно проектировать/документировать код, следовать стандартам - можно сгладить врождённые недостатки редакторов. Но мы живём далеко не в идеальном мире, поэтому использование IDE - необходимость, независимо от нашего желания.