Comments 21
Очень хорошо перекликается с недавно опубликованной тут статьёй и показывает что по уровню гиковости программисты неравны: бывают настоящие хардкордщики, которые создают интерфейсы, которыми не могут пользоваться даже их более молодые коллеги (которые ближе по своему восприятию мира к «нормальным людям»)…
+2
К сожалению, природа человека такова, что он всё излишне усложняет. Поэтому если над тобой никто не будет стоять с дубинкой, и сильно п*здить за глупости, за некачественную работу, за переусложнение — большинство будет писать говнокод. Вы, кстати, не замечали, что «говнокод» — это всегда чей-то чужой код?
Поэтому те, кто искренее хочет писать хороший код, и заводят себе такого, с дубинкой. Вроде Acme: IDE, которая помогает делать правильные вещи и мешает делать неправильные.
Так что IMHO дело не в какой-то абстрактной «сверх-гиковости». А в достаточно здравом желании качественнее делать свою работу. Очень многие декларируют желание работать качественно на словах, но быстро идут на попятный когда выясняется, что для этого нужно отказаться от кусочка привычного комфорта.
Поэтому те, кто искренее хочет писать хороший код, и заводят себе такого, с дубинкой. Вроде Acme: IDE, которая помогает делать правильные вещи и мешает делать неправильные.
Так что IMHO дело не в какой-то абстрактной «сверх-гиковости». А в достаточно здравом желании качественнее делать свою работу. Очень многие декларируют желание работать качественно на словах, но быстро идут на попятный когда выясняется, что для этого нужно отказаться от кусочка привычного комфорта.
+1
> Вы, кстати, не замечали, что «говнокод» — это всегда чей-то чужой код?
Хорошего программиста от плохого отличает в том числе способность увидеть говнокод у себя.
Плохой код случается у всех. Но немногие могут это увидеть и переписать :)
Хорошего программиста от плохого отличает в том числе способность увидеть говнокод у себя.
Плохой код случается у всех. Но немногие могут это увидеть и переписать :)
+3
Вы, кстати, не замечали, что «говнокод» — это всегда чей-то чужой код?Вы не видели моего кода десятилетней давности :-) А только что написанный код — он всегда красивым кажется.
Отсуствие подсветки синтаксиса — это всё-таки уже из области мазохизма. Писать правильный код оно не помогает ни разу.
0
UFO just landed and posted this here
Прочитав пост, захотелось посмотреть на образец этого самого кода, который хорошо воспринимается даже без подсветки.
0
А что Вам мешает? Всё в svn на googlecode. Вот, например, сорцы стандартных утилит.
0
Кстати, форматирование кода там не идеально.
Открыл первый попавшийся файл и увидел:
Табы — зло.
Открыл первый попавшийся файл и увидел:
Enonexist: con "file does not exist"; Eperm: con "permission denied"; Enofile: con "no file system specified"; Eauth: con "authentication failed";
Табы — зло.
+1
Кстати, да. Я не знаю, почему они используют табы… во всяком случае они это делают весьма последовательно: смешения табов и пробелов практически нет. Но это вопрос не настолько принципиальный. В отличие от замены сложного и запутанного кода на простой и ясный, проблема табов решается автоматически простейшим скриптом или настройкой текстового редактора.
+1
А, кажется, я выяснил этот вопрос. Изначально так сложилось исторически, ещё со времён первого Unix. А потом все следовали разумному правилу: пиши в том же стиле, что и остальной код в этом проекте.
К тому же, весь используемый ими софт — что в Unix, что в Plan9 или Inferno — расчитан именно на то, что отступы осуществляются табами. Поэтому никакого дискомфорта конкретно им табы не доставляют. А на то, что их код могут копипастить кодеры в Индии под MS VisualStudio, и у них табы будут неаккуратно выглядеть, думаю, они не заморачиваются. :-)
К тому же, весь используемый ими софт — что в Unix, что в Plan9 или Inferno — расчитан именно на то, что отступы осуществляются табами. Поэтому никакого дискомфорта конкретно им табы не доставляют. А на то, что их код могут копипастить кодеры в Индии под MS VisualStudio, и у них табы будут неаккуратно выглядеть, думаю, они не заморачиваются. :-)
+1
sys->fprint(conn.dfd, «cddb query %8.8ux %d», t.diskid, t.ntrack);
DPRINT(2, sys->sprint(«cddb query %8.8ux %d», t.diskid, t.ntrack));
for(i:=0; i<t.ntrack; i++) {
sys->fprint(conn.dfd, " %d", t.track[i].n);
DPRINT(2, sys->sprint(" %d", t.track[i].n));
}
sys->fprint(conn.dfd, " %d\r\n", t.track[t.ntrack].n);
DPRINT(2, sys->sprint(" %d\r\n", t.track[t.ntrack].n));
заливайте дальше…
DPRINT(2, sys->sprint(«cddb query %8.8ux %d», t.diskid, t.ntrack));
for(i:=0; i<t.ntrack; i++) {
sys->fprint(conn.dfd, " %d", t.track[i].n);
DPRINT(2, sys->sprint(" %d", t.track[i].n));
}
sys->fprint(conn.dfd, " %d\r\n", t.track[t.ntrack].n);
DPRINT(2, sys->sprint(" %d\r\n", t.track[t.ntrack].n));
заливайте дальше…
0
а как работать с чужими сорцами настоящему самураю?
0
Sign up to leave a comment.
Syntax Highlight Considered Harmful