Как стать автором
Обновить

Комментарии 64

Спасибо. А то я и правда испытал какой-то диссонанс от статей про «программирование — говно» и от того, что на работе нифига не скучно при разработке самой обычной ИС. Подумал: — «может я не настолько 'опытен'»
Нет слов, как вы правы, я так же начал мыслить уже несколько лет. Но такое воплотить могут не многие, ведь есть линия успешных программистов, которым важно решение задачи, а не инструмент. Как устаешь от постоянных холиваров между различными технологиями, которые стремятся облегчить нам жизнь. Люди начинают напоминать сумасшедших фанатов, которые оппонентов, готовы убить. И как же это скушно проводить жизнь в копи-пасте кода, при этом считая, что изменить ничего не возможно.
Статья имхо бред. Программирование очень многогранная вещь сама по себе. Кто-то пишет прошивки для железа, кто-то занимается веб-разработкой, а кто и системным программированием и т.д. И языки в каждом из этих случаев специфические.
Да ладно, php, python, perl, asp.net очень специфические языки для веба? Или вы мне покажете границу использования Java и .NET? :)
Я например знаю людей, которые пишут на VHDL для ПЛИС и разрабатывают прошивки для железа на Forth'e. Про различные диалекты С\С++ под конкретные железки (от микроконтроллеров до GPU) тоже не стоит забывать.
Основная идея, это саморазвитие и улучшение написание кода, и познавать разные языке, что бы не говорить потом несуразицу как «Java рулит, .net не у дел»
И в чем противоречие со статьей?
Языки разные, алгоритмы однаковые.
Я имел ввиду статью первоисточник от Daily WTF.
Пост прекрасен.
Класс, то что надо! Именно так все и есть. С этими тупизмами сталкиваюсь, да именно этот банальный пример про копирование 5 строчек — это все правда. Весь август я сидел и выносил в процедуры установки свойств, не грешно сказать что с 12 тыс. строк модуль уменьшился до 10 тыс.

Меня поражают эти не ленивые люди! Это же как надо не ценить свое время чтобы вместо одной строки переписывать 5, ошибаться в них, а потом в этих тоннах кода искать эти самые ошибки.

Программист обязан быть ленивым — лень заставляет оптимизировать решение и тратить на проблему меньше времени. Эта лень — не безделье, а стремление избавить себя от работы, которую может делать машина.

Когда у нас есть ксерокс — мне лень печатать копии на печатной машинке!
Обновил ядро своей самописной CMS — с 1100 до 350 строк кода без потери функциональности.
НЛО прилетело и опубликовало эту надпись здесь
Поудалял комментарии? ;))))

Недавно общался с одним программистом.
Проинспектировал его код, и был в шоке.
Такого бреда я еще никогда невидел.
Когда я подошел, и начал с ним беседовать.
Небольшое отступление (проект начинался разрабатываться на PHP4)
И вот в ходе беседы я у него выяснил что, он такой кривой код писал поскольку в РНР4 нет нормальное обьектной модели, и тд. тп. А вот еслибы типа было РНР5 или чето другое типа там где крутое ООП. Вот типа там другое дело.
Но лично как по мне это просто тупо гон.
Если ты нормальные программист, то по хорошему должен всегда из себя выдавить нормально работающий код, который легко потом потдерживать.

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

P.S.
Хочу написать статью, кармы нехватает :-)
пишите в личный блог! иначе как ее получить то?
теперь хватает, пишите
насчёт «должен выдавить» можно слегка не согласиться с формулировкой.
«выдавливается» какраз такой код, который тутже хочется задавить обратно.
Я имею в виду. Выдавливать это значит что если тебе платят деньги, то эти деньги нужно отрабатывать. Даже если тебе и не сильно хочется.
Если тебе это не сильно хочется, стоит задуматься, может ты занимаешься не тем делом. :)
Я вообще не понимаю, как программирование может быть неинтересным. Когда человек пишет код — он обязан продумать алгоритмы, продумать архитектуру, составить план… когда он напишет это, он сразу же автоматом думает, как можно устроить рефакторинг того, что он наваял. Это же непрекращающаяся работа головы. А познание новых технологий — это же вообще нечто (= Мне, например, сейчас пришлось кое-что написать на c#, а до этого я работал только с php. Так в первые два дня выполнения моей задачи я просто не отходил от компа, настолько интересно было узнать новый язык программирования.

Программирование перестанет быть необходимым только тогда, когда человек сможет создать искусственный интеллект… а кроме человека никто не сможет его создать (=
Программирование интересно, иначе я бы не стал программистом(IMHO конечно)!
Допустим, нужно сделать веб-форму с десятком разных полей. И, конечно, наш сайт делается на развитом фреймворке. Но все равно придется прописать параметры каждого чекбокса, каждого текстового поля с автозаполнением. Придется придумать к ним валидацию. Придется сочинить сообщения об ошибках.

Нет смысла отрицать, что в разработке ПО много рутины. Если поднимаемся на высокий уровень абстракции, то, значит, придется прописывать много параметров.

Программисту не проблема придумать, чем себя развлечь даже при решении стандартных задач. Но чаще всего для заказчика творческий подход разработчика выливается в удлинение сроков, и ничего больше.
«Но все равно придется прописать параметры каждого чекбокса»
Решение настолько же простое, насколько эффективное — отделение данных от логики.
Вывод полей различных типов, методы их обработки, запись в БД — это логика.

Но название полей, обязательность/необязательность, сообщения об ошибках — это данные.
И вводиться они должны не программистом, а человеком, который занимается вводом данных. Т.е. тем, кто работает с CMS, в данном конкретном случае.

Там где программист начинает заниматься вводом данных — начинается рутина.
Большинству программистов так или иначе приходится залезать в область данных. Представьте веб-студию, где над сайтом работает пять человек: менеджер проекта, дизайнер, верстальщик, программист, редактор. Кто из них будет прописывать сообщения об ошибках? В маленьких и средних проектах приходится совмещать.

А взять ребят, которые занимаются 1С. Тоже программисты. Они усмехнутся на призыв «Идите со мной туда, где программирование — великое искусство и инженерное чудо эпохи, а вовсе не отстой».

«Там где программист начинает заниматься вводом данных — начинается рутина». Это правильно. Но ведь сплошь и рядом приходится заниматься вот такими вот рутинными вещами.

Тон статьи безапелляционный. Назвать можно было так: «Программирование — не отстой, но рутины хлебнете будь здоров».
Статья более публицистическая, нежели техническая. Такие иногда стоит писать безапелляционно, не пряча смысл в бесконечные «по моему мнению», «в некоторых случаях», «за исключением» и прочие «если да кабы». Умный читатель сам сделает поправки на конкретную ситуацию, а не станет искать абсолютную истину.

Статья бьёт во вполне определённую цель — воинствующее и/или стонущее программистское невежество.
«Там где программист начинает заниматься вводом данных — начинается рутина». Это правильно. Но ведь сплошь и рядом приходится заниматься вот такими вот рутинными вещами.

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

Т.е. я четко осознаю, что здесь я именно что работаю по совместительству. Программирую, и еще «примусы починяю» на полставки :)

Случай с веб-фреймворком хорошо иллюстрирует то о чем говорит автор. В данном случае достаточно ввести абстракцию «тип данных» и один раз прописать его валидацию, а так же параметры по умолчанию и сообщение об ошибке. А потом просто для каждого контрола указывать его тип и человекопонятное имя.
Я тут подумал, что в веб-программировании вообще много рутины. Львиная доля работы — это конструирование форм, сохранение/изменение/удаление данных и настройка вывода. Редко когда приходится подумать о производительности или использовать хитрый алгоритм.

Про «ввести абстракцию «тип данных»». Пусть из 10 полей у нас 7 требуют разной валидации. Прописать всё это на любом уровне абстракции — рутина. Правда мы рассчитываем сделать это один раз и использовать в следующих проектах. Но вот новый проект, и там добавляется еще пара полей. Еще выясняется, что в поле емейл возможен символ "+". Поправим библиотеку типов. И это тоже рутина — поддержка этой библиотеки в актуальном состоянии.
Ну я бы не сказал что это та же самая рутина. Создать хорошую библиотеку с правильными абстракциями — интересная задача (как по мне). А число базовых полей которые встречаются в каждом проекте не так уж велико — текст, число, емейл, урл, дата. Тем более что есть вполне готовые велосипеды.

Веб-программирование конечно не сахар. но разве в десктопном программировании приложений связанных с БД не то же самое? Те же формы и поля, контролы…
Есть интересные задачи в веб-программировании — сделать механизм расчета кармы, защиту от накруток в анонимном голосовании, красивый эффект на js, увеличить производительность тяжелого скрипта, придумать изящную архитектуру компонента. А есть не такие интересные. К ним относится конструирование двухшаговой формы.

Да с этим и спорить особо нечего. А в статье автор передергивает.
НЛО прилетело и опубликовало эту надпись здесь
Вроде бы адекватные люди, будучи заминусованными на Хабре, превращаются в унылых троллей. Унылых, потому что некоторые их сообщения не содержат никакого смысла даже для гика, оборудованного inbound tact filter. Где школа VSL…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Отвезите, а? По крайней мере с километра мне нравится.
НЛО прилетело и опубликовало эту надпись здесь
Нууу, так неинтересно.
Я считаю что в IT, и в частности в программировании, нужно развиваться постоянно. Уже сегодня изучать вещи, которые будут использоваться завтра. Если не глубоко изучать, то иметь представление о том, что эта новая технология или новый язык позволяет делать лучше, какие плюсы и минусы.

Саморазвитие — это очень важная вещь. Да, C++ никто не будет списывать еще очень долго, но и он развивается. Требует изучения новых вещей.

Изучение новых языков программирования у хороших специалистов не должно отнять много времени. Если у языка совершенно другая парадигма, тем лучше. Это позволит по-новому взглянуть на текущие задачи.
Поддерживаю, как и поддерживаю точку зрения автора. Программирование — процесс непрерывного улучшения проекта, а для того, чтобы принимать хорошие конструкторские решения, необходим постоянный приток свежих идей, который можно почерпнуть в анализе уже написанного кода, изучении новых технологий, языков и парадигм.
Поэтому мне никогда не понять упорство тех «программистов», которые останавливаются на чем-либо одном и наотрез отказываются даже смотреть по сторонам, разбрасывая вокруг себя какашки в сторону предлагаемых альтернатив и новинок.
Мне кажется, проблема в несвободе программиста. Очень часто программист обслуживает существующие технологии и не имеет полной свободы выбора. Кем-то уже сделан ряд важных решений, которые влияют на все остальные разработки и эти решения не обязательно верные и единственно правильные. Подчиняясь таким решениям, даже супер-талантливый программист скучает. А переделать все заново обычно нет времени или слишком дорого…
Такие проекты рано или поздно заканчиваются. Ну вот я раньше занимался разработкой в команде одного говносайта. При старте было сделано много ошибок, связанных с проектированием архитектуры и БД. Когда пришел умный человек в главу проекта, появилось кучу крутых задач (= Типа как привести весь код к MVC так, чтобы не разломать существующий, ибо месяца тупо на переписывание у нас не было. В общем, интересные штуки всегда можно найти (=
программирование — это самое интересное, что можеть быть вообще! я вот безуумно всё это люблю… проблема только в том, что я — девочка и не на всё хватает мозгов… а очень жаль
Пол разработчика не всегда отрицательно влияет на его способности и успех, ориентируясь на личный опыт осмелюсь заявить, что работал с очень производительными девушками программистами из Индии. Девушкам свойственна аккуратность. Я заметил, что девушки значительно реже допускают в коде ошибки. И благодаря этому проекты девушек часто развивались быстрее и стабильнее аналогичных проектов парней, которые в свою очередь имели склонность быстро решать поставленные им задачи.
Да здравствует индусский код.
НЛО прилетело и опубликовало эту надпись здесь
Гм, а каким образом наличие мозгов коррелирует с полом? Софья Ковалевская тоже девочкой была… когда-то :)
Но закончила-то она в жёлтом доме, ага? :)
headrush.typepad.com/creating_passionate_users/2006/03/code_like_a_gir.html
Да, метросексуальное программирование — это сильно. Спасибо за ссылку!
Этот пост не является противопоставлением статье «программирование — отстой». В той статье про другое. Там были описаны более глобальные причины возникновения таких чувств у автора и на более высоком уровне. Тот автор не говорил что «программирование — говно» типа как быть кондуктором или ассенизатором — говно, он говорил, что по его мнению кайф в написании ПО в том, что бы создавать работающее и стабиьное ПО в срок, а не заниматься всякими новыми выкрутасами в проектах только от скуки, и от усталости от постоянных тривиальных задач.
Автору спасибо за статью. По коментах видно что люди уже настолько привыкли к кодингу что они забыли цель разработки новых языков, усовершенствование старых, да и отход от устаревших. У нас появились целые стада программистов, я не постыжусь этого слова, так и есть, стада. Они разрабатывают разрабатывают, а в результате ходим кругами, мне кажется что если бы основатели так бы копошились мы бы сегодня с удовольствием кодили на асемблере или фортране. Постыдно что 2009 год на дворе, а мы дальше не можем обойти человеческий фактот, фактор ошибок в коде или неграмотных алгоритмов. Зачем спорить о том что было раньше курица или яйцо? Потому мы сегодня не пользуемся перфокартами, включайте мозг товарищи, долой рутину, долой маркетологов и пиарщиков которые зарабатывают денег на продаже кривого софта, долой людей у кого главная цель сдать проект и крепко спать, давайте славить научно-технический прогресс!
В любой, даже в самой творческой профессии, 80% всего времени — это рутина. Всегда.
Любой по-настоящему грамотный и профессиональный музыкант скажет вам тоже самое. Путина, рутина, проколы, лажа, опять рутина и так далее. И всякие гениальные языки программирования собирающие армии фанатов между прочим тоже не креативятся под задорные лозунги с общим префиксом «долой», а создаются и изменяются от версии к версии посредством траты кучи времени именно на эту рутину. А без маркетологов, которых вы поносите ваш софт обычным людям и всяким компаниям, раз он уж для них пишется, вообще не упадёт и даром нужен не будет. Ваш комментарий производит впечатление, что писавший его человек в отличие от модели «человек уже настолько привыкли к кодингу что они забыли цель разработки новых языков, усовершенствование старых, да и отход от устаревших» является представителем модели «человек с отсутствием определённого опыта в индустрии» или проще говоря «пороху не нюхавший». Особенно за лозунги типа «Долой… !» Эта статья затрагивает грамотного и профессионального подхода к разработки ПО каким оно и должно быть. А в статье «оппонента» (которой таковым не является) натолкнувшего автора на написание этой статьи говорится совершенно про другое.
И да, самый крутой и революционный софт на 80% резултат работы с рутиной.
Спасибо за минус, уважаемый. Первое, я не строил речь как опонент, я сам нахожусь по ту сторону барикад.
«А в статье «оппонента» (которой таковым не является)» — тож спасибо, может у меня и нет очень большого опыта как у Вас, но мой 6 лет ничего кроме как рутинного кодинга мне не принесли, и это меня не радует, а лозунги «Долой ...!» меня в отличие от вас не пугают, возможно это и слишком наивно, но люди всегда хотели упростить себе жизнь, а дело обстоит как сейчас с линуксом, раньше много гордились вот я поставил gentoo это реально сложно, все собиралось с консоли и нужно было почитать не одну доку для успешной работы, а сейчас вот как и в других дистрибутивах, все просто и понятно, если сделать язык которым было б просто писать, просто много глубокоуважаемых кодеров потеряют свою оригинальность, потеряют кучу денег, потеряют свой статус. Вы говорите музыканты, да я сам занимался музыкой, я знаю что это такое и как это сложно, но синтезатор заменяет изучение многих музыкальных инструментов, уменьшая рутину, может не надо было делать? По вашим словам рутина рулез, а я не получаю с этого удовлетворения.
На мой взгляд, автор немного неправильно трактовал статью «Программирование — отстой». В ней не утверждалось то, что функциональное программирование рулит, и что нет никакого смысла изучать новые технологии.

Основная идея статьи «Программирование — отстой» заключалась в том, что программист — это человек, который решает бизнес-задачи. Если он умеет это делать быстро и качественно — он хороший программист. (Без сомнения решать бизнес-задачи с применением современных технологий в 100% случаев можно дешевле и быстрее, чем с использованием самопальных велосипедов.) А если программист вместо решения бизнес-задачи занимается созданием аспектно-автоматно-ориентированного фрэймворка для якобы решения этой задачи — он не профессионал.

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

Добавлю, надо всем любить и стремиться к совершеству в вашей профессии, иначе бросайте это дело и беритесь за другое.
НЛО прилетело и опубликовало эту надпись здесь
Хорошая статья, но она по сути не является ответом на «Programming Sucks! Or At Least, It Ought To» :-)
Вернее ответ разве что на название статьи (да, оно кричит, как и должно название статьи).

Разработка прикладных программ это не только написание хорошего кода, проектирование и написание кода — 50% работы (если ты не новичок), основное услилие тратится на понимание бизнес-логики и создание полезного приложения. Я вообще считаю, что тем и интересно прикладное программирование — каждый проект приносит что-то из своей сферы. На приложение программист должен по разному, как программист и смотреть глазами пользователя, для этого нужно его понять.

И часто приходится видеть проблему, когда код пишется ради кода, это как искусство ради искусства.
Задача прикладного программиста не написать код, а помочь непрограммисту решить его задачу и сделать это наилучшим образом и вовремя :-).
«As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.» — Paul Graham.

Вывод: каждый отдельно взятый программист, не стремящийся к новым знаниям и не подверженный внешним воздействиям будет использовать те и только те технологии, которые знают.
Кстати заметил еще одно. Эти замечательные не ленивые люди, копастящие свой код по тысячу раз, просто не хотят развиваться. Не изучают ничего нового, а некоторые к новому имеют даже некий протест, который обычно обосновывается фразой «А нафиг его переделывать, если и так работает». Таким человекам глубоко пофиг на то, что возможно через пол года придется вернутся в этому коду и в нем разбираться.
А как правильно написано в Perl Best Practices — плохо написанный и описанный код уже через полгода становиться неузнаваемым, будто вы его сами не писали.
Есть только один способ избавиться от рутины — профессиональный рост, который может совмещаться с переходом на управленческую должность. И не говорите, что есть люди, которым дано рулить, и те, которым не дано, этому тоже можно научиться и это тоже может быть интересно. И это важная часть пути к осуществлению мечты делать только то, что нравится, и в то же время не иметь проблем с деньгами =)
Программисты, которые после прочтения «программирование — отстой» осознали ситуацию, теперь ухватились за этот пост, чтобы снова заниматься самообманом)
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории