Чи зробить Emacs мене кращим програмістом? [зачинено]


130

Стів Єгге написав коментар у своєму блозі :

Усі найбільші інженери світу використовують Emacs. Типи, що змінюють світ. Не той великий гал в кубі поруч. Не Фред, дивовижний хлопець по залі. Я говорю про найбільших розробників програмного забезпечення нашої професії, тих, хто змінив обличчя галузі. Джеймс Гослінгс, Дональд Кнутс, Пол Грахамс, Джеймі Завінськіс, Ерік Бенсонс. Справжні інженери використовують Emacs. Ви повинні бути настільки розумними, щоб добре ним користуватися, і це робить вас неймовірно потужними, якщо ви зможете це опанувати. Подивіться через плече Пола Нордстрома, коли він працює колись, якщо ви мені не повірите. Це справжнє відкриття очей для тих, хто використовував Visual Blub .NET-подібних IDE протягом усієї своєї кар'єри.

Emacs - 100-річний редактор.

Востаннє, коли я використовував текстовий редактор для написання коду, повертався, коли я ще писав HTML у Блокноті близько 1000 років тому. З тих пір я був більш-менш залежним від IDE, використовуючи Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio та Eclipse протягом усієї своєї кар’єри.

Що я того вартував , я спробував Emacs, і мій досвід був розчарувальним через його повну відсутність можливостей, які можна знайти в коробці. . вирішив, що замість цього я матиму дизайнери графічного інтерфейсу з перетягуванням, IntelliSense та інтерактивну налагодження.

Важко відокремити факт від фанбоїзму, тому я ще не бажаю брати коментарі Йегге за номінальну вартість.

Чи є вимірна різниця у вмінні, продуктивності чи задоволенні від програмування між людьми, які залежать від ІДЕ, та тими, хто цього не робить, чи це все лише фанбоїзм?


22
Варто також зазначити, що Пол Грехем використовує vi; Йегге пропонує сам цей виправлення у виносці у пов'язаній статті.
Eli Courtwright

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

16
Що означає EMACS? Escape Meta Alt Control Shift! ;-)
Пітер К.

24
Термінологія вибору ніт: Emacs є "редактором програмістів", а не простим "текстовим редактором". GUI IDE також мають можливість редагувати текст, але вони не є простими текстовими редакторами. Порівнювати Блокнот з Emacs - це як порівнювати ... кидати рок чимось, аби щось вдарити цим пістолетом зірки Смерті.
Грег Маттес

8
Очевидно, що деякі люди не розуміють різниці між співвідношенням і причинним
зв’язком

Відповіді:


119

Спершу дозвольте сказати, що я є справжньою вірою в культ Емака.

Це сказало, що блогер горіх. Ви пишете те, що вважаєте корисним. Я вважаю, що Emacs допомагає мені, головним чином тому, що я витратив свої коледжні роки, попередньо сплачуючи початкові витрати на навчання, як модифікувати його відповідно до моїх потреб, і пристосовуючи себе до його потреб.

Але інші люди роблять справи по-іншому, і, як вони кажуть "Це нормально".


73
Домовились. Я люблю Emacs, але думати, що Emacs зробить тебе кращим програмістом, це як думати, що використання клубів для гольфу Тігра Вудса зробить тебе кращим гольфістом, або використання гітари Едді Ван Халена зробить тебе кращим музикантом.
Крістофер Джонсон

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

6
@Bart: Його суть полягає в тому, що існує кілька "правильних інструментів". Гольф-клуби Tiger Wood - це чудовий інструмент та ідеально підходить для роботи, але є й інші клуби, які можуть забезпечити ті самі результати. Інструмент, який використовує хороший програміст, не визначає їх, їх творчість та здібності.
Сет Мур

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

4
Стів Йегге - той хлопець, який написав повний аналізатор JavaScript в Елісп, тому немає сумніву, що він гайок, наскільки йде Emacs :)
Tikhon Jelvis

106

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

Я думаю, підводячи підсумок: програмісти, які є просто хорошими або компетентними , підберуть IDE і дізнаються його дійсно добре, і, можливо, будуть робити це досить пристойно, але вони обмежуватимуться тим, що IDE забезпечує для них. Іншими словами, вони пристосовуються до IDE. З іншого боку, великі програмісти пристосовуватимуть своє середовище під себе , таким чином, як написання сценаріїв або власних інструментів чи розширення своїх інструментів. І до останнього моменту, не тільки Emacs є найбільш розширюваним середовищем, але це також найпростіше середовище, яке існує там, і це середовище, де ви отримуєте найбільшу користь від його розширення - ваші розширення інтегруються в Emacs так, як вони є запасними характеристиками, і тому ваші майбутні розширення можуть базуватися на попередніх (вигляд із позитивного зворотного зв’язку - цикл).


15
Різниця полягає в енергії, необхідній для розширення IDE. У програмах emacs усі файли конфігурації - це програмні файли elisp. Тож по суті, бар'єр для вступу є смішно низьким (просто змініть файл .emacs)
shsmurfy

18
По тих же лініях, що і Ангус. Хороший IDE не повинен нескінченно поводитися, щоб виконати роботу. Хороший ІДЕ повинен мати всі функції, які потрібно. Звичайно, ви можете налаштувати ярлики та макет, але вам не потрібно писати купу сценаріїв, щоб обробити все.
Kibbee

5
Ангус: ти маєш рацію. Якщо вам доведеться закручуватися, додаючи речі, замість того, щоб виконувати свою роботу, ви пропустили суть - Emacs чи ні. Sol: Існує більше розширення, ніж надсилання джерела через зовнішні програми. Насправді це зовсім не такий потужний механізм розширення.
Джонатан Аркелл

15
Різниця між розширенням emacs та розширенням netbeans, візуальної студії чи затемнення - швидкість. Додавання розширень до затемнення - це як написання всієї програми. Для порівняння написання розширення для emacs може бути одним рядком коду.
Джастін Таннер

4
@supercheetah - виглядає дуже примітивно порівняно з інтелігенцією, знайденою у 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

З того, що я пам’ятаю 20 років тому, vi та emacs були переважно домінуючими редакторами - тільки тому, що редакторів було багато (як зараз), не означає, що вони були однаково широко використовувані.
FinnNk

34

Поліпшення чіткого мислення та вирішення проблем зробить вас кращим програмістом. Жодна програма не може цього зробити.

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


Хороша аналогія тому, що я хотів сказати.
Роб

21
Але поганий молоток зіпсує вашу продуктивність при спробі побудувати той самий будинок, і ви, ймовірно, опинитесь в іншому будинку.
користувач51568

Це справедливо! Пересічний програміст не подобається набагато краще зі дорогим молотком.
Джас Панесар

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.
Плуменатор

13

Чи є вимірна різниця у вмінні, продуктивності чи задоволенні від програмування між людьми, які залежать від ІДЕ, та тими, хто цього не робить, чи це все лише фанбоїзм?

Давайте просто обмежимо це на Visual Studio vs. 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 "інтегруватися" з "все" (пошук файлів з пошуку / пошуку, пошук тексту за допомогою grep, контроль версій за допомогою svn / git / hg / ..., ви називаєте це).

Остаточний вердикт - ви повинні дізнатися emacs чи ні? І це все фанбоїзм? Якщо у вас є час, я б сказав, що завжди варто вивчити нові способи робити те саме, адже новий спосіб може виявитися краще для вас. І я закликаю вас не відмовлятись у тому, що, як видається, коли ви абсолютно новачки. У цьому сенсі це як перехід на розкладку клавіатури Dvorak: спочатку ви повільніше, але як тільки ви досягнете швидкості, ви, швидше за все, будете настільки ж швидкі, як на qwerty, і комфортніше. Я рекомендую той самий підхід до вивчення нових (програмування) мов: тому що ви не знаєте словникового запасу (стандартної бібліотеки), сказати, що важко, але нагорода все ще є на горизонті, який чекає на вас.


1
"Давайте просто обмежимо це на Visual Studio vs. Emacs --- питання занадто широке, інакше я підозрюю, що більшість людей (принаймні тут, на StackOverflow) знайомі з цими двома". - Дійсно? Я подумав, що є набагато більше шалених фанбоїв * nix, як я, які не будуть змушені використовувати VisualStudio, а тим більше використовувати добровільно. Грн.
Xiong Chiamiov

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

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
Чи є таке поняття, як хороший ІДЕ, синку?
Девід Торнлі

8

Хоча IDE стали набагато кращими за останнє десятиліття, вони все ще містять програмування в трохи безпечному «бульбашці», далеко від дещо гірших деталей. Те, що має тенденцію відбуватися, - це те, що збільшення абстракції дозволяє більшій кількості програмістів робити більше, маючи менше знань. Це, звичайно, стосується не всіх програмістів, але простіші інструменти приносять програмування широкій аудиторії.

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

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


7

Ідентифікатори IDHO IMHO, як правило, оптимізовані навколо певної платформи або мови або ОС: Eclipse JDT відмінно підходить для Java, Visual Studio - C ++ /. NET-орієнтований і т. Д. Вони значно допомагають продуктивності (знову IMHO), якщо ви працюєте тільки над цю платформу, але якщо ви змінюєте платформи, ви повинні в основному вивчити новий 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 перемагає все інше. Дивно, як швидко ви можете так багато досягти, використовуючи лише клавіатуру. Затьмарення більш орієнтоване на мишу, і коли ви набираєте, ви стикаєтеся з великою кількістю дратівливих корчів.
  • Можливість налаштувати emacs за допомогою elisp неймовірно потужна. Я піду так далеко, щоб сказати, що якщо ви не витрачаєте часу на вивчення рудиментарного еліпса та налаштування свого середовища, ви просто витрачаєте свій час.
  • У текстовому редакторі є практично всі розширення.

1
+1 для кореляції! =
Причинний

Який режим java ви використовуєте?
avendael

1
Я використовую режим акцій java, який постачається з Emacs23, з деякими налаштуваннями та хаками для запуску Maven-білдів. Я також почав використовувати emacs-eclim, який є мостом між emacs та затемненням. Це приємно і корисно, але на даний момент досить грубо.
fred-o

3

Для мене основною причиною я обрав би Emacs над IDE, тому що він дозволяє мені робити все лише з моєї клавіатури. Це приємно тим, що це економить деякий час, коли я зазвичай використовую мишу. Крім того, оскільки я вважаю себе дуже мобільним, у мене є тенденція переривати моє програмування "канавка" через використання моєї повільної сенсорної панелі. Крім того, його налаштування змушує мене світитись над деякими ІДЕ. Однак якщо ви виявите, що програмуєте досить швидко за допомогою IDE, я б сказав, що крива навчання Emacs не стоїть на цьому клопоту.


2

Чи є вимірна різниця у вмінні, продуктивності чи задоволенні від програмування між людьми, які залежать від ІДЕ, та тими, хто цього не робить, чи це все лише фанбоїзм?

Я не думаю, що ти справді можеш отримати відповідь на це. Існує так багато різних способів виміряти вміння, продуктивність та задоволення від програмування - і всі вони, ймовірно, дуже суб'єктивні і / або не можуть бути розбиті на ОДНУ річ, викликаючи це чи ні.

Це все ще цікаве питання.

Моя особиста віра - це залежить від програміста :)

G-Man


Фенбої чувак. IDE не є редактором. IDE не повинен бути найкращим редактором.
Perpetualcoder

2

Я не думаю, що це зробить вас кращим програмістом, але коли у вас ТОЙ рівень, ви, швидше за все, будете використовувати emacs (або vi)

: - /

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

Крім того, я не думаю, що використання emacs є їх єдиним інструментом.

Чи зробить вас кращим програмістом? Напевно, ні. Але коли ви володієте таким рівнем знань, напевно, вам сподобається, як швидко ви можете кодувати за допомогою цих інструментів.


Полювання в меню призначене для людей, які не знають IDE. Я не знаю, коли останній раз мені довелося «полювати» на варіант меню.
tster

Отже, ви вважаєте, що використання "File-> Save" краще, ніж Ctrl-S? Я не думаю, що так. Якщо потрібно схопити мишу, натисніть на файл меню, а потім перемістіть мишу вниз, щоб зберегти запис, мені здається, що це можна зробити, не беручи до рук клавіатуру.
OscarRyz

очевидно, я згоден. Усі IDE, якими я користувався, мають широкі та налаштовані гарячі клавіші та комбінації, як і emacs.
tster

2

Немає.

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

Якщо вам не подобаються emacs або vi, не використовуйте їх. Роблячи свідомий вибір не робити, ви формуєте своє середовище розвитку, щоб відповідати власним потребам та практиці роботи. У будь-якому випадку, ви маєте право використовувати те, що вам подобається - і ігнорувати того, хто досить дурний, щоб вас лаяти за інструмент, який ви використовуєте для запису бітів на диск - це біти, які мають значення.

Примітка: "Набір інструментів" тут означає, буквально, "марку" інструментів - конкретних редакторів, компіляторів і т. Д. Концептуальні набори інструментів, наприклад, використання контролю версій, тестування одиниць - загалом - є частиною самостійної роботи, процес удосконалення.


2

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

Спробуйте відкрити файл 1 Gig в Блокноті для прикладу.

Я почав використовувати Emacs десь близько 1980 року, і це завжди був інструментом у моїй панелі інструментів. Це не єдиний інструмент, але це завжди те, до чого я можу звернутися і знати, що мені вдасться виконати якусь корисну роботу.

Обов’язковий запальний коментар : З іншого боку, я нічого хорошого не можу сказати про vi. Я завжди відчував, що ви з радістю вб'ють мене і продають мої органи просто не зважаючи на ...

У реальному житті я використовую Netbeans майже для всіх форм розвитку, і я раз у раз використовую emacs для швидкого редагування. Там майже нічого немає, що було б настільки ж зручно, як emacs (для мене), коли мова йде про те, щоб зробити щось божевільне зараз.

Хтось ще мусив редагувати статичні рядки у складених бінарних виконуваних файлах? Чи є кращий інструмент для подібних речей, ніж emacs? Це, безумовно, працює для мене.


1
Тоді як Visual Studio повністю пропустить таку можливість, а замість цього задовольниться, нарізаючи ваш гаманець, щоб побачити, чи є запасні гроші.
Роб

Вибачте, я б не знав. Я використовую Netbeans майже весь час і emacs, коли мені це потрібно.
Боб Крос

2

Я знаю, що ви цього не запитували, але одне, що вивчало Emacs (несподівано) для мене покращилося, це маніпулювання командним рядком. Перш ніж дізнатися про зв'язки клавіш Emacs, я переміщував курсор і переміщувався по історії за допомогою клавіш курсору, тому що краще не знав. Це був щось з лампового моменту, коли я зрозумів, що можу використовувати backward-word, move-beginning-of-lineі backward-kill-word(до чого я завжди зобов’язаний C-w, як пропонує Стіві ) в bash( M-tчасто теж корисний і найбільше вражає тих, хто цього ніколи не бачив).

Я дуже багато працюю над Solaris, де коренева оболонка є "оболонкою posix", і не має за замовчуванням прив’язок emacs. Я вважаю, що мої пальці тепер набирають exec bashвласного бажання, щоразу, коли я входжу, так набагато швидше я відчуваю себе з уже знайомими командами редагування під пальцями.

Потрібно визнати, однак, я все ще вважаю книги Кнут важкими (хоч і варті) - тому я не думаю, що це магічно покращило моє програмування.


Людина, мені справді потрібно навчитися більше цих хитрощів ... У будь-якому випадку, чи не можеш ти змінити свою оболонку входу чи ти насправді мав на увазі "оболонку для кореневого користувача", коли ти сказав "коренева оболонка"? Якщо так, то чому ви входите як root ???
СамБ

2

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


2

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


Це дійсно старий стиль Ліспа (лише динамічний і не має лексичного обстеження), але він, безумовно, має багато чого навчити. Це, і це може бути досить приємний текстовий редактор у ті дні, коли він насправді працює правильно!
СамБ

1

Можливість користуватися деяким настроюваним редактором дозволяє робити вишукані речі, але, зокрема, emacs не обов'язково є найкращим можливим. Я сам користувач SlickEdit, я роблю все ті ж дивні напівавтоматизовані речі, якими славиться emacs. Я бачив, як люди роблять подібні речі з vi та різними редакторами на базі Windows.

Так, так, розетка справляється добре, але стверджуючи, що Майстер робить 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. Я пропоную почати з точкових файлів Emacs Starter Kit .

Ще одна причина, по якій Стів Йегге стверджує, що кращі програмісти у світі використовують Emacs, - це Elisp. Elisp дозволяє досвідченому програмісту легко розширити Emacs. Написати розширення в Eclipse або Visual Studio значно складніше, ніж написати швидку функцію або навіть новий другорядний режим у elisp.


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

Я ще хотів би зазначити, що це також залежить від технології, яку ви використовуєте. Чи має Emacs Intellisence? Я використовував його в коледжі на машинах UNIX, і я впевнений, що він змінився з тих пір. Але для .NET Intellisence ОБОВ'ЯЗКОВО. Немає жодного способу запам’ятати ВСІ імена функцій у всіх класах у всіх просторах імен. І я впевнений, що MSDN не працюватиму щоразу, коли мені потрібно шукати ім'я функції. Якщо Emacs пропонує Intellisence, я би вважав це.
сарна змія

1

Я вважаю, що це велике хибне уявлення про те, що використання таких текстових редакторів, таких як VI та Emacs, дуже важливо або потрібно, щоб стати "великим програмістом". Я завжди відчував, що ІДЕ є надзвичайно потужним, ніж раніше, і це справді зводиться до уподобань та стилю.


0

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

текст, який ви опублікували, - це просто троль. Так. Немає іншої причини для цього, як розпочати релігійну війну.


0

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

Тож я думаю, що ви робите вас кращим програмістом.


У Emacs НЕ є Mx vi-mode, хоча, я підозрюю, що це був якийсь жарт ...
Brian Postow

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