Сможет ли Emacs сделать меня лучшим программистом? [закрыто]


130

Стив Йегге написал комментарий в своем блоге :

Все величайшие инженеры мира используют Emacs. Типы, изменившие мир. Не та великая девчонка в кубе рядом с тобой. Не Фред, потрясающий парень в коридоре. Я говорю о величайших разработчиках программного обеспечения в нашей профессии, которые изменили облик отрасли. Джеймс Гослинги, Дональд Кнутс, Пол Грэхемы, Джейми Завинскис, Эрик Бенсоны. Настоящие инженеры используют Emacs. Вы должны быть достаточно умными, чтобы использовать его правильно, и это сделает вас невероятно сильным, если вы сможете его освоить. Если вы мне не верите, посмотрите через плечо Пола Нордстрома, пока он работает. Это настоящее открытие для тех, кто всю свою карьеру использовал IDE, подобные Visual Blub. NET.

Emacs - редактор, которому уже 100 лет.

В последний раз я использовал текстовый редактор для написания кода примерно 1000 лет назад, когда все еще писал HTML в Блокноте. С тех пор я более или менее зависел от IDE, поскольку всю свою карьеру использовал Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio и Eclipse.

Для чего это стоит, я уже пробовал Emacs, и мой опыт был испорченная один из его полного отсутствия вне коробки обнаруживаемых функций. (По-видимому, есть команда Emacs для обнаружения других команд Emacs, которую я, кстати, не нашел - это как прожить свою собственную жестокую шутку в стиле Дзен.) Я пытался сделать себя похожей на программу в течение хорошего месяца, но в конце концов решил, что мне лучше использовать конструкторы графического интерфейса с перетаскиванием, IntelliSense и интерактивную отладку.

Трудно отделить факты от фанатизма, поэтому я пока не готов принимать комментарии Егге за чистую монету.

Есть ли измеримая разница в навыках, производительности или удовольствии от программирования между людьми, которые зависят от IDE, и теми, кто этого не делает, или все это просто фанатизм?


22
Также стоит отметить, что Пол Грэм использует vi; Егге сам предлагает это исправление в сноске в связанной статье.
Эли Кортрайт,

16
Из всех редакторов, которые я использовал, Emacs - единственный, который говорит вам, как запускать учебник каждый раз, когда он запускается (пока вы не научитесь достаточно, чтобы он перестал сообщать вам, как запускать учебник).
Майкл Паулуконис,

16
Что означает EMACS? Избегайте Meta Alt Control Shift! ;-)
Питер К.

24
Выбор терминологии: Emacs - это «редактор для программистов», а не просто «текстовый редактор». В IDE с графическим интерфейсом пользователя также есть возможность редактировать текст, но они не являются простыми текстовыми редакторами. Сравнивать Блокнот и Emacs - все равно что сравнивать ... бросать камень чем-то с попаданием во что-то из этого оружия на Звезду Смерти.
Грег Мэттес,

8
Очевидно, некоторые люди не понимают разницы между корреляцией и причинностью
Чубас

Ответы:


119

Прежде всего позвольте мне сказать, что я искренне верю в культ Emacs.

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

Но другие люди поступают иначе, и, как они говорят, «Ничего страшного».


73
Согласовано. Я люблю Emacs, но думать, что Emacs сделает вас лучшим программистом, все равно, что думать, что использование клюшек для гольфа Тайгера Вудса сделает вас лучшим игроком в гольф, или использование гитары Эдди Ван Халена сделает вас лучшим музыкантом.
Кристофер Джонсон,

31
Категорически не согласен с приведенным выше комментарием Кристофера. Использование инструментов великого спортсмена / художника определенно не сделает вас таким же великим, как они. Но использование ПРАВИЛЬНЫХ инструментов программирования для ПРАВИЛЬНОЙ работы определенно поможет! Возможно, вас простят за то, что вы приравняли программирование к спорту и искусству. :)
Susheel Javadi

6
@Bart: Его точка зрения состоит в том, что существует множество «правильных инструментов». Клюшки для гольфа Tiger Wood - отличный инструмент и идеально подходят для работы, но есть и другие клюшки, которые могут дать такие же результаты. Инструмент, который использует хороший программист, не определяет их, в отличие от их творческих способностей и способностей.
Сет Мур,

9
Я думаю, что весь смысл утверждения Стива в том, что великие программисты используют emacs, а хорошие разработчики программного обеспечения более продуктивны, используя IDE. Великий программист всегда программирует, даже при написании кода они автоматизируют задачи, им нравятся make, ant, bash, perl и hudson. Они знают, что ручные задачи в любой части цикла разработки программного обеспечения подвержены ошибкам. Великие программисты также знают, что если кто-то другой создает ваш код (например, IDE или кто-то другой), вы всегда зависите от его навыков, когда дело доходит до поддержки кода (например, IDE или кто-либо еще),
Эрнелли

4
Стив Йегге - парень, который написал полный синтаксический анализатор JavaScript в elisp, поэтому нет никаких сомнений в том, что он чокнутый в отношении Emacs :)
Тихон Джелвис

106

Он (Стив Йегге) подробно рассказал об этом по частям в других своих публикациях. http://steve-yegge.blogspot.com/2008_04_01_archive.html , вероятно, является наиболее исчерпывающим, но информация скрыта там, поскольку она касается основной темы.

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


15
Разница в энергии, необходимой для расширения IDE. В emacs все файлы конфигурации являются программными файлами elisp. По сути, входной барьер смехотворно низок (просто измените свой файл .emacs)
shsmurfy

18
В том же духе, что и Ангус. Не нужно бесконечно возиться с хорошей IDE, чтобы выполнить свою работу. В хорошей среде IDE должны быть все необходимые функции. Конечно, вы можете настроить ярлыки и макет, но вам не нужно писать кучу скриптов, чтобы все обрабатывать.
Kibbee

5
Ангус: ты прав. Если вам нужно лажать с добавлением вещей вместо того, чтобы выполнять свою работу, вы упустили суть - Emacs или нет. Сол: Это не только расширение, но и отправка исходного кода через внешние программы. На самом деле, это вовсе не такой мощный механизм расширения.
Джонатан Аркелл,

15
Разница между расширением emacs и расширением netbeans, visual studio или eclipse заключается в скорости. Добавление расширений в eclipse похоже на написание всего приложения. Для сравнения: написание расширения для emacs может быть одной строкой кода.
Джастин Таннер,

4
@supercheetah - выглядит очень примитивно по сравнению с intellisense в Visual Studio, например, значки, показанные рядом с доступными членами, полезны! Лично я без сильной поддержки рефакторинга мало интересовался Emacs.
si618

57

Лучшие программисты используют vi или emacs, потому что самые опытные программисты - лучшие, и 20 лет назад не было особого выбора, кроме vi и emacs.

Начав работать с vi (около 1987 г.) на машине с очень медленным текстовым терминалом, я через несколько лет перешел на (GNU) Emacs (на более быстрой машине) и почти исключительно использовал его почти 10 лет.

Emacs был первой действительно интегрированной средой разработки - весь цикл редактирования / компоновки / компиляции можно было контролировать в emacs, и вы могли использовать свой собственный для любого используемого компилятора.

В настоящее время IDE, такие как eclipse, еще лучше интегрированы (честно говоря: emacs отстой с графикой), но Emacs по-прежнему остается одной из лучших сред для «чистого» редактирования текста.


10
+1 за самоисполняющееся пророчество в первом абзаце.
OregonGhost,

12
«самые опытные программисты - лучшие» - это очень далеко от истины, по крайней мере, косвенно. Я не говорю, что неопытные программисты лучше, но то, что он делает то же самое более 20 лет, НЕ означает, что он делает это хорошо.
AviD

7
20 лет назад было много разных редакторов. Большинство из них просто не выжили, как правило, по уважительной причине. Почему парень, который использовал vi или emacs в 1989 году, лучше, чем парень, который использовал какой-нибудь редактор на базе MS-DOS в 1989 году, или что, черт возьми, я использовал на мэйнфрейме Control Data?
Дэвид Торнли

Черт возьми, 10 лет назад не было хорошей Java IDE!
Susheel Javadi 05

Насколько я помню, 20 лет назад vi и emacs были преобладающими редакторами - то, что тогда (как и сейчас) было много редакторов, не означает, что все они использовались одинаково широко.
FinnNk

34

Улучшение вашего ясного мышления и решения проблем сделает вас лучшим программистом. Никакая программа не может этого сделать.

Использование лучшего молотка не поможет мне построить более красивый дом, если я не знаю, как и почему. ;)


Хорошая аналогия тому, что я тоже хотел сказать.
Роб

21
Но плохой молоток разрушит вашу продуктивность при попытке построить тот же дом, и вы, вероятно, получите другой дом.
user51568

Это честно! Обычному программисту будет не намного лучше с дорогим молотком.
Джас Панесар,

5
Хороший программист может построить отличный дом, используя камень вместо молотка. (Он медлителен, но все еще может это сделать.: D)
Эгон,

Да, но наличие редактора, который позволяет коду естественным образом вытекать из вас (что, я думаю, Emacs лучше, чем большинство редакторов), может улучшить ваше ясное мышление и, следовательно, решение проблем.
Skilldrick

21

Егге нужно встретиться с Биллом Джоем. Он не только один из величайших программистов в мире, но и написал большие куски vi. В vi.

Короткое постыдное признание: после 20 лет использования vi (и vim / gvim в последние годы) для всего, в последний год или около того я начал использовать Eclipse для редактирования java (и Thunderbird для электронной почты), хотя на моей нынешней работе я У машины так мало памяти, что я обычно использую vi, кроме случаев, когда мне нужен отладчик.


7
+1 для vi (на самом деле, используйте vim, но такая же разница). Это 98% того, что emacs может сделать менее чем за половину усилий.
rmeador

25
Пользуюсь vim 5 лет. Через 20 минут в Emacs я поклялся, что никогда не вернусь. Вим чувствует себя задом наперед.
MattBelanger

5
Сам Егге упоминает об этом: [Единственное примечательное исключение - это VIM, который также очень мощный, судя по всему, хотя у меня нет опыта с ним. Если вы уже отдали предпочтение vi перед emacs, возможно, вы почувствуете большее удовлетворение, получив опыт работы с VIM. Psh] Источник: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062

1
Эээ ... Билл Джой больше не использует vi.
Plumenator 01

13

Есть ли измеримая разница в навыках, производительности или удовольствии от программирования между людьми, которые зависят от IDE, и теми, кто этого не делает, или все это просто фанатизм?

Давайте просто сузим это до 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, и более комфортно. Я рекомендую тот же подход к изучению новых языков (программирования): поскольку вы не знаете словаря (стандартная библиотека), говорите, что все сложно, но награда все еще ожидает вас на горизонте.


1
«Давайте просто сузим это до Visual Studio и Emacs - в противном случае вопрос будет слишком широким, и я подозреваю, что большинство людей (по крайней мере, здесь, в StackOverflow) знакомы с этими двумя». -- В самом деле? Я думал, что есть еще много ярых фанатиков-фанатов вроде меня, которых не заставили бы использовать VisualStudio, а тем более использовать ее добровольно. Хмм.
Xiong Chiamiov

"перемещение курсора с помощью Ctrl- [fbnp] - настоящее благо". Хотя я люблю Emacs, вернувшись к нему после долгого перерыва, я считаю перемещение курсора таким образом наименее полезным и удобным аспектом повторного использования Emacs. Напротив, я могу дотянуться до выделенных клавиш курсора и найти их, не глядя и даже не думая. Может быть, быть пианистом помогает? :) Но кто знает, со временем, возможно, C-scrunch-letter станет более естественным.
Грег Хендершотт

2
ps насчет шеллов и платформ полностью согласен. Если вы хотите перейти между Windows, OS X и Linux, тогда вам понадобится Cygwin на первом и Emacs на всех трех. Бросьте свой .emacs.d на GitHub, и вы станете золотым.
Грег Хендершотт

Кроме того, вы можете выполнить поиск, который включает символы новой строки в Visual Studio с использованием регулярных выражений
Axarydax

10

С цитируемым текстом, начинающимся «Все величайшие инженеры мира используют Emacs», я бы тоже не стал принимать это за чистую монету. Знает ли он всех величайших инженеров мира? Это тот же список величайших инженеров мира, что и у вас или у меня?

После изучения такой мощный редактор, как EMACS или vi, сделает вас более продуктивным или, по крайней мере, более эффективным, если вы окажетесь без любимой IDE.

Убийца - это «однажды выученная» часть. Чтобы продуктивно использовать эти инструменты, нужно много работать и практиковаться, и вначале это очень сложно.


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

9

Лично я фанат Emacs, но Emacs - это всего лишь инструмент. Это не сделает вас лучшим программистом, не больше, чем супер-модное перо сделает вас лучшим писателем.

Уточнение, что «великие программисты» адаптируют свою среду под себя, может иметь некоторые достоинства, но многие инструменты могут это сделать (например, vim и SlickEdit), поэтому в Emacs в этом отношении нет ничего особенного.

Я думаю, что, скорее всего, верно то, что «великие программисты» увлечены программированием, и люди, увлеченные им, как правило, находят инструменты, которые помогают развить эту страсть. Emacs (а также vim, SlickEdit и др.) Является таким инструментом.


Супер-модные ручки заставляют меня чувствовать себя как Хемингуэй.
Cheeso

2
Что особенного в Emacs в отношении «адаптации среды», так это то, что сделать это в Emacs намного проще, чем в Vim или SlickEdit. (или любой другой редактор, о котором я знаю)
Веданг,

8

Я не верю, что есть разница, это скорее вопрос предпочтений.

Однако я заметил, что чем дольше вы кодируете или чем ниже уровень кода, тем выше вероятность того, что вы использовали emacs или vi.


Выражение «дольше вы кодировали», похоже, является аргументом в пользу того, что вы начали кодировать до того, как появились хорошие IDE.
Пол Томблин,

3
Есть такая вещь, как хорошая IDE, сынок?
Дэвид Торнли,

8

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

Больше знаний об инструментах более низкого уровня часто приводит к большей стабильности кода, так как меньше шансов случайно "пойти против течения". Несправедливо просто указать EMACS как единственный ведущий индикатор, поскольку он исходит из целого ряда языков и инструментов и на самом деле больше касается глубины понимания, а не конкретной технологии.

Раньше вы либо изучали VI или EMACS на системах UNIX, либо специализировались на ПК (хорошо, были также VMS, CMS, AS400 и т. Д., Но это были старые технологии). Оба потока привлекли очень увлеченных людей, но ребята из UNIX были склонны хотеть сложного решения, в то время как парни ПК просто хотели, чтобы это было сделано быстро. Культуры были очень разными.


7

ИМХО IDE, как правило, оптимизированы для конкретной платформы, языка или ОС: Eclipse JDT отлично подходит для Java, Visual Studio ориентирована на C ++ /. NET и т. Д. Они очень помогают продуктивности (опять же ИМХО), если вы работаете только над эта платформа, но если вы меняете платформы, вам нужно в основном изучить новую IDE (или, по крайней мере, новый набор плагинов, представлений, перспектив, и я не знаю, что еще для Eclipse).

Преимущество знания emacs, Textmate, vim (мои личные предпочтения) или любого универсального редактора заключается в том, что навыки, приобретенные вами в этом редакторе, применяются независимо от того, для какой платформы вы пишете. Они оптимизированы для редактирования текста , и как только вы освоите их, вы сможете очень эффективно редактировать текст на любом языке.

Также Йегге утверждает, что великие программисты адаптируют свои инструменты к своему стилю работы, а не наоборот. Я думаю, что это победа для универсальных редакторов, потому что вы настраиваете один редактор, вместо того, чтобы решать, как адаптировать четыре разных IDE, чтобы все они вели себя так, как вы хотите.


Проблема возникает, когда вам нужно писать на платформе, отличной от той, на которой вы были: например, вы переходите с * nix на Windows, и ваши сценарии ломаются, потому что они предполагали оболочку bourne с путями на основе '/' в FHS-подобная структура с печатью на основе PostScript ...
SamB,

Я уже довольно давно работаю с emacs, и мне достаточно одного движения курсора, чтобы негодовать писать что-либо еще, даже если это электронная почта в KMail.
Arne Babenhauserheide

@ArneBabenhauserheide - это одна из причин, по которой я люблю Mac OS X, почти все текстовые поля поддерживаются C-[npfbaed]. (Но, к сожалению, нет M-)
porglezomp

6

Я бы сказал, что лучшие программисты, как правило, тратят время на настройку своей среды, что ускоряет / упрощает выполнение задач, которые они могут выполнять. Emacs - один из самых мощных редакторов, когда дело доходит до настройки вашей среды. У него крутая кривая обучения, но, как только вы его преодолеете, практически нет предела тому, что вы можете сделать для себя.

Кто-то однажды сказал, что лучшие программисты - ленивые; те, которые, когда им нужно сделать что-то более одного раза, находят способ автоматизировать это, чтобы это требовало меньше усилий. Emacs позволяет вам быть очень и очень ленивым;)


4

Я использовал IDE с самого начала (возможно, начав с QBASIC) и много-много лет. Сейчас я почти полностью перешел на VIM (в различных вариантах) для всей своей разработки, и я не жалею об этом. Моя продуктивность определенно увеличилась.

Разумеется, конструктор Windows Forms из Visual Studio ничто не заменит. Но по сравнению с VIM (и, я уверен, Emacs) текстовый редактор внутри Visual Studio действительно никуда не годится. Как только вы освоите чистую мощь консоли и инструментов разработчика GNU (я имею в видуmake GCC binutilsиgdb , а затем некоторые) вы заметите , что эти инструменты могут выглядеть примитивно , но они как раз наоборот, и на самом деле предлагают все инструменты, которые предоставляет IDE (ну, кроме дизайнера форм).

Просто у вас впереди очень крутой подъем, когда вы впервые начнете использовать эти инструменты, и стимул может быть небольшим. Мне повезло (?), Что меня заставили использовать эти инструменты, поэтому у меня не было выбора, от которого я мог бы избавиться.


3

Лично я считаю, что вы должны использовать то, что делает вас более продуктивным. Если у вас нет времени вкладывать деньги в проект, чтобы сидеть и изучать Emacs, то это, вероятно, не лучшее использование вашего времени в тот момент.

Однако я считаю, что лучше познакомиться с другими IDE, когда у вас есть для этого достаточно времени. Я использую Visual Studio в повседневной работе, но дома я использую Eclipse для небольших проектов и Emacs тоже. В тот момент, когда я подумывал об использовании Emacs, мои усилия были лучше направлены на выполнение реальной работы, чем на замедление моей борьбы с Emacs.

Я думаю, что до некоторой степени абсурдно думать, что все лучшие программисты используют Emacs. Есть много замечательных программистов, которые не так популярны (или, возможно, не умеют говорить), которые не используют Emacs.


3

Я начал использовать Emacs около полутора лет назад, потому что это было слияние нескольких желаний - хотел работать с регулярными выражениями (в редакторе, который их поддерживал), хотел выучить лисп, хотел лучший редактор.

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

Emacs дал мне возможность продолжать работу с моими заметками и кодированием в одном приложении - минимальное переключение контекста означает минимальное переключение мозга, и я могу сосредоточиться на текущей задаче.


3

Нет. Хороший код делает вас лучшим программистом.

Тем не менее, хорошее управление текстом - ключ к эффективности. Либо vim, либо emacs изменят то, как вы работаете с текстом - оба доказали свою эффективность, но почти не соответствуют друг другу с точки зрения стиля. Кроме того, эти дебаты довольно старые (вернемся к 80-м и 90-м годам, когда текст -> компилятор был ключевым), поэтому существует множество других текстовых редакторов и / или IDE, которые могут помочь вам стать лучшим программистом, которым вы можете быть.


3

Нет. Если вы считаете, что использование emacs делает вас лучшим программистом, вы путаете причину и следствие.

Хотя я использую его ежедневно. Я считаю, что я более продуктивен с emacs + maven, чем с Eclipse для разработки java (хотя я все еще время от времени запускаю Eclipse для выполнения периодических сеансов рефакторинга или отладки).

Вот мои причины:

  • Фактический опыт редактирования текста в emacs превосходит все остальное. Удивительно, как быстро вы можете сделать так много, используя только клавиатуру. Eclipse больше ориентирован на мышь, и когда вы печатаете, вы сталкиваетесь с множеством раздражающих препятствий.
  • Возможность настраивать emacs с помощью elisp невероятно мощна. Я пойду еще дальше и скажу, что если вы не тратите время на изучение элементарного elisp и настройку своей среды, вы просто зря теряете время.
  • Существуют расширения практически для всего, что вы когда-либо хотели бы делать в текстовом редакторе.

1
+1 для корреляции! = Причинно-следственная связь
Сюн Кьямиов

Какой режим Java вы используете?
avendael

1
Я использую стандартный режим java, который поставляется с Emacs23, с некоторыми настройками и приемами для запуска сборок maven. Я также начал использовать emacs-eclim, который действует как мост между emacs и eclipse. Это красиво и удобно, но пока довольно грубо.
fred-o

3

Для меня основная причина, по которой я выбрал бы Emacs вместо IDE, заключается в том, что он позволяет мне делать все с моей клавиатуры. Это приятно тем, что экономит время, когда я обычно использую мышь. Кроме того, поскольку я нахожусь очень мобильным, у меня есть тенденция к прерыванию моего программирования "канавкой" из-за использования моей медленной сенсорной панели. Вдобавок его настройка делает его лучше для некоторых IDE. Однако, если вы обнаружите, что достаточно быстро программируете с IDE, я бы сказал, что кривая обучения Emacs не стоит проблем.


2

Есть ли измеримая разница в навыках, производительности или удовольствии от программирования между людьми, которые зависят от IDE, и теми, кто этого не делает, или все это просто фанатизм?

Не думаю, что вы действительно могли бы получить на это ответ. Существует так много разных способов измерения навыков, продуктивности и удовольствия от программирования - и все они, вероятно, очень субъективны и / или не могут быть разбиты на ОДИН причину, вызывающую это или нет.

Это все еще интересный вопрос.

Лично я считаю - это зависит от программиста :)

G-Man


Фанбой, чувак. IDE - это не редактор. IDE не обязательно должен быть лучшим редактором.
Perpetualcoder

2

Я не думаю, что это сделало бы вас лучшим программистом, но когда у вас ЭТО уровень, вы, скорее всего, будете использовать emacs (или vi)

: - /

Хорошая особенность этих двух (я никогда раньше не использовал emacs, но я все еще использую vi для самых простых задач) - это то, что они не прерывают ход ваших мыслей. , вам не нужно убирать руки из клавиатуру, чтобы захватить мышь, и поищите в меню файлов нужный вариант. Просто продолжай писать. В уме вы говорите что-то вроде: «Замени все вхождения этого слова на это», нажимаете ввод и продолжаете свою работу.

Кроме того, я не думаю, что они используют emacs - их единственный инструмент.

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


Охота в меню предназначена для людей, не знающих IDE. Не знаю, когда в последний раз мне приходилось «искать» пункт меню.
tster

Как вы думаете, использование "Файл-> Сохранить" лучше, чем Ctrl-S? Я так не думаю. Необходимость схватить мышь, щелкнуть по файлу меню и затем переместить мышь вниз, чтобы сохранить запись, мне кажется много, когда вы можете сделать это, не беря руки за клавиатуру.
OscarRyz

очевидно я согласен. Все IDE, которые я использовал, имеют обширные и настраиваемые горячие клавиши и комбинации, как и emacs.
tster

2

Нет.

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

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

Примечание. «Набор инструментов» здесь буквально означает «бренд» инструментов - конкретных редакторов, компиляторов и т. Д. Концептуальные наборы инструментов, например, использование контроля версий, модульное тестирование - все в целом - являются частью самоорганизации. процесс улучшения.


2

Одна из замечательных особенностей emacs заключается в том, что он может обрабатывать практически любой тип файла, который вы ему добавляете, любого размера. По общему признанию, если вы открываете безумно огромный зашифрованный файл, он не обязательно будет полезен, но он откроется. Большинство редакторов (и IDE) доставят вам серьезную боль, если вы передадите им слишком большой файл и / или не один из их ожидаемых форматов.

Для примера попробуйте открыть файл размером 1 Гб в Блокноте.

Я начал использовать Emacs где-то в 1980 году, и он всегда был в моем наборе инструментов. Это не единственный инструмент, но это всегда то, к чему я могу обратиться и знать, что смогу выполнить некоторую полезную работу.

Обязательный подстрекательский комментарий : с другой стороны, мне нечего сказать о vi. Я всегда чувствовал, что vi с радостью убьет меня и продаст мои органы просто назло ....

В реальной жизни я использую Netbeans почти для всех форм разработки и время от времени использую emacs для быстрого редактирования. Практически нет ничего более удобного, чем emacs (для меня), когда дело доходит до выполнения чего-то безумного прямо сейчас.

Кому-нибудь еще приходилось редактировать статические строки в скомпилированных двоичных исполняемых файлах? Есть ли лучший инструмент для такого рода вещей, чем emacs? Это, безусловно, работает для меня.


1
В то время как Visual Studio полностью упустила бы эту возможность и вместо этого ограничилась бы копанием вашего кошелька, чтобы увидеть, есть ли свободные деньги.
Роб

Извините, я не знаю. Я использую Netbeans почти все время и emacs, когда мне это нужно.
Боб Кросс

2

Я знаю, что вы об этом не спрашивали, но одна вещь, которая (неожиданно) улучшила для меня изучение emacs, - это управление командной строкой. До того, как я узнал о сочетаниях клавиш emacs, я использовал для перемещения курсора и навигации по истории с помощью клавиш курсора, потому что я не знал ничего лучшего. Это было что - то лампочку момент , когда я понял , что я мог бы использовать backward-word, move-beginning-of-lineи backward-kill-word(что я всегда обязан C-w, как предполагает Stevey ) в bash( M-tчасто бывает полезно также и наиболее впечатляющим для тех , кто никогда не видел его раньше).

Я довольно много работаю над Solaris, где корневой оболочкой является «оболочка posix», и по умолчанию она не имеет привязок к emacs. Я обнаружил, что мои пальцы теперь печатают exec bashсами по себе, каждый раз, когда я вхожу в систему, я чувствую себя намного быстрее с уже знакомыми командами редактирования под своими пальцами.

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


Чувак, мне действительно нужно узнать больше об этих трюках ... В любом случае, разве вы не можете изменить свою оболочку входа в систему, или вы действительно имели в виду «оболочку для пользователя root», когда говорили «оболочка root»? Если да, то почему вы входите в систему как root ???
SamB

2

Emacs сделал меня более эффективным при работе с текстом и навигации по файловой системе. И поскольку при программировании задействованы обе эти вещи, это сделало меня более эффективным (а значит, лучшим) программистом.


2

Я думаю, что Emacs может сделать вас лучшим программистом, хотя и косвенно. Я думаю, что Emacs заставил меня писать на функциональном языке ( Elisp ), который заинтересовал меня другими функциональными языками ( Clojure ), что, как мне сказали, сделает меня лучшим программистом. Тем не менее, я полагаю, время покажет.


Это действительно старый стиль Лиспа (только с динамическим и без лексической области видимости), но он определенно может многому научить. И это может быть довольно хороший текстовый редактор в те дни, когда он действительно работает правильно!
SamB

1

Будучи в состоянии использовать некоторые настраиваемый редактор позволяет делать классные вещи, но Emacs , в частности , не обязательно Very Best Один из возможных. Я сам пользуюсь SlickEdit, я делаю с ним все те же странные полуавтоматические вещи, которыми славится emacs. Я видел, как люди делали похожие вещи с vi и различными редакторами для Windows.

Итак, да, наборы сокетов хороши, но утверждать, что Craftsman делает One True Socket Set, отчасти глупо.


Кстати, я мог бы попробовать SlickEdit, если бы не бездумный маркетинг: «10 причин не использовать SlickEdit - №1: вам нравится быть плохим программистом. №2: вы хотите тратить больше, чтобы делать меньше. # 3: ты инбредный придурок и т. д. и т. д. и т. д. и т. д. и т. д. и т. д.
Джульетта

Я попал в Slick до того, как у него появился маркетинг; просто это был единственный настоящий редактор, работавший в то время под OS / 2 3.0. Вероятно, это примерно по той же причине, что и все остальные парни используют emacs ...
mjfgates

1

Освоение привязок клавиш 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.


вопрос в том, зачем вообще его использовать? Если человек счастлив, чувствует себя комфортно и продуктивно, зачем тратить время и силы на изучение emacs? Я бы предпочел выучить новый язык программирования или исследовать новые технологии, чем изучать старый редактор, хотя и мощный. В сутках всего 24 часа, используйте время с умом.
sarsnake

Еще я хотел бы отметить, что это также зависит от используемой вами технологии. Есть ли в Emacs Intellisence? Я использовал его в колледже на машинах UNIX, и я уверен, что с тех пор он изменился. Но для .NET Intellisence НЕОБХОДИМ. Нет НИКАКОГО способа запомнить ВСЕ имена функций во всех классах во всех пространствах имен. И я уверен, что не буду заходить в MSDN каждый раз, когда мне нужно найти имя функции. Если Emacs предлагает Intellisence, я бы рассмотрел это.
sarsnake

1

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


0

Я использовал emacs в колледже. это было около 16 лет назад. Я не оглядывался. Хотелось бы мне по-прежнему чувствовать себя комфортно с emacs, правда в том, что я довольно продуктивен со своей MS IDE.

опубликованный вами текст - это просто тролль. Ага. Для этого нет другой причины, кроме как начать религиозную войну.


0

Я начал с emacs, но перешел на vi, который мне кажется более элегантным из-за своей простоты. Кроме того, если вы когда-нибудь застряли в однопользовательском режиме, команды ed являются подмножеством команд vi. Я не знаю, справится ли с этим emacs.

В этом отношении я думаю, что vi сделает вас лучшим программистом.


Emacs ДЕЙСТВИТЕЛЬНО имеет режим Mx vi, хотя, я подозреваю, что это была своего рода шутка ...
Брайан Постоу

Знание основ vi необходимо для системного администрирования. Однако это не программирование.
Xiong Chiamiov
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.