Tuesday, 11 March 2008

Причина хорошоге кода в Vi/Emacs и плохого в IDE

Подумалось сейчас. В IDE(Microsoft Visual Studio, например) человек обложен инструментами настолько, что ему чрезвычайно просто работать с плохим кодом. Вместо проработки интерфейса он будет пользоваться автодополнением, которое подскажет, например.

Write on: 13:26 | 14 comments | | tags: , , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Comments

alexott-ru 17.03.2008 14:11

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

reply
Kirill A. Korinskiy 17.03.2008 18:56

В точку.

Просто если человек использует ide это уже звоночек что он не квалифицированный.

reply
asd 18.03.2008 13:34

Хм. Если честно, я ни разу не видел корреляции качества кода и того, в чём человек работает. Честно-честно. И вообще, с трудом верю в то, что эта связь есть.

reply

Comment form for «Причина хорошоге кода в Vi/Emacs и плохого в IDE »

Required. 30 chars of fewer.

Required.

Kirill A. Korinskiy 18.03.2008 16:55

Везло тебе общаться с достаточно грамотными людьми. Просто есть люди которые хотят писать wizzard’ами, и их код, как правило, не очень. И в случае ide писать wizzard’ами много проще, чем в случае emacs.

reply
asd 17.06.2008 14:53

BTW, я очень уважаю визарды.

reply
Kirill A. Korinskiy 17.06.2008 15:11

Они очень хороши, пока все делается wizzard’ами.

Т.е. я не видел wizzard’а результат работы которого можно было подпилить руками и продолжить визардить.

reply
evg_krsk 17.03.2008 17:17

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

З.Ы.: Кир, у тебя надписи “Обязательное поле. Не больше 30 символов.” через строчки перелазит. Некрасиво. Может, просто звёздочки поставить на обязательных полях? И “Пожалуйста, введите символы, которые вы видите на картинке” ещё вылазит страшно.

reply
maxp 17.06.2008 14:49

Не очень понятно, как автодополнение может мешать проработке интерфейса.

Разумеется “мышовое” и “копипейст” программирование не рассматриваем.

reply
Kirill A. Korinskiy 17.06.2008 15:12

Просто. С автодополнением тебе удобнее и не надо деражть в памяти. Без автодополнения надо держать в памяти. Т.е.ты будешь стремится делать более лаконичные интерфейсы, т.к. память не резиновая.

reply
xap4o 9.07.2008 21:33

Имхо аргумент надуман. Безусловно, учиться программировать нужно в блокноте. Дабы понимать весь процесс до конца и не возникали ситуации, когда человек не может сделать что-то “без визарда”. А вот после учебы — почему бы не использвоать автокомплит, навигацию, рефакторинг и все прочие блага, предоставляемые ИДЕ? Кроме того, в случае обычного текстового редактора для использования новых сторонних библиотек приходится постоянно лазить в доки. Можно конечно выучить все интерфейсы всех используемых библиотек. Но имхо ресурсам мозга можно найти более рациональное применение. Кроме того каждый раз набирать пальцами имена классов, методов, переменных просто утомительно и однообразно.

Итого: Имея ИДЕ писать паршивый код гораздо легче, чем без нее (по многим причинам). Но беззапелляционно утверждать “использование ИДЕ” = “плохой код” неверно. ИДЕ здорово повышает производительность, экономит время, нервы, ресурсы мозга, позволяет отвлечься от непосредственно наисания рутинного кода и больше усилий направлять на проработку логики приложения.

reply
Kirill A. Korinskiy 10.07.2008 1:02

Безусловно, учиться программировать нужно в блокноте. Дабы понимать весь процесс до конца и не возникали ситуации, когда человек не может сделать что-то “без визарда”.

Согласен.

А вот после учебы — почему бы не использвоать автокомплит, навигацию, рефакторинг и все прочие блага, предоставляемые ИДЕ?

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

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

Я вот часто держу 1-2 буфера с документацией, хотя пользуюсь “обычным текстовым редактором”

Кроме того каждый раз набирать пальцами имена классов, методов, переменных просто утомительно и однообразно.

А если сделать минималистичный интерфейс будет не так утомительно. И знаешь — он будет проще.

Итого: Имея ИДЕ писать паршивый код гораздо легче, чем без нее (по многим причинам). Но беззапелляционно утверждать “использование ИДЕ” = “плохой код” неверно. ИДЕ здорово повышает производительность, экономит время, нервы, ресурсы мозга, позволяет отвлечься от непосредственно наисания рутинного кода и больше усилий направлять на проработку логики приложения.

Я не знаю не одного проекта в который сохранил бы простоту при использование IDE. Сможешь показать?

reply
m 16.11.2008 14:36

Правильно, идея полностью верна.

Не пользуешься встроенными инструментами/разными “плюшками” — придётся придерживаться строгих правил именования/создания интерфейсов/и тд. Чтобы в случае можно было заново “синтезировать” (т.е. придумать, используя выработанные правила) название нужной тебе сейчас функции. Не смог “вспомнить” — значит есть либо проблемы с дизайном (нет “интуитивной” ясности), либо тебе уже пора идти на кухню, посмотреть в окно и попить чаю :)

И ещё, любопытное наблюдение. С ростом опыта работы часто растёт и профессионализм. Помере роста последнего очень много людей переходят на emacs/vim (99%, imho), и потом заставить их пользоваться чем-то другим (каким-нибудь редактороми в IDE) уже невозможно. Что характерно, на этом этапе людям IDE уже не нужна (разве что сгенерировать дефолтный проект, либо формочки рисовать) — они сами прекрасно могут пользоваться/разобраться с разными билд-системами… Ну текст удобно набирать в специальных “текстовых редакторах” aka emacs/vim, а не в том, что предлагается обычному пользователю…

Тем более, что можно пользоваться одним редактором дома, на работе, на удалённой машине. Удобно? Для меня ещё как. Зачем тратить время на разные IDE, если один самый-самый редактор, который работает на всём, что шевелится?

Возможно, тут дело в пресловутом “пороге вхождения”. История в точь-в-точь как в школе: в школе человека чуть ли год учат (очень часто против его желания, стимулируя/мотивируя разными способами) писать буквы и цифры, и после обучения он пользуется ручкой/карандашом уже незадумываясь, и не может представить себя без этого простого, понятного и удобного в работе карандаша (любопытно, что они не задумываются, за плечами стоят месяца работы и обучения). То же и с emacs/vim — после изучения получаем “интуитивную”, удобную, понятную, и, главное, расширяемую и настраиваемую среду. Но не все это понимают — люди не хотят тратить время на что-то непонятное, сложное, и с “неясными” (на их взгляд) перспективами.

Конечно, не всё так плохо. Есть люди, которые постоянно пополняют знания и стараются разобраться со всем и вся. Именно это и отличает “настоящего” программиста от java monkey/c++ nerds/etc.

reply
Kirill A. Korinskiy 17.11.2008 0:21

Подписываюсь. Можно как-то с вами пообщаться приватно? Вы можете написать мне на почту/jabber: catap@catap.ru

reply
m 17.11.2008 14:34

Лови пинг в джаббере.

reply