2010-08-10 4 views
0

Каковы минимальные возможности, требуемые до того, как часть программного обеспечения можно законно назвать интегрированной средой разработки (IDE)? Или спросить об этом по-другому, что отличает IDE от только мощного текстового редактора с программно-ориентированными функциями?Минимальный набор функций для IDE?

Я думаю, что любой IDE должен был бы иметь, по крайней мере:

  • функций Basic для редактирования текста (например, вырезать, копировать, вставить, отменить, повторить, найти, заменить),
  • «Смарт «возможности Отступят на основе конкретного языка кодовых конструкций,
  • Язык конкретной подсветки синтаксиса,
  • Intellisense, как помощь кода/завершение,
  • некоторых особенности коды навигации, независимо от того, что является» класс VI ew ", стиль быстрого перехода на" способ "(a la Resharper и совсем недавно, VS2010) или код, обводящий/сворачивающийся,
  • Возможность взаимодействия с инструментами командной строки (например, компиляторы), в том числе возможность вывода вывода обратно в IDE,
  • Возможность установки контрольных точек, отладки запущенного кода, а затем отображения информации о состоянии текущего кода в режиме реального времени,
  • Концепция «проектов »или группировки файлов для целей организации/компиляции.

Любые изменения/дополнения к этому списку? Как насчет таких функций, как визуальные поверхности дизайна и инструменты для диаграмм? Являются ли эти приложения необходимыми для работы в среде IDE?

Отдельные ответы на каждый предмет, возможно, имеют смысл.

+1

Это вероятно, лучше как вики сообщества. – FrustratedWithFormsDesigner

+0

Да ... чтобы проверить это, прежде чем я отправил. Благодаря! –

+0

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

ответ

0

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

0

Для того, чтобы быть в IDE, я думаю, что все, что вам нужно, чтобы быть в состоянии:

  • Редактировать код
  • компилировать код (при необходимости)
  • Run кодекса
  • отладки кода

Все остальное - просто излишества.

0

Я бы сказал, что ограниченный набор функций всегда зависит от языка. Например, многие языки будут программироваться с использованием цикла компиляции кода-отладки (например, C, C++, Java), где другие более интерактивны, например Python и Common Lisp.

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

Для второй группы я бы предпочел использовать IDE с Read-Eval-Print-Loop, что позволяет мне оценивать биты кода на самом артефакте кода, проверять переменные и обычно сохраняя тесную связь между артефактами кода и состоянием памяти во время выполнения - динамически. (Emacs + SLIME является примером такой IDE).

Это, по возможности, полное покрытие групп/семейств языков программирования; это было просто для того, чтобы выразить свою точку зрения, IDE должна обеспечить тесное подключение к определенному стилю разработки PL. Некоторые другие функции, такие как завершение кода и подсветка синтаксиса, слишком общие, и, таким образом, они пробились к тем программистам-ориентированным текстовым редакторам. Но «ID» в IDE предлагает интегрированную разработку, поэтому он должен охватывать все, что вам нужно, не прибегая к дополнительным инструментам, например терминалу (или, по крайней мере, к тому, чтобы этот внешний набор инструментов был сведен к минимуму!).

Об особенностях, таких как упомянутые визуальные/диаграммные редакторы, они имеют смысл, если вы используете его для разработки вашей программы. Поэтому редакторы UI имеют смысл для IDE для подмножества всех языков программирования. Но вам становится сложнее определить, как вы считаете редакторов умных карт и «виртуальных» досок/альбомов. Очевидно, что вы можете использовать его для разработки продукта в любом PL, но это не так очевидно (для меня, по крайней мере), что IDE должна обеспечивать поддержку для них ... То же самое касается поддержки совместной работы. Поэтому такие функции, безусловно, обогащают среду IDE, а также любой инструмент повышения производительности. Может быть, это признак того, что она должна предоставляться операционной системой? :) Я считаю, что понятие Интегрированного Развития охватывает весь цикл от входного артефакта (ввода-вывода программиста) до конечного выходного двоичного кода. Это означает, что такие вещи, как sratchpads, не будут важной частью IDE, но редактор диаграмм UML, вероятно, будет (если из него можно вывести код).

Есть другие SO-потоки, говорящие о любимых функциях на IDE, см., Например, this one.

(из любопытства, как бы вы идти о выборе «правильный» ответ для вас? Это больше похоже на обсуждение стартером, может быть, вики, не так много, как Q & волоске)

Смежные вопросы