Стив Йегге написал комментарий в своем блоге :
Все величайшие инженеры мира используют Emacs. Типы, изменившие мир. Не та великая девчонка в кубе рядом с тобой. Не Фред, потрясающий парень в коридоре. Я говорю о величайших разработчиках программного обеспечения в нашей профессии, которые изменили облик отрасли. Джеймс Гослинги, Дональд Кнутс, Пол Грэхемы, Джейми Завинскис, Эрик Бенсоны. Настоящие инженеры используют Emacs. Вы должны быть достаточно умными, чтобы использовать его правильно, и это сделает вас невероятно сильным, если вы сможете его освоить. Если вы мне не верите, посмотрите через плечо Пола Нордстрома, пока он работает. Это настоящее открытие для тех, кто всю свою карьеру использовал IDE, подобные Visual Blub. NET.
Emacs - редактор, которому уже 100 лет.
В последний раз я использовал текстовый редактор для написания кода примерно 1000 лет назад, когда все еще писал HTML в Блокноте. С тех пор я более или менее зависел от IDE, поскольку всю свою карьеру использовал Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio и Eclipse.
Для чего это стоит, я уже пробовал Emacs, и мой опыт был испорченная один из его полного отсутствия вне коробки обнаруживаемых функций. (По-видимому, есть команда Emacs для обнаружения других команд Emacs, которую я, кстати, не нашел - это как прожить свою собственную жестокую шутку в стиле Дзен.) Я пытался сделать себя похожей на программу в течение хорошего месяца, но в конце концов решил, что мне лучше использовать конструкторы графического интерфейса с перетаскиванием, IntelliSense и интерактивную отладку.
Трудно отделить факты от фанатизма, поэтому я пока не готов принимать комментарии Егге за чистую монету.
Есть ли измеримая разница в навыках, производительности или удовольствии от программирования между людьми, которые зависят от IDE, и теми, кто этого не делает, или все это просто фанатизм?
источник
Ответы:
Прежде всего позвольте мне сказать, что я искренне верю в культ Emacs.
Тем не менее, блоггер ненормальный. Вы пишете то, что считаете полезным. Я считаю, что Emacs помогает мне, главным образом потому, что я провел годы учебы в колледже, предварительно оплатив начальные затраты на изучение того, как модифицировать его в соответствии со своими потребностями, и подстроить себя под его нужды.
Но другие люди поступают иначе, и, как они говорят, «Ничего страшного».
источник
Он (Стив Йегге) подробно рассказал об этом по частям в других своих публикациях. http://steve-yegge.blogspot.com/2008_04_01_archive.html , вероятно, является наиболее исчерпывающим, но информация скрыта там, поскольку она касается основной темы.
Подведу итог: программисты, которые просто хороши или компетентны, возьмут IDE и узнают ее очень хорошо, и, возможно, будут в ней делать достаточно прилично, но они ограничатся тем, что IDE предоставляет для них. Другими словами, они адаптируются к IDE. С другой стороны, великие программисты адаптируют свою среду под себя , например, путем написания сценариев или собственных инструментов или расширения своих инструментов. И что касается последнего пункта, Emacs - это не только наиболее расширяемая среда, но и самая простая для расширения среда, и это среда, в которой вы получаете больше всего получаете выгоду. от его расширения - ваши расширения интегрируются в Emacs, как стандартные, и поэтому ваши будущие расширения могут основываться на ваших предыдущих (что-то вроде цикла положительной обратной связи).
источник
Лучшие программисты используют vi или emacs, потому что самые опытные программисты - лучшие, и 20 лет назад не было особого выбора, кроме vi и emacs.
Начав работать с vi (около 1987 г.) на машине с очень медленным текстовым терминалом, я через несколько лет перешел на (GNU) Emacs (на более быстрой машине) и почти исключительно использовал его почти 10 лет.
Emacs был первой действительно интегрированной средой разработки - весь цикл редактирования / компоновки / компиляции можно было контролировать в emacs, и вы могли использовать свой собственный для любого используемого компилятора.
В настоящее время IDE, такие как eclipse, еще лучше интегрированы (честно говоря: emacs отстой с графикой), но Emacs по-прежнему остается одной из лучших сред для «чистого» редактирования текста.
источник
Улучшение вашего ясного мышления и решения проблем сделает вас лучшим программистом. Никакая программа не может этого сделать.
Использование лучшего молотка не поможет мне построить более красивый дом, если я не знаю, как и почему. ;)
источник
Егге нужно встретиться с Биллом Джоем. Он не только один из величайших программистов в мире, но и написал большие куски vi. В vi.
Короткое постыдное признание: после 20 лет использования vi (и vim / gvim в последние годы) для всего, в последний год или около того я начал использовать Eclipse для редактирования java (и Thunderbird для электронной почты), хотя на моей нынешней работе я У машины так мало памяти, что я обычно использую vi, кроме случаев, когда мне нужен отладчик.
источник
Давайте просто сузим это до Visual Studio и Emacs - в противном случае вопрос слишком широкий, и я подозреваю, что большинство людей (по крайней мере, здесь, в StackOverflow) знакомы с этими двумя. [Я использую и предпочитаю emacs]
Теперь давайте разберем вопрос на три составляющие.
Удовольствие от программирования сводится в первую очередь к тому, чтобы нравиться программирование само по себе, а во вторую - к тому, чтобы не возникало раздражающих факторов, когда вы это делаете. Использование инструментов, с которыми вы боретесь, уменьшит удовольствие. Итак, я предполагаю, что удовольствие, вероятно, будет максимальным при использовании инструментов, которые вам нравятся и с которыми вы знакомы.
Конечно, как только вы познакомитесь с новым инструментом, вы можете обнаружить, что он вам больше нравится, и, следовательно, вам больше понравится программирование, если вы будете делать это с помощью своего нового любимого инструмента. Мне не ясно, понравится ли людям в целом VS по сравнению с emacs (или наоборот), если они хорошо их знают.
Далее, навыки программирования. Если есть какая-то связь между навыком и выбором VS / emacs, я думаю, что это навык, вызывающий выбор, а не выбор, вызывающий навык. По моему опыту, ни один из {VS, emacs} не заставил меня научиться писать лучший код.
Хороший инструмент может дать мне возможность написать тот же код (и, следовательно, такое же качество кода) за меньшее время; Если мы так предположим
productivity = quality of code `times` code per time
, то логично предположить, что любой редактор, который позволит вам писать хороший код за меньшее время, повышает производительность.Возможно, я слишком незнаком с VS, но я думаю, что у emacs есть некоторые сильные стороны, которых я не нашел в VS. Это может показаться смешным, но такая простая вещь, как перемещение курсора с
Ctrl-[fbnp]
такая является настоящим благом - это означает, что вам не нужно перемещать руки к клавишам со стрелками. Еще одна вещь: вы можете выполнить поиск или замену, включая символы новой строки, которые я использую достаточно часто, и мне бы очень не хотелось их пропустить.Еще мне нравится возможность встроить оболочку в мой редактор. По моему опыту, это гораздо более ценно на платформах, отличных от Windows (и мой первый опыт "программирования", IIRC, был написанием файлов DOS .bat, так что я не просто пылкий фанат), но на этих платформах это большая победа , Это заставляет emacs «интегрироваться» со «всем» (поиск файлов с помощью find / locate, текстовый поиск с помощью grep, управление версиями с помощью svn / git / hg / ... и т. Д.).
Окончательный вердикт - учить emacs или нет? И все ли это фанатизм? Если у вас есть время, я бы сказал, что всегда стоит изучать новые способы делать то же самое, потому что новый способ может оказаться для вас лучше. И я призываю вас не отвергать его таким, каким он кажется, когда вы все в этом новичок. В этом смысле это похоже на переключение на раскладку клавиатуры Дворжака: сначала вы медленнее, но как только вы наберете скорость, вы, вероятно, будете по крайней мере так же быстро, как на qwerty, и более комфортно. Я рекомендую тот же подход к изучению новых языков (программирования): поскольку вы не знаете словаря (стандартная библиотека), говорите, что все сложно, но награда все еще ожидает вас на горизонте.
источник
С цитируемым текстом, начинающимся «Все величайшие инженеры мира используют Emacs», я бы тоже не стал принимать это за чистую монету. Знает ли он всех величайших инженеров мира? Это тот же список величайших инженеров мира, что и у вас или у меня?
После изучения такой мощный редактор, как EMACS или vi, сделает вас более продуктивным или, по крайней мере, более эффективным, если вы окажетесь без любимой IDE.
Убийца - это «однажды выученная» часть. Чтобы продуктивно использовать эти инструменты, нужно много работать и практиковаться, и вначале это очень сложно.
источник
Лично я фанат Emacs, но Emacs - это всего лишь инструмент. Это не сделает вас лучшим программистом, не больше, чем супер-модное перо сделает вас лучшим писателем.
Уточнение, что «великие программисты» адаптируют свою среду под себя, может иметь некоторые достоинства, но многие инструменты могут это сделать (например, vim и SlickEdit), поэтому в Emacs в этом отношении нет ничего особенного.
Я думаю, что, скорее всего, верно то, что «великие программисты» увлечены программированием, и люди, увлеченные им, как правило, находят инструменты, которые помогают развить эту страсть. Emacs (а также vim, SlickEdit и др.) Является таким инструментом.
источник
Я не верю, что есть разница, это скорее вопрос предпочтений.
Однако я заметил, что чем дольше вы кодируете или чем ниже уровень кода, тем выше вероятность того, что вы использовали emacs или vi.
источник
Хотя за последнее десятилетие IDE стали намного лучше, они все еще содержат программы в небольшом безопасном «пузыре», вдали от некоторых уродливых деталей. Как правило, это увеличение абстракции позволяет большему количеству программистов делать больше с меньшими знаниями. Это, конечно, относится не ко всем программистам, но более простые инструменты действительно позволяют программировать более широкую аудиторию.
Больше знаний об инструментах более низкого уровня часто приводит к большей стабильности кода, так как меньше шансов случайно "пойти против течения". Несправедливо просто указать EMACS как единственный ведущий индикатор, поскольку он исходит из целого ряда языков и инструментов и на самом деле больше касается глубины понимания, а не конкретной технологии.
Раньше вы либо изучали VI или EMACS на системах UNIX, либо специализировались на ПК (хорошо, были также VMS, CMS, AS400 и т. Д., Но это были старые технологии). Оба потока привлекли очень увлеченных людей, но ребята из UNIX были склонны хотеть сложного решения, в то время как парни ПК просто хотели, чтобы это было сделано быстро. Культуры были очень разными.
источник
ИМХО IDE, как правило, оптимизированы для конкретной платформы, языка или ОС: Eclipse JDT отлично подходит для Java, Visual Studio ориентирована на C ++ /. NET и т. Д. Они очень помогают продуктивности (опять же ИМХО), если вы работаете только над эта платформа, но если вы меняете платформы, вам нужно в основном изучить новую IDE (или, по крайней мере, новый набор плагинов, представлений, перспектив, и я не знаю, что еще для Eclipse).
Преимущество знания emacs, Textmate, vim (мои личные предпочтения) или любого универсального редактора заключается в том, что навыки, приобретенные вами в этом редакторе, применяются независимо от того, для какой платформы вы пишете. Они оптимизированы для редактирования текста , и как только вы освоите их, вы сможете очень эффективно редактировать текст на любом языке.
Также Йегге утверждает, что великие программисты адаптируют свои инструменты к своему стилю работы, а не наоборот. Я думаю, что это победа для универсальных редакторов, потому что вы настраиваете один редактор, вместо того, чтобы решать, как адаптировать четыре разных IDE, чтобы все они вели себя так, как вы хотите.
источник
C-[npfbaed]
. (Но, к сожалению, нетM-
)Я бы сказал, что лучшие программисты, как правило, тратят время на настройку своей среды, что ускоряет / упрощает выполнение задач, которые они могут выполнять. Emacs - один из самых мощных редакторов, когда дело доходит до настройки вашей среды. У него крутая кривая обучения, но, как только вы его преодолеете, практически нет предела тому, что вы можете сделать для себя.
Кто-то однажды сказал, что лучшие программисты - ленивые; те, которые, когда им нужно сделать что-то более одного раза, находят способ автоматизировать это, чтобы это требовало меньше усилий. Emacs позволяет вам быть очень и очень ленивым;)
источник
Я использовал IDE с самого начала (возможно, начав с QBASIC) и много-много лет. Сейчас я почти полностью перешел на VIM (в различных вариантах) для всей своей разработки, и я не жалею об этом. Моя продуктивность определенно увеличилась.
Разумеется, конструктор Windows Forms из Visual Studio ничто не заменит. Но по сравнению с VIM (и, я уверен, Emacs) текстовый редактор внутри Visual Studio действительно никуда не годится. Как только вы освоите чистую мощь консоли и инструментов разработчика GNU (я имею в виду
make
GCCbinutils
иgdb
, а затем некоторые) вы заметите , что эти инструменты могут выглядеть примитивно , но они как раз наоборот, и на самом деле предлагают все инструменты, которые предоставляет IDE (ну, кроме дизайнера форм).Просто у вас впереди очень крутой подъем, когда вы впервые начнете использовать эти инструменты, и стимул может быть небольшим. Мне повезло (?), Что меня заставили использовать эти инструменты, поэтому у меня не было выбора, от которого я мог бы избавиться.
источник
Лично я считаю, что вы должны использовать то, что делает вас более продуктивным. Если у вас нет времени вкладывать деньги в проект, чтобы сидеть и изучать Emacs, то это, вероятно, не лучшее использование вашего времени в тот момент.
Однако я считаю, что лучше познакомиться с другими IDE, когда у вас есть для этого достаточно времени. Я использую Visual Studio в повседневной работе, но дома я использую Eclipse для небольших проектов и Emacs тоже. В тот момент, когда я подумывал об использовании Emacs, мои усилия были лучше направлены на выполнение реальной работы, чем на замедление моей борьбы с Emacs.
Я думаю, что до некоторой степени абсурдно думать, что все лучшие программисты используют Emacs. Есть много замечательных программистов, которые не так популярны (или, возможно, не умеют говорить), которые не используют Emacs.
источник
Я начал использовать Emacs около полутора лет назад, потому что это было слияние нескольких желаний - хотел работать с регулярными выражениями (в редакторе, который их поддерживал), хотел выучить лисп, хотел лучший редактор.
Редактирование кода с помощью регулярных выражений научило меня многому в поиске закономерностей в коде. К клавишам нужно было привыкнуть, но я летаю намного быстрее без мыши.
Emacs дал мне возможность продолжать работу с моими заметками и кодированием в одном приложении - минимальное переключение контекста означает минимальное переключение мозга, и я могу сосредоточиться на текущей задаче.
источник
Нет. Хороший код делает вас лучшим программистом.
Тем не менее, хорошее управление текстом - ключ к эффективности. Либо vim, либо emacs изменят то, как вы работаете с текстом - оба доказали свою эффективность, но почти не соответствуют друг другу с точки зрения стиля. Кроме того, эти дебаты довольно старые (вернемся к 80-м и 90-м годам, когда текст -> компилятор был ключевым), поэтому существует множество других текстовых редакторов и / или IDE, которые могут помочь вам стать лучшим программистом, которым вы можете быть.
источник
Нет. Если вы считаете, что использование emacs делает вас лучшим программистом, вы путаете причину и следствие.
Хотя я использую его ежедневно. Я считаю, что я более продуктивен с emacs + maven, чем с Eclipse для разработки java (хотя я все еще время от времени запускаю Eclipse для выполнения периодических сеансов рефакторинга или отладки).
Вот мои причины:
источник
Для меня основная причина, по которой я выбрал бы Emacs вместо IDE, заключается в том, что он позволяет мне делать все с моей клавиатуры. Это приятно тем, что экономит время, когда я обычно использую мышь. Кроме того, поскольку я нахожусь очень мобильным, у меня есть тенденция к прерыванию моего программирования "канавкой" из-за использования моей медленной сенсорной панели. Вдобавок его настройка делает его лучше для некоторых IDE. Однако, если вы обнаружите, что достаточно быстро программируете с IDE, я бы сказал, что кривая обучения Emacs не стоит проблем.
источник
Есть ли измеримая разница в навыках, производительности или удовольствии от программирования между людьми, которые зависят от IDE, и теми, кто этого не делает, или все это просто фанатизм?
Не думаю, что вы действительно могли бы получить на это ответ. Существует так много разных способов измерения навыков, продуктивности и удовольствия от программирования - и все они, вероятно, очень субъективны и / или не могут быть разбиты на ОДИН причину, вызывающую это или нет.
Это все еще интересный вопрос.
Лично я считаю - это зависит от программиста :)
G-Man
источник
Я не думаю, что это сделало бы вас лучшим программистом, но когда у вас ЭТО уровень, вы, скорее всего, будете использовать emacs (или vi)
: - /
Хорошая особенность этих двух (я никогда раньше не использовал emacs, но я все еще использую vi для самых простых задач) - это то, что они не прерывают ход ваших мыслей. , вам не нужно убирать руки из клавиатуру, чтобы захватить мышь, и поищите в меню файлов нужный вариант. Просто продолжай писать. В уме вы говорите что-то вроде: «Замени все вхождения этого слова на это», нажимаете ввод и продолжаете свою работу.
Кроме того, я не думаю, что они используют emacs - их единственный инструмент.
Сделало бы вас лучшим программистом? Возможно нет. Но когда у вас есть такой уровень знаний, вам, вероятно, понравится, насколько быстро вы сможете кодировать с помощью этих инструментов.
источник
Нет.
Дисциплина, критическое мышление и стремление к самосовершенствованию сделают вас лучшим программистом. Ваш набор инструментов, хотя и является основным фактором вашей производительности, не создаст гения.
Если вам не нравятся emacs или vi, не используйте их. Сделав сознательный выбор не делать этого, вы формируете среду разработки в соответствии со своими потребностями и методами работы. В любом случае вы имеете право использовать то, что вам нравится, и игнорировать любого, кто достаточно глуп, чтобы ругать вас за инструмент, который вы используете для записи битов на диск - важны биты.
Примечание. «Набор инструментов» здесь буквально означает «бренд» инструментов - конкретных редакторов, компиляторов и т. Д. Концептуальные наборы инструментов, например, использование контроля версий, модульное тестирование - все в целом - являются частью самоорганизации. процесс улучшения.
источник
Одна из замечательных особенностей emacs заключается в том, что он может обрабатывать практически любой тип файла, который вы ему добавляете, любого размера. По общему признанию, если вы открываете безумно огромный зашифрованный файл, он не обязательно будет полезен, но он откроется. Большинство редакторов (и IDE) доставят вам серьезную боль, если вы передадите им слишком большой файл и / или не один из их ожидаемых форматов.
Для примера попробуйте открыть файл размером 1 Гб в Блокноте.
Я начал использовать Emacs где-то в 1980 году, и он всегда был в моем наборе инструментов. Это не единственный инструмент, но это всегда то, к чему я могу обратиться и знать, что смогу выполнить некоторую полезную работу.
Обязательный подстрекательский комментарий : с другой стороны, мне нечего сказать о vi. Я всегда чувствовал, что vi с радостью убьет меня и продаст мои органы просто назло ....
В реальной жизни я использую Netbeans почти для всех форм разработки и время от времени использую emacs для быстрого редактирования. Практически нет ничего более удобного, чем emacs (для меня), когда дело доходит до выполнения чего-то безумного прямо сейчас.
Кому-нибудь еще приходилось редактировать статические строки в скомпилированных двоичных исполняемых файлах? Есть ли лучший инструмент для такого рода вещей, чем emacs? Это, безусловно, работает для меня.
источник
Я знаю, что вы об этом не спрашивали, но одна вещь, которая (неожиданно) улучшила для меня изучение emacs, - это управление командной строкой. До того, как я узнал о сочетаниях клавиш emacs, я использовал для перемещения курсора и навигации по истории с помощью клавиш курсора, потому что я не знал ничего лучшего. Это было что - то лампочку момент , когда я понял , что я мог бы использовать
backward-word
,move-beginning-of-line
иbackward-kill-word
(что я всегда обязанC-w
, как предполагает Stevey ) вbash
(M-t
часто бывает полезно также и наиболее впечатляющим для тех , кто никогда не видел его раньше).Я довольно много работаю над Solaris, где корневой оболочкой является «оболочка posix», и по умолчанию она не имеет привязок к emacs. Я обнаружил, что мои пальцы теперь печатают
exec bash
сами по себе, каждый раз, когда я вхожу в систему, я чувствую себя намного быстрее с уже знакомыми командами редактирования под своими пальцами.Должен признать, что книги Кнута все еще трудны (хотя оно того стоит) - так что я не думаю, что это волшебным образом улучшило мое программирование.
источник
Emacs сделал меня более эффективным при работе с текстом и навигации по файловой системе. И поскольку при программировании задействованы обе эти вещи, это сделало меня более эффективным (а значит, лучшим) программистом.
источник
Я думаю, что Emacs может сделать вас лучшим программистом, хотя и косвенно. Я думаю, что Emacs заставил меня писать на функциональном языке ( Elisp ), который заинтересовал меня другими функциональными языками ( Clojure ), что, как мне сказали, сделает меня лучшим программистом. Тем не менее, я полагаю, время покажет.
источник
Будучи в состоянии использовать некоторые настраиваемый редактор позволяет делать классные вещи, но Emacs , в частности , не обязательно Very Best Один из возможных. Я сам пользуюсь SlickEdit, я делаю с ним все те же странные полуавтоматические вещи, которыми славится emacs. Я видел, как люди делали похожие вещи с vi и различными редакторами для Windows.
Итак, да, наборы сокетов хороши, но утверждать, что Craftsman делает One True Socket Set, отчасти глупо.
источник
Освоение привязок клавиш Emacs и его встроенных функций позволит вам управлять текстом быстрее, чем в IDE, например Eclipse или Visual Studio.
Не верьте мне на слово, посмотрите эти видео про профессионалов, использующих Emacs .
Когда вы достигнете приличного уровня в Emacs, вы сможете эффективно редактировать любой язык: Java Script, Java, Ruby, Python, HTML, C, C ++ и т. Д.
Начало работы с Emacs - это головная боль, готовность к работе хуже, чем плохая. Конфигурация Emacs по умолчанию не предоставляет новичку в Emacs более мощные возможности Emacs (hippie-expand, etags, yasnippets и т.д.). Я предлагаю начать с точечных файлов Emacs Starter Kit .
Еще одна причина, по которой Стив Йегге утверждает, что лучшие программисты мира используют Emacs, - это elisp. Elisp позволяет опытному программисту легко расширять Emacs. Написать расширение в Eclipse или Visual Studio значительно сложнее, чем написать быструю функцию или даже новый второстепенный режим в elisp.
источник
Я считаю, что это большое заблуждение, что использование этих текстовых редакторов, таких как VI и Emacs, высоко ценится или необходимо для того, чтобы стать «великим программистом». Я всегда чувствовал, что IDE гораздо мощнее, чем раньше, и это действительно зависит от предпочтений и стиля.
источник
Я использовал emacs в колледже. это было около 16 лет назад. Я не оглядывался. Хотелось бы мне по-прежнему чувствовать себя комфортно с emacs, правда в том, что я довольно продуктивен со своей MS IDE.
опубликованный вами текст - это просто тролль. Ага. Для этого нет другой причины, кроме как начать религиозную войну.
источник
Я начал с emacs, но перешел на vi, который мне кажется более элегантным из-за своей простоты. Кроме того, если вы когда-нибудь застряли в однопользовательском режиме, команды ed являются подмножеством команд vi. Я не знаю, справится ли с этим emacs.
В этом отношении я думаю, что vi сделает вас лучшим программистом.
источник