Минимально необходимый набор функций для IDE? - PullRequest
0 голосов
/ 10 августа 2010

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

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

  • Основные функции редактирования текста (например, вырезать, копировать, вставить, отменить, повторить, найти, заменить),
  • «Умные» возможности отступов на основе языковых конструкций кода,
  • Language-особая подсветка синтаксиса,
  • Помощь / завершение кода, подобного Intellisense,
  • Некоторые функции навигации по коду, будь то отображение дерева в стиле «представление класса», быстрая возможность «перейти к» (La Resharper и совсем недавно, VS2010), или выделение / свертывание кода,
  • Возможность взаимодействия с инструментами командной строки (например, компиляторами), включая возможность перенаправления вывода обратно в IDE,
  • Возможность устанавливать точки останова, отлаживать исполняемый код, а затем отображать в режиме реального времени информацию о состоянии этого исполняемого кода,
  • Понятие "проекты" или группировкифайлов для организации / составления.

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

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

Ответы [ 3 ]

0 голосов
/ 10 августа 2010

Чтобы стать IDE, я думаю, все, что вам нужно, это уметь:

  • Редактировать код
  • Код компиляции (при необходимости)
  • Выполнить код
  • Код отладки

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

0 голосов
/ 10 августа 2010

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

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

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

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

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

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

0 голосов
/ 10 августа 2010

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

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