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

39

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

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

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

Крис
источник
возможный дубликат programmers.stackexchange.com/questions/1003/… ?
Ларри Коулман
что вы на самом деле делаете в своих редакторах?
Писать код, разрабатывать приложения, ... почти все, что было в последнее время.
Крис
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, является отправной точкой,

user1249
источник
1
Обратите внимание, что все это понимание требует памяти для хранения. Следовательно, среда IDE, как правило, требует много ресурсов по сравнению с редактором, который подходит для флоппи-дисковода.
19
Да, но моя 8Gb i7 dev машина должна что-то делать, пока я печатаю. : D
Доминик Макдоннелл
IDE не должны быть ресурсоемкими. Но, возможно, Smalltalk - крайний случай: простой рефлексия, очень простой синтаксис и так далее.
Фрэнк Шиарар
@ Франк, зависит от того, что вы хотите, чтобы они делали, и насколько это легко.
18
[To the IDE] You had me at intellisense/autocomplete
JohnFx
источник
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
  • Компиляция в один клик
  • Отладка
  • Шаблоны кода
  • Завершение кода
  • Интеграция с инструментами контроля версий и рефакторинга
  • Упрощенное модульное тестирование

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

ysolik
источник
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 не является четко определенной. Многие редакторы могут быть расширены для обработки компиляции, завершения кода, отладки и т. Д.

GrandmasterB
источник
2

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

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

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

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

mike30
источник
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.

gbjbaanb
источник
0

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

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

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

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

установка
источник