2009-07-06 3 views
2

Я использую IDE для разных языков на протяжении многих лет (VS, IntelliJ, Eclipse, NetBeans, FlashDevelop и т. Д.), И я всегда находил их медленными и загроможденными (да, я знаю, что окна могут быть скрыты, перегруппированы и что не). Недавно, однако, я узнал и стал опытным с VIM и использовал его для максимально возможного количества проектов.Как отделить себя от IDE до текстового редактора?

Моя проблема в том, что я очень привязан к различным функциям, предоставляемым IDE (intellisense, рефакторинг, встроенные документы, список). Есть ли у кого-нибудь советы, как я могу преодолеть эти костыли и стать действительно свободными от IDE?

+21

"Костыли"? Честно? – womp

+1

Я видел костыли, потому что многие базовые функции, необходимые для работы данной платформы, часто скрываются от программиста, и в случае необходимости возникает необходимость изменения части проекта без доступа к среде IDE, если разработчики не знакомы с тем, как все работает за кулисами, им будет трудно это сделать. Это суть моего вопроса. –

+3

Хе-хе, я бы взял эти костыли в любой день для производительности вместо того, чтобы носить с собой все рамки внутри моей головы. Используемый, чтобы иметь возможность сделать это, но в наши дни с такими платформами, как .NET framework, настолько огромная, я даже не попробую. Intellisense - это хорошо :). –

ответ

46

Я не понимаю, почему вы хотели бы стать свободной IDE? Почему программирование, как и 20 лет назад, было добродетелью? Похоже, вы просто хотите сделать это, потому что это то, что делают все «uber» программисты. Intellisense, рефакторинг и т. Д. - все это огромные эволюции, которые повышают производительность. Наша работа достаточно сложна для моделирования сложных бизнес-задач, почему вы хотите сделать это сложнее с более низкой средой разработки?

+10

Мы могли бы также отказаться от языков программирования и написать вместо этого машинный код ;-) – jpoh

+1

Heheh ... 10010010000010010011101000100100100100010010010 .. <- просто ерунда ... :-P –

+2

+1. Я еще не стал свидетелем пользователя Vim или Emacs, который может выполнять обычные операции редактирования быстрее меня. – FogleBird

3

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

2

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

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

+3

Возможно, но очень медленно ... :) – dkretz

+0

Если бы вы уложили всех разработчиков, использующих IDE, все было бы намного удобнее. – GalacticCowboy

1

Думаю, вопрос будет «почему?».

Я стараюсь не использовать IDE, когда я пытаюсь изучить новый язык. Прямо сейчас я использую gedit для изучения C, но даже с этим я использую подсветку линий и кронштейнов, автоматическую вкладку и подсветку синтаксиса + некоторые пользовательские скрипты сборки/запуска.

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

Используйте простой текстовый редактор, когда ваше программирование - это сам конец.

3

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

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

+0

+1 Это единственный ответ, который я вижу, на самом деле отвечает на вопрос. После того, как вы привыкнете к API, синтаксису и т. Д. (Который имеет опыт), вам больше не нужно полагаться на IDE, чтобы напомнить вам больше. Другие программы иногда могут заменить функции IDE, например. получить доступ к документации в веб-браузере или выполнить компиляции в терминале. –

+0

Опять же, если ваша работа является экспертом по программированию UNIX-драйверов, и вы пишете все в хорошем стиле «K & R C», у вас нет массивной, развивающейся инфраструктуры гигантов, с которой вы часто сталкиваетесь. NET и Java. –

9

Некоторые быстрые подсказки, которые работали для меня

  • запоминанию все пространство API Я работаю в
  • использование вывода консоли отладки
  • Использование поиска и замены для Rename-рефакторинга
  • кол скобы, parens вручную, чтобы убедиться, что они соответствуют
+4

Говорите о том, чтобы быть неэффективным программистом. Если один из моих разработчиков запомнил API .NET, я бы задался вопросом, почему он потратил впустую все это время и не работал над созданием интересных сайтов. – Jim

+0

+1 Я делаю M-x новый кадр, хватаю его, а потом избиваю своих коллег, если у них есть гал, чтобы остановить, прерывая меня, только чтобы спросить: «Как мне отменить поиск в CString?» –

+3

Хо ирония ... люблю это! – Newtopian

3

Вы можете использовать модульную систему, такую ​​как JEdit или Emacs. Эти программы являются текстовыми редакторами, но доступны для почти полного применения в стиле IDE.Подготовьте его так, чтобы он чувствовал себя максимально комфортно, а затем начинайте удалять расширения, которые, как вы думаете, можете обойтись, один за другим.

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

0

Редакторы? Иды? Реальные программисты используют бабочек. src

2

Я приобрел viEmu для Visual Studio, и я использую jVi для NetBeans. Там также есть vim-плагин для Eclipse, но я прекратил его использовать, потому что он отставал от моего компьютера и иногда пропускал мои нажатия клавиш, которые были очень непродуктивными. Делая это, мне не нужно выбирать между vim и IDE. Плагины vim являются эмуляторами и поэтому не идеальны, но у них есть все самые важные функции, которые я нахожу.

2

Мне кажется, что вы недовольны скоростью IDE, и вам нужно что-то так же быстро, как текстовый редактор (с низким объемом памяти), но все же может быть продуктивным.

Игнорирование вопроса о том, стоит ли это делать (что может быть установлено только при сопоставлении производительности, которое действительно варьируется от человека к человеку и может варьироваться в зависимости от команды, а также от языка), вот некоторые идеи для создания он работает:

Используйте текстовый редактор с подсветкой синтаксиса. Они обычно доступны (например, Notepad ++) и не замедляют работу. Поскольку они основаны на регулярных выражениях, они имеют точность только 95 +%, но достаточно хороши.

Далее, найдите возможность создания сценариев кода. Для Java существует BeanShell или, возможно, предпочитает язык Ruby или Python, который имеет это по своей сути, и разрабатывает/ищет макросы, которые позволяют вам выбирать кусок текста и передавать его на бегун сценария (чтобы быстро проверить синтаксис, когда вы не уверены). В зависимости от языка также может быть довольно тривиально получить макрос, который выбирает вызов API и определяет, как открыть документацию в окне браузера.

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

Это не моя чашка чая, но люди, которых я видел, которые производят таким образом, следуют по этому пути.

8

@Jason Miesionczek: Я надеюсь, вы понимаете, что с помощью текстового редактора является отличным способом, чтобы узнать гайки и болты и движущиеся части, необходимые для компиляции что-то полезное - но нет никакого способа, чтобы быть продуктивным. Как вы подразумеваете в своем вопросе - Intellisense, рефакторинг и другая автоматизация действительно полезны - поэтому не предоставляйте эти функции только потому, что они «скрывают» определенные механизмы.

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

@ все остальные: Я думаю, что ОП уже разъяснил, что он хочет знать, как он может преодолеть способность IDE «скрыть» механизмы кодирования и создания приложений. Я думаю, что это верный момент, особенно для продуктов Microsoft, потому что существует автоматическая автоматизация SO MUCH, иногда я даже не знаю, какие файлы необходимо проверить в исходном управлении ...

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

+2

+1 для "Фермеры используют тракторы" – GalacticCowboy

14

Если вы используете Windows, то нет необходимости переключаться на VIM. Однако в UNIX/Linux оболочка IS IDE.

Важнейшим моментом является то, что VIM является только текстовым редактором. Не делайте в этом все.

  1. Ваша оболочка (BASH и т.д.) для управления файлами и каталогами.

    • Вы не можете победить интеграцию с оболочкой, которую вы получаете с помощью SVN/CVS/Git/etc.
  2. управления Окно может быть сделано с GNU Screen или с помощью BASH управления заданиями (^ Z, фг, вд)

  3. IntelliSense доступна для VIM/Emacs, но никогда не недооценить мощность только встроенного автозавершения.

    • ли INTELLISENSE автозаполнения имена столбцов в запросе строк?
  4. Самые современные инструменты рефакторинга в большинстве Иды детская игра по сравнению с , что я могу сделать с клавиатурных макросов в Emacs.

  5. встроенные документы: Если вы делаете программирования C/Perl затем доступные страницы человека, как правило, достаточно.

    • Создание макроса смотреть вверх функции под курсором легко.
+1

+1; Shell + Editor = ~ Unix IDE. Большинство других ответов, похоже, поступают от программистов Windows, где оболочки не являются частью культуры. Приманку такого рода рабочих процессов было бы трудно понять, не испытав этого. – guns

+0

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

+1

Я бы сказал, что кривая обучения для полнофункциональной IDE, такой как Eclipse или Visual Studio, столь же крутая. И с реальной макросистемой, как то, что приходит в Emacs, вам не нужно делать программу рефакторинга, просто сделайте это один раз и продолжайте нажимать C-xe. –

1

Как отучить себя от? Я считаю, что все начинается с хорошего сценария сборки. Знать, как сделать сборку, FAST, из командной строки является ключевым. Это одно место, где IDE удерживают вас. Если вы не делаете свои собственные сборки, и вы даете автогену IDE все это для вас, вы упускаете большую гибкость.

Поэтому вместо запоминания пространства API изучите язык сборки и как запустить компилятор и компоновщик так, как вы хотите. Продолжайте использовать вашу среду IDE для редактирования. Затем, когда вы с этим согласны, вы можете переключиться на любой редактор, который вам нравится, без особых трений. Но IMO, если вы начнете редактирование в другом редакторе, но используйте IDE для выполнения своих сборок, вам будет намного хуже, особенно если вы в конечном итоге решите, что среда действительно хороша для чего-то!

1

Установите emacs и не оглядывайтесь назад.

+4

Я почти ниспроверг это, Церковь Emacs - это зло! – poundifdef

+1

Там нет никакого способа оглянуться назад с emacs. Если вы не написали плагин LISP для этого. –

+0

@ rascher Это не церковь ... это собор Бриллиантов! @Dave Markle Chortle побуждая. –

0

Возможно, вы получите много возможностей IDE в VIM, если узнаете, как правильно его настроить. Но в конечном итоге вопрос: ПОЧЕМУ вы хотели бы это сделать?Зачем возиться с конфигурацией для каждого проекта, когда у вас уже есть что-то работающее, что намного проще в IDE. Я думаю, что время будет намного лучше потрачено на изучение любого языка, который вы используете, а не на изучение использования текстового редактора, насколько это возможно.

0

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

В Linux я всегда использую оболочку для выполнения всего. manpages для документации (о, как я пропустил это при кодировании в Windows), grep to ... er, «grep» файлы, скрипты, чтобы делать полезные вещи и т. д.

Попробуйте найти внешние инструменты, которые выполняют задания, которые вы выполняете хотите, чтобы VIM сделал, что ваша раздутая IDE сделала для вас. Модульная хорошая.

1

Это Mac OS X, но я люблю TextMate. Это текстовый редактор с «полуавтоматическим завершением» и несколькими ярлыками для документов и т. Д. Таким образом, вы можете получить некоторую помощь, если хотите, но это текстовый редактор.

2

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

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

В этой заметке я немного разочарован тем, что Visual Studio не имеет встроенной поддержки типов файлов, таких как .ini, .cmd, .bat, .reg и т. Д. похоже, что это было бы тривиально добавить и заставит разработчиков с большей вероятностью полагаться на этот редактор для всего.

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

2

Я думаю, кажется, вы должны спрашивать " что делает IDE для меня? " и «что является альтернативой [раздутой IDE выбора]?» и «Как я могу узнать, как IDE делает эти вещи?»

So.

  1. vim делает много опрятных вещей помимо «редактирования». vim будет делать автоматический отступ (==) и некоторые автозаполнения (ctrl-P). Когда вы делаете код, это то, что вы делаете прямо там.

  2. Вы можете написать свои скрипты сборки вручную. Не то, что это особенно эффективный способ сделать это, но вы получаете огромную оценку за то, что делает затмение в фоновом режиме. Кроме того, вы будете иметь полный контроль над зависимостями и точно знать, как работает процесс сборки. Больше нет: «Я не могу даже построить его без чистых бобов!»

  3. Это значит, что вы узнаете make или одну из java-скриптов-вещей (муравьев?). Вы можете определенно написать java-скрипты в make и в любом случае сделать чертовски полезными.

  4. Если вы пишете код C, indent - довольно полезный инструмент, хотя довольно печальная печать vim достаточно хороша.

  5. Узнайте Grep для поиска в файлах (особенно -n, -R и --color варианты!) В качестве дополнительного бонуса, вы начнете обучение регулярных выражений.

0

Вы можете использовать как IDE, так и текстовый редактор.

IDE для рефакторинга, документирования, поиска, использования, интеграции инструментов построения, бесшовного перехода по различным технологиям (да, идеи), интеграции задач/выпуска, интеграции отслеживания времени, экспериментов с использованием кода/библиотек.

Текст для ... хорошо .. независимо от того, что вас радует, и в случаях, когда у вас нет IDE, например, командной строки ssh, машины тестирования/интеграции (это когда вы хотите иметь построить инструмент под рукой и не полагаться на IDE для задач сборки).

3

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

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

С другой стороны, если вы действительно любите программировать - если программирование - это то, что вы увлечены, и что бы вы сделали это бесплатно, даже если никто не заплатил вам - и вы планируете проецировать всю свою жизнь до тех пор, пока ваши пальцы больше не работают, а затем изучите VI.

Есть VI сценарии, которые вы можете скачать, которые дают вам intellisense, рефакторинг и т. Д. Но IMO, безусловно, самая большая победа с VI - это способность записывать и воспроизводить макросы.

Макросы дают вам крылья, как Red Bull. Типы движений, которые вы делаете для редактирования текста, могут показаться странными, когда вы их сначала изучите, но когда вы начнете вставлять их в последовательности и воспроизводить эти последовательности в виде макросов, вы начнете понимать, что эти странные нажатия клавиш (капитал A чтобы поместить курсор в конец строки текста - 0, чтобы поместить его в начале - w, чтобы пропустить слово - и т. д.), похожи на маленькие анимационные роботы Anime, которые могут собраться в гигантский зверь Transformer, который может уничтожить любую проблему преобразования текста, которую вы бросаете на нее.

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

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

Вы получите из этого то, что вы положили в него. Это верно во всех сферах человеческой деятельности, и это верно здесь. Положите время и силы на изучение VI, и вы окажетесь в мире эффективной кодировки, о существовании которой вы даже не знали.

p.s.Я забыл упомянуть еще об одном: что происходит, когда язык X, тот, который вы программируете, выходит из моды? Время изучать другую IDE. Если вы не знаете VI, в этом случае ваш старый друг все еще с вами.

1

Я не рекомендую вам бросать IDE. Переход от IDE к блокноту может быть довольно болезненным (вы пропустите Intellisense и точки останова LOT). Единственный способ отказаться от IDE - удалить их и начать с блокнота. Опять же: я не рекомендую. IDE предназначены для того, чтобы сделать вас более продуктивными, и они используют эти скучные задачи, которые мы не хотим делать (создание кода для пустой формы, событий для кнопки и т. Д.).

Я использую Блокнот для написания небольших dll в C++ и ... о! Я очень скучаю по Intellisense и прекрасной среде IDE, которая исправляет мои синтаксические ошибки ...

0

Я думал, что Visual Studio 2K5 и 2K8 чувствуют себя медленно и «раздуты», пока не перейдут на жесткий диск среднего уровня.

После того, как вы убедитесь, что у вас много ОЗУ, установка вашей IDE на скоростном диске часто является одним из лучших улучшений производительности, которые вы можете сделать - возможно, даже более, чем скорость процессора. См.: http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx

После обновления до SSD и внесения некоторых изменений, связанных с SSD, в Windows, Visual Studio 2005 загружается так же быстро, как текстовый редактор для меня на 2,4-гигабайтном ноутбуке Core 2 Duo.

Нужно ли нам покупать дорогой диск только для быстрого запуска «современной» IDE, когда uber-3l337 UN1x c0derz с радостью запускает EMACS на 386 с 32 МБ ОЗУ? Что ж, не стоит сомневаться в том, что множество кодеров чрезвычайно продуктивны без IDE, многие из них, чем IDE-жокеи. Больше власти им. Но если вы предпочитаете использовать IDE и кодирование, как вы зарабатываете себе на жизнь, должно ли несколько сотен долларов стать преступником? Думаю, вам решать, но стоит подумать.

Смежные вопросы