metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-01-22 09:30 pm

Языки программирования? По барабану.

По мотивам срачей с ребе айседом на тему "LISP/Clojure vs Java vs C++ vs Ruby vs Haskell" запишу свои тезисы, чтобы не забыть:

0) Выбор языка программирования - по сараю. Код никто не пишет. 90% работы - это общение с клиентами, писание требований, документирование, объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая.
Ход мысли не программиста-фанатика, мыслящего категориями "как и на чем писать", а категориямии руководителя-менеджера "зачем писать, какие ресурсы использовать для этого, какая будет прибыль и какие дальнейшие прибыли или убытки это за собой потянет".

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

2) Основная проблема - это не собственно выполнение работы (по моему, если не лезть в реализацию совсем уж новых концепций программирования, типа "а теперь мы сделаем хаскель, на котором можно писать низкоуровневые драйвера", то все мыслимое и немыслимое уже придумано и сделано, достаточно разобраться, склеить и скомпилировать), а заставить себя взяться за эту работу. Если язык при этом лезет под ноги всяким тупизмом, т.е. в 2012 году ВНЕЗАПНО не работает "искаропки" - отправляется в утиль.

Есть только одно неприятное следствие вышеуказанного: если так думать, заниматься "личными" проектами становится крайне затруднительно. Прибыли от них нет, приобретенное умение программировать уже НЕ НУЖНО, сделать что-то действительно новое и полезное - 90% будет не код, а анализ рынка, реклама, общение с коллегами, клиентами, заказчиками, опен-сорсным комьюнити и прочая.
А писать в стол всякое уныние, коего готового 100500 вариантов - нет вообще никаких стимулов.

Последнее время эта тема напрягает, т.к. я привык постоянно заниматься какими-то "интересными проектами", но постепенно требования к ним в силу моего перфекционизма переросли порог "можно сделать в свободное время не напрягаясь".

[identity profile] blackyblack.livejournal.com 2012-01-23 07:09 am (UTC)(link)
Я не хотел об этом писать, но, конечно, за любые деньги всё реализуемо, в пределах действующих физических законов. Вот описанная задача реализуема за, скажем, 1 млрд долларов в год за 1000 гаек. За эти деньги можно нанять китайца, который лично будет отслеживать перемещение гаек и передавать данные по телефону. Но я полагаю, лучше клиенту объяснить, что в его постановке задача не реализуема и предложить своё ТЗ, чем давать ему смету на 1000 китайцев и миллиард долларов.

[identity profile] sergiej.livejournal.com 2012-01-23 10:56 am (UTC)(link)
Клиент вас выгонит с таким "решением" и правильно сделает. Вы предлагаете технологическое решение уровня девятнадцатого века. Есть полно современных решений для такой задачи.
Наверно мы всё-таки друг друга не поняли. Перед тем, чтобы предлагать своё ТЗ, которое не отвечает требованиям заказчика (и, кстати, автоматически выкидывает меня из тендера, я теряю контракт), я предлагаю выяснить что заказчику действительно нужно, что он выкатил такое странное требование.
Может я лучше приведу реальный пример. Заказчик требует "записывать все данные со всех экранов, которые пользователь
с определёнными правами видит в системе.". Ужасно дико, у вендора железа уже доллары в глазах запрыгали от такого счастья. Начинаешь выяснять... оказывается проблема только в том, чтобы выявлять пользователей, которые дёргают личные данные VIP клиентов и продают налево. Что уже совершенно другая задача. Она и прописывается в ТЗ.

[identity profile] blackyblack.livejournal.com 2012-01-23 11:21 am (UTC)(link)
Ну о том и речь. Клиент несет пургу и ему важно об этом сообщить и выдать своё предложение. Если пурга попала в тендер, то пламенный привет тем, кто этот тендер выиграет.

[identity profile] sergiej.livejournal.com 2012-01-23 11:33 am (UTC)(link)
Это не пурга, он просто не всегда имеет опыт говорить языком IT и пишет как умеет, надо уметь понимать что он имел в виду.