Что оправдывает использование IDE по сравнению со стандартным редактором? [закрыто]


39

Я использую свой текстовый редактор по выбору (vim, nano, gedit, выберите свой яд) гораздо чаще, чем любой IDE в последнее время.

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

В связи с этим, какое обоснование вы бы имели, если бы не использовали IDE и просто полагались на редактора?



что вы на самом деле делаете в своих редакторах?

Писать код, разрабатывать приложения, ... почти все, что было в последнее время.
— Крис

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

3
Я хотел бы перевернуть вопрос. Что оправдывает НЕ использование IDE.
— Нейлер

Ответы:


70

Я: интеграция . Хороший текстовый редактор может быть хорош для написания кода, но большая часть вашего программирования не тратится на написание; он потратил тестирование и отладку, и для этого вы хотите, чтобы ваш текстовый редактор интегрировался с вашим компилятором и вашим отладчиком. Это самая большая сила IDE.


Если бы я только мог найти тот, который не мешал мне :)
— Тим Пост

5
Я только что согласился принять подпункт редактирования как цену, которую я плачу за удобство интеграции.
— TMN

Разве не тестирование программирования, если вы делаете это правильно? Если вы проводите большую часть своего времени в отладке и тестировании на обезьянах, то, я думаю, я вижу, в чем ваша проблема.
— Том Хотин - tackline

8
@Tom, Тестирование - это программирование, когда вы можете автоматизировать тесты, которые вы делаете все время. В противном случае, проверьте, какой метод дает наибольшее качество.
— Андрес Яан Так

49

Это мои любимые функции моей любимой IDE, IntelliJ, которые я люблю использовать для Java, PHP, Javascript, HTML и даже ActionScript.

  • Проверка ошибок - как проверка орфографии в реальном времени для кода. Абсолютно необходимо.
  • НавигацияCtrl+click по коду - функция, переменная, тип, чтобы перейти к определению. (IntelliJ очень хорош в этом на всех вышеперечисленных языках)
  • Завершение кода - я Ctrl+spaceпостоянно использую, чтобы помочь заполнить нужное мне имя класса или метода. Это ускоряет кодирование тонны и даже помогает отлавливать ошибки до того, как они появятся, когда то, что вам нужно, недоступно из контекста, в котором вы находитесь. IntelliJ даже поможет вам расширить аббревиатуры - наберите NPE, нажмите Ctrl+spaceи отобразит «NullPointerException», "NoPageError" и т. Д. Нажать Alt+enterна автоматическое добавление importтоже очень приятно.
  • Генерация кода - Генерация геттеров и сеттеров, реализация методов из интерфейса парой кликов.
  • Очень хорошая раскраска кода - IntelliJ делает не только стандартное ключевое слово, строку, окраску имени переменной, но и цвета переменных-членов, локальные переменные, параметры. В ActionScript переменная, которая на самом деле является установщиком / получателем, будет окрашена как функция.
  • Рефакторинг - безошибочное переименование является самым большим. IntelliJ очень хорошо переименовывает даже сеттеры и геттеры или использование строк. Конечно, есть поиск и замена на основе регулярных выражений, когда вам это нужно, и опция «сохранить регистр», чтобы вы могли заменить «myNumber», «MyNumber» и «MYNUMBER» на «myString», «MyString» и «MYSTRING» за одну операцию
  • Интеграция управления версиями - мы используем SVN, и мои любимые функции IDE VC позволяют создавать, удалять, перемещать классы, не думая о SVN, легко просматривать историю, очень хороший инструмент сравнения, хорошие возможности слияния и аннотировать файлы (показывая оперативная история) в редакторе.
  • Импорт зависимостей - полагаясь на стороннюю библиотеку, для которой у вас есть источник, вы можете легко перейти к коду для справки, отладки и т. Д.
  • Умная типизация - вставка кода и его автоматическая вставка в правую позицию табуляции, автоматическое заполнение конечных скобок, скобок, кавычек и т. Д.
  • Очень хороший тестовый раннер для JUnit, FlexUnit, PHPUnit
  • Отладка - конечно. Отлаживает JBoss, Jetty, даже Flash без нареканий. Ctrl + щелчок по трассе стека, чтобы перейти прямо к коду.

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

IntelliJ также даже использует, Ctrl+spaceчтобы предложить имена переменных. В Java, если вы объявите новую переменную EventMessageItem и нажмете Ctrl+space, она предложит "eventMessageItem", "eventMessage", "item" и т. Д.

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


4
+1 за упоминание IntelliJ Идея - я просто обожаю
— artjom

3
+1, большинство пунктов здесь относятся к любой приличной IDE, или должны :)
— Matthieu

21

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


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

19
Да, но моя 8Gb i7 dev машина должна что-то делать, пока я печатаю. : D
— Доминик Макдоннелл

IDE не должны быть ресурсоемкими. Но, возможно, Smalltalk - крайний случай: простой рефлексия, очень простой синтаксис и так далее.
— Фрэнк Шиарар

@ Франк, зависит от того, что вы хотите, чтобы они делали, и насколько это легко.

18
[To the IDE] You had me at intellisense/autocomplete

1
+1 Несмотря на то, что меня всегда смущает осознание того, что я больше никогда не набираю полное имя класса, метода или свойства и точно знаю, сколько нажатий требуется для выбора правильной опции автозаполнения ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
— grossgogel

5
@ брутто, но это правильно ! Ручная печать часто подразумевает ошибки при печати.

@ TThorbjørnRavnAndersen Если у вас нет двух одинаково названных вещей, и случайно не набираете достаточно символов, чтобы получить правильный. Я случайно вставил свойство «NumberOfPoints» в несколько областей, которые нуждались в «NumberOfSegments» из-за того, что не уделил достаточно внимания моему автозаполнению: p. При этом, я бы предпочел автозаполнение, чем нет.
— К.Чалу

14

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

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

Я использовал много, но IDE, к которым я возвращаюсь снова и снова, это Visual Studio, Wing IDE и NetBeans. Все это значительно увеличивает время, которое я уделяю программированию.


9

Исторически, IDE обеспечивали непревзойденное удобство на однозадачном компьютере. Мой первый компилятор C потребовал следующих шагов в цикле edit-compile-run:

  • Запустить редактор
  • Редактировать программу
  • Сохранить программу, выйти из редактора
  • Скомпилировать программу
  • Собрать скомпилированную программу
  • Ссылка скомпилированная и собранная программа
  • Запустить программу

в моей системе CP / M. (Я мог бы автоматизировать большую часть этого, как пакетную программу, если бы мои диски были больше.)

Когда я получил Turbo Pascal, я был рад возможности держать редактор доступным во время компиляции и отладки.

Это, я полагаю, то, что сделало IDE популярными в первую очередь.


Но все эти вещи могут быть сделаны из многих редакторов; Emacs, например.
— JasonFruit

@JasonFruit: Конечно. Я объясняю, что первым привлекло меня к ним. В те дни я работал с CP / M на TRS-80 Mod 4, и я полагаю, что Emacs тогда еще основывался на TECO.
— Дэвид Торнли

Хорошо, точка. :-) (смайлик для заполнения необходимого количества символов.)
— JasonFruit,

2
@JasonFruit, машины CP / M-80 имели максимум 64 КБ ОЗУ. Подумайте, сколько Emacs вы можете вписать в это.

7

Если вы пишете код на Лиспе, Emacs обладает возможностями, подобными Intellisense, такими как поиск параметров метода и автозаполнение, так что вы можете сказать, что это оригинальная IDE. Также приятно иметь возможность использовать одну программу для нескольких задач (редактирование в общем, командная строка / оболочка, чтение новостей).

В целом вопрос редактора и IDE, похоже, зависит от языка программирования. Из того, что я видел, например, кодеры Ruby и Haskell, похоже, предпочитают свой любимый текстовый редактор.


Emacs действительно может сделать это практически на любом языке. Режим PHP довольно хорош, это режимы для Javascript, Haskell, Erlang и SQL. (Остальные тоже могут быть хорошими, но я ими не пользовался).
— Захария К

Как только вы добавите все эти навороты в emacs (или любой другой редактор), у вас будет IDE. Интегрированная среда развития. Я сравниваю его к покупке торта из пекарни (IDE) по сравнению с, что делает его с нуля (навороченный редактором)
— участок

+1, для Coq, Haskell и Lisp Emacs - единственное, что может оказать достойную поддержку
— Даниэль Гратцер

4
  • Компиляция в один клик
  • Отладка
  • Шаблоны кода
  • Завершение кода
  • Интеграция с инструментами контроля версий и рефакторинга
  • Упрощенное модульное тестирование

назвать несколько


3

Я думаю, что ответ будет во многом зависеть от того, какой язык программирования вы используете, и насколько вы хороши в этом. Для таких языков, как JAVA, IDE необходима, если вы делаете что-то серьезное. Где бы то ни было, когда речь заходит о языках сценариев, таких как JS или Ruby, IDES не очень полезны.

Я использую notepad ++ и набор сценариев оболочки (для резервного копирования, git commits) для своей разработки, и она отлично работает.


Я использую GVIM для Javascript и нахожу, что он НАМНОГО быстрее, чем с помощью IDE. Он также использует намного меньше памяти. Добавьте примерно 3-4 сценария оболочки для таких вещей, как jsLint, форматирование и управление селеном, и я обнаружил, что мне почти никогда не нужно отрывать руку от клавиатуры. (И, честно говоря, я мог бы превратить все эти скрипты в плагины VIM, если бы мне было интересно)
— Захария К

3

Некоторые аргументы в пользу «редакторов»:

  1. Есть случаи, когда IDE еще не была разработана или никогда не будет.
  2. С помощью редактора вы можете вносить изменения «быстрее» и более хирургически.
  3. Для этого требуется гораздо меньше ресурсов (так проще использовать множество открытых одновременно)
  4. Потому что это единственный способ решить некоторые проблемы, подобные описанным здесь .
  5. (личное) Иногда, когда мне приходится все печатать, я больше работаю, используя свое сознание, и больше занята тем, что печатаю. Например, я много раз находил орфографическую ошибку в методе (formaqString), которая была бы незамеченной при использовании IDE.
  6. Это облегчает работу только с использованием клавиатуры (скорость / поток)
  7. Менталитет использования макросов или других экономящих время.

Я использую IDE каждый день для работы, иначе сложно написать Java / C #.

(2) по сравнению с (3): в основном единственная возможность редактировать файлы удаленно (через ssh / remote desktop) и вносить минимальные изменения в конфигурацию или файлы удаленного сервера.


2

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

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


2

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


Что вы делаете в kedit, что IDE не может сделать? Мне действительно любопытно, я никогда не использовал ничего, кроме IDE, для большинства моих серьезных кодировок ...
— Дин Хардинг,

KEDIT, как и другие умные редакторы, имеет возможности сценариев, которые позволяют мне делать то, что не может среда IDE. Например, я использую KEDIT для копирования, вставки и редактирования столбцов с несколькими буферами (до 100 за сеанс kedit), к которым IDE даже близко не может приблизиться.
— Дэйв

1

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

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


0

Короткая кривая обучения. Это оно.


4
Я полагаю, вы не использовали
— максимальную

4
С vim в качестве моего второго пилота мне не нужно.
— конец

Короткая кривая обучения для ....? простите, но это не было очевидно для меня.
— Крис

0

Единственный, который я действительно рекомендую, это отладчик. На самом деле IDE - это редактор с добавлением множества других gubbins, но если вы можете скомпилировать, набрав в командной строке make (или стрелку вверх + enter), вам не нужно IDE. Если вы можете выполнить фиксацию в SCM, щелкнув правой кнопкой мыши в проводнике и выбрав нужный пункт меню, вам не понадобится IDE.

Теперь я знаю, что некоторые люди нуждаются в таких вещах, как поддержка рефакторинга (напишите свой код правильно с первого раза :)) или некоторый интегрированный дизайнер GUI (но даже тогда, используя Visual Studio, я использую Expression для своей работы с GUI, а не дрянную поддержку XAML в VS ) и многим нужно интеллектуальном значении и автозаполнении (особенно для многословных языков, таких как Java и C #, которые имеют почти все имена).

Но для меня отладчик GUI - единственная действительно хорошая причина использовать IDE. Я все еще использую отладчик «командной строки» (ну, windbg), но для повседневной работы он встроен в VS.


0

Есть преимущества для IDE. Не все языки имеют всеобъемлющую IDE, которая действительно склоняет чашу весов, или было бы непросто создать такую ​​среду для указанного языка. Причины почему бы хотеть IDE? Хорошо, давайте начнем с этих:

  • Язык имеет богатый стандартный API, который во всплывающих окнах IDE может помочь ускорить разработку.
  • Код котельной плиты очень много. (Принудительное try / catch, getter / setters и т. Д.)
  • Автозаполнение может точно удовлетворить ваши потребности в кодировании
  • Ваш языковой модуль тестирования интегрирован в указанную среду IDE.
  • IDE знает и поддерживает множество общих языковых библиотек в отношении лучших практик.
  • Плагины доступны для работы mo'betta
  • Это не так тяжело, это замедляет вашу систему
  • Высокоинтегрированный отладчик? Что помогает.

Проблема заключается не в том, что все языки действительно получают значительный прирост производительности благодаря комплексной среде IDE. Я использую IDE для некоторых работ (Java, C #), но не для других (Python, Ruby, Coldfusion). Все это на самом деле является балансом. Некоторые языки просто не требуют такого всеобъемлющего набора.

Есть ли IDE для каждого? Конечно. Вы всегда нуждаетесь в этом? На самом деле, нет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.