Почему люди используют Командную строку вместо IDE? [закрытый]

9
задан 23 April 2010 в 02:57
поделиться

6 ответов

Более эффективен для больших систем - Попробуйте открыть решение VS со 100 проектами и 10 000 файлов.

Для многих задач проще: редактировать в одном окне, запускать make в другом, использовать gdb в третьем.

Легче автоматизировать задачи, часто проще работать в команде или кросс-платформенно, если у всех есть gcc и vi (или emacs)

31
ответ дан 4 December 2019 в 06:02
поделиться

Сборки командной строки могут быть автоматизированы, и использование стандартных инструментов, таких как CMake для ваших сборок командной строки, делает такие сборки кроссплатформенными (обратите внимание, что вы можете создать проект Xcode из командной строки, используя xcodebuild ], но это работает только в Mac OS X с Xcode). Автоматизация невероятно важна, потому что она позволяет вам, например, создать «ловушку» для вашей системы контроля версий, чтобы построить проект и отклонить код, который не компилируется, или чтобы сервер непрерывной интеграции периодически создавал ваш проект, чтобы вы можете легко определить, когда были внесены критические изменения в код, и быстро их исправить.

Помимо переносимости и автоматизации, командная строка работает быстрее. Если вы используете проект Makefile или что-то вроде C ++ Project Template , в котором используется CMake, но есть оболочка Makefile, то для сборки требуется простая команда «make». Во второй раз, когда вы строите, вам нужно только нажать стрелку вверх, а затем нажать ENTER, чтобы повторно запустить «make». Хотя новички с командной строкой могут быть не очень быстрыми и могут найти GUI / IDE проще, после того, как вы какое-то время использовали командную строку, она становится намного быстрее, чем при использовании GUI, и все эти движения мыши и щелчки кажутся медленно и бесполезно.

0
ответ дан 4 December 2019 в 06:02
поделиться

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

Большинство редакторов IDE бледнеют по сравнению с редакторами vim или emacs. Есть функции, которые вы упускаете или которые намного сложнее заставить нормально работать. Например, ctags определенно помогает вам перейти к определениям функций в vim, но это далеко не так хорошо, как многие IDE, поскольку они действительно понимают язык. И, конечно же, интеграция отладчика, управление проектами и тому подобное не будут работать так же хорошо в vim или emacs, потому что они не являются полноценными IDE (хотя вы можете многое из этого делать с ними). Но часто мощь vim или emacs затмевает все, что IDE имеет над ними.

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

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

РЕДАКТИРОВАТЬ: Рассмотрение того, почему vim или emacs во многих отношениях намного мощнее, чем ваша типичная IDE, может быть довольно длинным, и уже есть несколько вопросов по SO, которые охватывают это.

Это отличный ответ по emacs: https://stackoverflow.com/questions/35809/why-are-vi-and-emacs-popular/35929#35929

Это хорошая статья о vi, который, кажется, часто ссылается на: http://www.viemu.com/a-why-vi-vim.html

Для быстрой попытки с моей стороны объяснить некоторые причины, почему vim более мощный :

Ваша типичная IDE - это, по сути, усовершенствованный блокнот с точки зрения редактирования текста. Вы вводите текст и используете мышь для навигации (что иногда бывает весьма полезно, но может быть немного медленнее, чем просто использование клавиатуры). Они добавляют специфичные для кода функции, такие как завершение кода, автоматический отступ кода, возможность перехода к определениям функций, инструменты рефакторинга и т. Д. (Поэтому IDE могут быть такими полезными). Но их базовые возможности редактирования текста, как правило, довольно плохи. Они могут добавить некоторые полезные функции, такие как ctrl-d для удаления строки, но то, что они добавляют, обычно очень ограничено по сравнению с тем, что вы получаете в vim или emacs.

В качестве примера возьмем удаление (очень простая операция). В vim вы можете использовать операцию удаления с любой командой движения, что дает потенциально ошеломляющее количество способов удаления объектов.

  • dd Удалить всю строку.
  • 5dd Удалить 5 строк.
  • dj Переместите курсор вверх, удалив все, что находится слева в текущей строке, и все, что находится справа в строке выше.
  • dG Удалить все отсюда до конца файла.
  • 7dgg Удалить все между здесь и строкой 7.
  • d% Перейти к скобке или скобке, которая соответствует следующей скобке или скобке (в зависимости от того, что наступит раньше), и удалить все между здесь и там, включая фигурная скобка или скобка, к которой вы переходите
  • dw Удалите все, что находится между этим местом и следующим началом слова
  • de Удалите все, что находится между этим местом и следующим концом слова
  • D Удалить все между здесь и концом строки
  • d0 Удалить все между здесь и началом строки
  • d ^ Удалить все между здесь и началом первого слова в строке
  • dty Удалить все, что находится между этим и следующим вхождением y в этой строке (или ничего, если между этим и концом строки нет y)

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

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

14
ответ дан 4 December 2019 в 06:02
поделиться

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

Помимо этого, вы всегда должны использовать IDE для отладки, компиляции и редактирования кода.

0
ответ дан 4 December 2019 в 06:02
поделиться

По крайней мере, в UNIX инструменты командной строки зрелые . Ошибки, с которыми мне приходится иметь дело, на данный момент очень неясны. vi, make, gcc, gdb - этим инструментам в некоторых случаях более 20 лет. Испытано, проверено, проверено.

Кроме того, они распространены . У всех есть vi, make, gcc. Мне не нужно беспокоиться о том, что у меня нет своего инструментария. Я могу перейти практически к любому ящику, и без проблем, я могу компилировать, писать, отлаживать без необходимости изучать какой-нибудь необычный инструмент.

3
ответ дан 4 December 2019 в 06:02
поделиться

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

Во-вторых, многие разработчики привыкли к инструментам Unix, которые являются зрелыми, очень мощными и предназначены для самостоятельного использования. В Microsoft Windows нет такой традиции, и IDE правили там со времен Turbo Pascal. (Большим преимуществом Turbo Pascal было то, что в те дни, когда еще не было многозадачности, не было необходимости запускать и останавливать редактор, а затем запускать компилятор и компоновщик отдельно перед запуском теста.)

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

В-четвертых, для работы со сложными системами все еще нет метода лучше, чем удобочитаемое текстовое представление. Синтаксис make-файлов Unix плох, но он позволил бы избежать проблемы, с которой я столкнулся недавно, когда конфигурация этапа после сборки в одной настройке файла проекта Visual C ++ была неправильной в одном случае, и ее было трудно обнаружить. Используя make-файл и vim, я могу просто и надежно изменить способ компиляции и сборки данного проекта. С Visual Studio все намного сложнее.

2
ответ дан 4 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: