Разработка

индекс
203,40

Программирование — не отстой! По крайней мере, не должно быть им.

Перевод статьи из блога Enfranchised Mind.

Недавно мне на глаза попалось два текста, на которые я просто не мог не ответить. Первый, самый ужасный, — это статья на Daily WTF «Программирование — отстой! Или что-то вроде того». Второй — пост о том, почему функциональное программирование не получает распространения.

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

Программирование может быть отстоем только для полных тупиц. Пять строк кода, повторяющиеся снова и снова, чтобы выставить свойства пользовательского интерфейса? Боже! Вы когда-нибудь слышали о подпрограммах? Абстракции? Как насчёт генерации кода или, может быть, стоит написать DSL? Ладно, если вы скопировали эти пять строк всего пару раз, ничего страшного. Но если вы делаете это снова и снова (иногда слегка редактируя эти строки), наверное, стоит задуматься о том, как абстрагироваться от этого.

Абстракции помогают увеличить соотношение интересной и рутинной работы, сокращая объём нудного кода. Если вместо пяти строк кода, повторенных десять тысяч раз, вы смогли написать одну строку, повторенную те же десять тысяч раз, проект сократился с пятидесяти до десяти тысяч строк кода, которые можно написать минимум в пять, а то и в двадцать пять раз быстрее. Избавьтесь от грязной работы как можно скорее, и у вас будет больше времени, чтобы заняться действительно интересными вещами.

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

Моим первым впечатлением от статьи на Daily WTF было, что это очередное проявление синдрома голодающего ребёнка в Африке. Ну вы видели фотографии. Ребёнок в какой-то чёртовой дыре третьего мира, обычно в Африке, но пойдёт и Азия или Южная Америка. Голодные дети, измученные болезнями и паразитами, обречённые на недолгую жизнь, полную лишений и жестокости. Но они счастливо улыбаются, потому что не знают ничего, кроме такой жизни. Они не видели ничего другого, не слышали о лучшей доле. Такова их жизнь. Я часто ловлю себя на мысли, что многие программисты похожи на этих детей. Они смирились, и не видят ничего страшного в том, чтобы написать полдюжины строк кода, устанавливающих свойства интерфейса, — потому что не знают, что можно по-другому. Кишащее багами и вирусами, раздутое, медленное, абсолютно неподдерживаемое ПО — таково программирование для них.

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

Дело в том, что я уже слышал все до единого аргументы из того поста. Видите ли, я был свидетелем последнего Великого Сдвига парадигмы, когда индустрия перешла от процедурного программирования к объектно-ориентированному. Кроме того, я слышал отголоски предыдущей революции — перехода от неструктурного к процедурному программированию. Я слышали все эти аргументы, точнее, отмазки, от людей, не желающих учить C++ и Java.

Эти оправдания не лезут ни в какие ворота. Сморите сами:

  • Любой пример короче нескольких тысяч строк кода несерьёзен и поэтому не может приниматься во внимание. Реальные программы состоят из десятков и сотен тысяч строк, и экономия пары строчек там и тут не играет никакой роли. Любой пример длиннее пары десятков строк никто не будет читать, и поэтому он тоже не принимается во внимание.
  • Любой пример, который использует продвинутые возможности языка, доказывает, что язык слишком сложный и тяжелый в изучении. Любой пример, который не использует такие возможности, отвергается, потому что на самом деле на этом языке так не пишут.
  • Любой пример, который не относится непосредственно к области, в которой прямо сейчас занят данный программист, отвергается. 3D-графика для разработчиков игр, серверные приложения и доступ к БД для занимающихся бизнес-логикой, графический интерфейс для разработчиков десктопных приложений. «Что мне толку от ваших россказней, если вы не пишете мой код?»
  • Нельзя напрямую сравнивать эффективность разных команд разработчиков, потому что способности у всех разные. Сравнивать эффективность одних и тех же разработчиков на разных языках тоже нельзя, потому что способности к конкретному языку у всех разные. Нельзя использовать одинаковые способы для решения одной проблемы, потому что этот способ тяготеет к конкретному языку, и на другом языке надо решать по-другому. Но если вы всё же применили разные способы, то нечего сравнивать тёплое с мягким. У вас вообще нет готового сравнения? Значит у вас нет никаких доказательств и ваше мнение предвзято.
  • В компилятор моего языка вложены сотни человеко-лет, и он генерирует гораздо более быстрый код по сравнению с компилятором вашего языка, оптимизатор которого написал какой-то хакер на выходных. Так было и так будет всегда.
  • Язык может стать популярным только когда полки в книжных магазинах ломятся от пособий по нему, его упоминают в глянцевых журналах, которые читает ваш босс, и тысячи программистов выстраиваются в очередь на тысячи вакансий с требованием этого языка. Т. е. единственный способ стать популярным — это быть популярным. А раз ваш язык не популярен, он никогда таким не станет.
  • Ваш язык сложен в изучении. Мой язык прост, потому что я его уже знаю. Люди не будут изучать то, чего они ещё не знают.
Я слышал, как каждый из этих аргументов использовался против C++ и Java в своё время. Если бы это было правдой, мы бы до сих программировали на Фортране и Коболе. В общем-то, мы и так это делаем. Кобол не был отстоем сам по себе. Плохо то, что нужно было написать пять строк кода, чтобы выставить параметры интерфейса, хуже того, программисты на Коболе даже не пытались выделить абстракции, а просто копировали эти пять строк снова и снова.

Я занимался «скучной» обработкой данных. Оказывается, в этом «скучном» коде можно найти интересную и глубокую проблему. Когда я восхваляю тот или иной язык или парадигму, я не пытаюсь впихнуть вам какой-то продукт, я просто предлагаю способ избавиться от отстойного программирования. Идите со мной, если решитесь, — в волшебную страну интересных задач, где быдлокодерством приходится заниматься изредка и недолго. Загадочная страна, где всегда кипит жизнь, Ватсон! Как прийти к этому, как сделать жизнь лучше? Идите со мной туда, где программирование — великое искусство и инженерное чудо эпохи, а вовсе не отстой.

Как сделать первый шаг? Для начала выучите новый язык.
+86
9 марта 2009, 16:52
32

комментарии (64)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Да с этим и спорить особо нечего. А в статье автор передергивает.
–3
Zakus #
Автор этого потока бреда такой же самый,
как и те против которых этот бредопоток направлен.
Да вы все такие…
0
khayrov #
Вроде бы адекватные люди, будучи заминусованными на Хабре, превращаются в унылых троллей. Унылых, потому что некоторые их сообщения не содержат никакого смысла даже для гика, оборудованного inbound tact filter. Где школа VSL…
–3
Zakus #
Ой извините у меня «tact filter» только на входящие, на исходящие не работает.
Самое интересное что «потому что некоторые их сообщения не содержат никакого смысла» и к вам относится.
О чём было это сообщение(комментарий в ответ на мой)? Никто не поймёт и никому то не интересно.

А по поводу унылости, это с текстом вверху ещё надо посоревноваться.
–3
torkve #
+1
Zakus #
Я знаю одно лекарство. И для вас и для меня
Но нужны ресурсы, и транспорт, что бы доставить на орбиту и оттуда сбросить.
0
torkve #
Отвезите, а? По крайней мере с километра мне нравится.
0
Zakus #
Вы меня не так поняли, вы будите внизу, а сбрасывать будем одно очень хитрое высокотехнологичное устройство.
+1
torkve #
Нууу, так неинтересно.
+2
intenter #
Я считаю что в IT, и в частности в программировании, нужно развиваться постоянно. Уже сегодня изучать вещи, которые будут использоваться завтра. Если не глубоко изучать, то иметь представление о том, что эта новая технология или новый язык позволяет делать лучше, какие плюсы и минусы.

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

Изучение новых языков программирования у хороших специалистов не должно отнять много времени. Если у языка совершенно другая парадигма, тем лучше. Это позволит по-новому взглянуть на текущие задачи.
0
elw00d #
Поддерживаю, как и поддерживаю точку зрения автора. Программирование — процесс непрерывного улучшения проекта, а для того, чтобы принимать хорошие конструкторские решения, необходим постоянный приток свежих идей, который можно почерпнуть в анализе уже написанного кода, изучении новых технологий, языков и парадигм.
Поэтому мне никогда не понять упорство тех «программистов», которые останавливаются на чем-либо одном и наотрез отказываются даже смотреть по сторонам, разбрасывая вокруг себя какашки в сторону предлагаемых альтернатив и новинок.
+1
Krovosos #
Мне кажется, проблема в несвободе программиста. Очень часто программист обслуживает существующие технологии и не имеет полной свободы выбора. Кем-то уже сделан ряд важных решений, которые влияют на все остальные разработки и эти решения не обязательно верные и единственно правильные. Подчиняясь таким решениям, даже супер-талантливый программист скучает. А переделать все заново обычно нет времени или слишком дорого…
0
kenga #
Такие проекты рано или поздно заканчиваются. Ну вот я раньше занимался разработкой в команде одного говносайта. При старте было сделано много ошибок, связанных с проектированием архитектуры и БД. Когда пришел умный человек в главу проекта, появилось кучу крутых задач (= Типа как привести весь код к MVC так, чтобы не разломать существующий, ибо месяца тупо на переписывание у нас не было. В общем, интересные штуки всегда можно найти (=
0
Murelain #
программирование — это самое интересное, что можеть быть вообще! я вот безуумно всё это люблю… проблема только в том, что я — девочка и не на всё хватает мозгов… а очень жаль
0
drugOn #
Пол разработчика не всегда отрицательно влияет на его способности и успех, ориентируясь на личный опыт осмелюсь заявить, что работал с очень производительными девушками программистами из Индии. Девушкам свойственна аккуратность. Я заметил, что девушки значительно реже допускают в коде ошибки. И благодаря этому проекты девушек часто развивались быстрее и стабильнее аналогичных проектов парней, которые в свою очередь имели склонность быстро решать поставленные им задачи.
–1
atomicxp #
Да здравствует индусский код.
НЛО прилетело и опубликовало эту надпись здесь
0
Fortop #
Гм, а каким образом наличие мозгов коррелирует с полом? Софья Ковалевская тоже девочкой была… когда-то :)
0
dime #
Но закончила-то она в жёлтом доме, ага? :)
0
gaki #
headrush.typepad.com/creating_passionate_users/2006/03/code_like_a_gir.html
0
reflexing #
Да, метросексуальное программирование — это сильно. Спасибо за ссылку!
+2
moore #
Этот пост не является противопоставлением статье «программирование — отстой». В той статье про другое. Там были описаны более глобальные причины возникновения таких чувств у автора и на более высоком уровне. Тот автор не говорил что «программирование — говно» типа как быть кондуктором или ассенизатором — говно, он говорил, что по его мнению кайф в написании ПО в том, что бы создавать работающее и стабиьное ПО в срок, а не заниматься всякими новыми выкрутасами в проектах только от скуки, и от усталости от постоянных тривиальных задач.
–1
nacmep #
Автору спасибо за статью. По коментах видно что люди уже настолько привыкли к кодингу что они забыли цель разработки новых языков, усовершенствование старых, да и отход от устаревших. У нас появились целые стада программистов, я не постыжусь этого слова, так и есть, стада. Они разрабатывают разрабатывают, а в результате ходим кругами, мне кажется что если бы основатели так бы копошились мы бы сегодня с удовольствием кодили на асемблере или фортране. Постыдно что 2009 год на дворе, а мы дальше не можем обойти человеческий фактот, фактор ошибок в коде или неграмотных алгоритмов. Зачем спорить о том что было раньше курица или яйцо? Потому мы сегодня не пользуемся перфокартами, включайте мозг товарищи, долой рутину, долой маркетологов и пиарщиков которые зарабатывают денег на продаже кривого софта, долой людей у кого главная цель сдать проект и крепко спать, давайте славить научно-технический прогресс!
+4
moore #
В любой, даже в самой творческой профессии, 80% всего времени — это рутина. Всегда.
Любой по-настоящему грамотный и профессиональный музыкант скажет вам тоже самое. Путина, рутина, проколы, лажа, опять рутина и так далее. И всякие гениальные языки программирования собирающие армии фанатов между прочим тоже не креативятся под задорные лозунги с общим префиксом «долой», а создаются и изменяются от версии к версии посредством траты кучи времени именно на эту рутину. А без маркетологов, которых вы поносите ваш софт обычным людям и всяким компаниям, раз он уж для них пишется, вообще не упадёт и даром нужен не будет. Ваш комментарий производит впечатление, что писавший его человек в отличие от модели «человек уже настолько привыкли к кодингу что они забыли цель разработки новых языков, усовершенствование старых, да и отход от устаревших» является представителем модели «человек с отсутствием определённого опыта в индустрии» или проще говоря «пороху не нюхавший». Особенно за лозунги типа «Долой… !» Эта статья затрагивает грамотного и профессионального подхода к разработки ПО каким оно и должно быть. А в статье «оппонента» (которой таковым не является) натолкнувшего автора на написание этой статьи говорится совершенно про другое.
И да, самый крутой и революционный софт на 80% резултат работы с рутиной.
0
nacmep #
Спасибо за минус, уважаемый. Первое, я не строил речь как опонент, я сам нахожусь по ту сторону барикад.
«А в статье «оппонента» (которой таковым не является)» — тож спасибо, может у меня и нет очень большого опыта как у Вас, но мой 6 лет ничего кроме как рутинного кодинга мне не принесли, и это меня не радует, а лозунги «Долой ...!» меня в отличие от вас не пугают, возможно это и слишком наивно, но люди всегда хотели упростить себе жизнь, а дело обстоит как сейчас с линуксом, раньше много гордились вот я поставил gentoo это реально сложно, все собиралось с консоли и нужно было почитать не одну доку для успешной работы, а сейчас вот как и в других дистрибутивах, все просто и понятно, если сделать язык которым было б просто писать, просто много глубокоуважаемых кодеров потеряют свою оригинальность, потеряют кучу денег, потеряют свой статус. Вы говорите музыканты, да я сам занимался музыкой, я знаю что это такое и как это сложно, но синтезатор заменяет изучение многих музыкальных инструментов, уменьшая рутину, может не надо было делать? По вашим словам рутина рулез, а я не получаю с этого удовлетворения.
+2
ScREW #
На мой взгляд, автор немного неправильно трактовал статью «Программирование — отстой». В ней не утверждалось то, что функциональное программирование рулит, и что нет никакого смысла изучать новые технологии.

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

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

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

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

И часто приходится видеть проблему, когда код пишется ради кода, это как искусство ради искусства.
Задача прикладного программиста не написать код, а помочь непрограммисту решить его задачу и сделать это наилучшим образом и вовремя :-).
0
naryl #
«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.

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

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.