Вторник, 11 Март 2008
Причина хорошоге кода в Vi/Emacs и плохого в IDE
Подумалось сейчас. В IDE(Microsoft Visual Studio, например) человек обложен инструментами настолько, что ему чрезвычайно просто работать с плохим кодом. Вместо проработки интерфейса он будет пользоваться автодополнением, которое подскажет, например.
Комментарии
а мне кажется что не только дело в инструментах, сколько в квалификации человека. квалифицированный специалист пишет хороший код и умеет выбирать инструмент под задачу, что в приципе часто его и приводит к emacs & vim
Форма комментирования для «Причина хорошоге кода в Vi/Emacs и плохого в IDE »
В точку.
Просто если человек использует ide это уже звоночек что он не квалифицированный.
Хм. Если честно, я ни разу не видел корреляции качества кода и того, в чём человек работает. Честно-честно. И вообще, с трудом верю в то, что эта связь есть.
Везло тебе общаться с достаточно грамотными людьми. Просто есть люди которые хотят писать wizzard’ами, и их код, как правило, не очень. И в случае ide писать wizzard’ами много проще, чем в случае emacs.
BTW, я очень уважаю визарды.
Они очень хороши, пока все делается wizzard’ами.
Т.е. я не видел wizzard’а результат работы которого можно было подпилить руками и продолжить визардить.
Точно подмечено (хотя на этом месте у меня дежа-вю), обложен средненького качества инструментами, позволяющими ему просто работать с кодом, не понимая процесса до конца (основное зло).
З.Ы.: Кир, у тебя надписи “Обязательное поле. Не больше 30 символов.” через строчки перелазит. Некрасиво. Может, просто звёздочки поставить на обязательных полях? И “Пожалуйста, введите символы, которые вы видите на картинке” ещё вылазит страшно.
Не очень понятно, как автодополнение может мешать проработке интерфейса.
Разумеется “мышовое” и “копипейст” программирование не рассматриваем.
Просто. С автодополнением тебе удобнее и не надо деражть в памяти. Без автодополнения надо держать в памяти. Т.е.ты будешь стремится делать более лаконичные интерфейсы, т.к. память не резиновая.
Имхо аргумент надуман. Безусловно, учиться программировать нужно в блокноте. Дабы понимать весь процесс до конца и не возникали ситуации, когда человек не может сделать что-то “без визарда”. А вот после учебы — почему бы не использвоать автокомплит, навигацию, рефакторинг и все прочие блага, предоставляемые ИДЕ? Кроме того, в случае обычного текстового редактора для использования новых сторонних библиотек приходится постоянно лазить в доки. Можно конечно выучить все интерфейсы всех используемых библиотек. Но имхо ресурсам мозга можно найти более рациональное применение. Кроме того каждый раз набирать пальцами имена классов, методов, переменных просто утомительно и однообразно.
Итого: Имея ИДЕ писать паршивый код гораздо легче, чем без нее (по многим причинам). Но беззапелляционно утверждать “использование ИДЕ” = “плохой код” неверно. ИДЕ здорово повышает производительность, экономит время, нервы, ресурсы мозга, позволяет отвлечься от непосредственно наисания рутинного кода и больше усилий направлять на проработку логики приложения.
Согласен.
Во-первых, где грань между учебой и нет. Во-вторых, это разжиряет. И мозг заплывает жиром и забивает на это. Попользовавшись автокомплитом мозгу будет тяжело продумать интерфейс. Он (мозг) теряет прыть.
Я вот часто держу 1-2 буфера с документацией, хотя пользуюсь “обычным текстовым редактором”
А если сделать минималистичный интерфейс будет не так утомительно. И знаешь — он будет проще.
Я не знаю не одного проекта в который сохранил бы простоту при использование IDE. Сможешь показать?
Правильно, идея полностью верна.
Не пользуешься встроенными инструментами/разными “плюшками” — придётся придерживаться строгих правил именования/создания интерфейсов/и тд. Чтобы в случае можно было заново “синтезировать” (т.е. придумать, используя выработанные правила) название нужной тебе сейчас функции. Не смог “вспомнить” — значит есть либо проблемы с дизайном (нет “интуитивной” ясности), либо тебе уже пора идти на кухню, посмотреть в окно и попить чаю :)
И ещё, любопытное наблюдение. С ростом опыта работы часто растёт и профессионализм. Помере роста последнего очень много людей переходят на emacs/vim (99%, imho), и потом заставить их пользоваться чем-то другим (каким-нибудь редактороми в IDE) уже невозможно. Что характерно, на этом этапе людям IDE уже не нужна (разве что сгенерировать дефолтный проект, либо формочки рисовать) — они сами прекрасно могут пользоваться/разобраться с разными билд-системами… Ну текст удобно набирать в специальных “текстовых редакторах” aka emacs/vim, а не в том, что предлагается обычному пользователю…
Тем более, что можно пользоваться одним редактором дома, на работе, на удалённой машине. Удобно? Для меня ещё как. Зачем тратить время на разные IDE, если один самый-самый редактор, который работает на всём, что шевелится?
Возможно, тут дело в пресловутом “пороге вхождения”. История в точь-в-точь как в школе: в школе человека чуть ли год учат (очень часто против его желания, стимулируя/мотивируя разными способами) писать буквы и цифры, и после обучения он пользуется ручкой/карандашом уже незадумываясь, и не может представить себя без этого простого, понятного и удобного в работе карандаша (любопытно, что они не задумываются, за плечами стоят месяца работы и обучения). То же и с emacs/vim — после изучения получаем “интуитивную”, удобную, понятную, и, главное, расширяемую и настраиваемую среду. Но не все это понимают — люди не хотят тратить время на что-то непонятное, сложное, и с “неясными” (на их взгляд) перспективами.
Конечно, не всё так плохо. Есть люди, которые постоянно пополняют знания и стараются разобраться со всем и вся. Именно это и отличает “настоящего” программиста от java monkey/c++ nerds/etc.
Подписываюсь. Можно как-то с вами пообщаться приватно? Вы можете написать мне на почту/jabber: catap@catap.ru
Лови пинг в джаббере.