psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2005-11-08 12:31 pm

Созидатели или подражатели?

На эту тему писал недавно [livejournal.com profile] eugenebo: что вел он собеседование с программерами в штатах и ребята показали, что задачки решать совершенно не умеют, но знают много.

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

Для любой программы возникают обычные ножницы между сделать самому какой-то кусок, либо откопать-освоить чужое. Почему то всегда забывают, что откопать-освоить тоже занимает рабочее время и немалое. По идее, для каждого кусочка нужно решать вопрос об имплементации индивидуально. Но. Среди программистов становится все больше дебилов, для которых просто нет выбора. САМИ они написать ничего не могут в принципе. Я таких видел не раз: если вдруг они не могут найти в Сети подходящую библиотеку, то они начинают рыскать по форумам с воплями о помощи. Самим подумать нечем. Получив какие-то указания, начинают программировать - но не дай бог, если задачка в чем-то нестандартная. Тогда они начинают просить начальство объяснить им, КАК они должны программировать (т.е. фактически сделать за них часть работы). Если приходится все-таки делать самому, то в результате получается монстр, который ухитряется поставить раком все приложение (обычно в плане ресурсов и быстродействия). Попытка заставить такого дебила что-то написать самому в результате часто выливается в повышение технических требований ко всему приложению.

Я хочу сказать, что для некоторых программистов просто НЕТ ВАРИАНТОВ: написать самому или слизать у кого-то. И таких становится все больше, и они начинают подводить под свою деятельность идеологию, обсирая тех, кто умеет думать своей головой. Обычные отмазки: "не надо изобретать велосипед", "стандартный продукт легче освоить" и т.п. Между тем, эти отмазки работают только до поры. Изобретение велосипеда подчас дешевле (в смысле рабочего времени) и эффективнее (в смысле полученного результата) - но только если вы способны на это. А использование стандартных библиотек ведет к тому, что вместе с библиотекой вы получаете все ее возможности - но так же и сопутствующие требования к харду и софту, сопутствующие принципиальные ограничения и баги. Причем, пропатчить чужой код (исправить баг) - это задачка на порядок сложнее, чем исправить баг в своем коде. То есть, отмазка о том, что "стандартные библиотеки содержат меньше багов" тоже не катит. Да, багов там меньше, но каждый баг требует гораздо больше времени на исправление. Так что в сумме может получиться и так, и эдак.

Ну-ну

(Anonymous) 2005-11-08 11:34 am (UTC)(link)
Критиковать, конечно, хорошо. Только вот до прямой ереси опускаться тоже нельзя - можно негативно подействовать на неокрепшие умы. Нельзя изобретать велосипед только потому, что Вы _можете_ это сделать. И работа с чужим кодом - тоже навык, притом полезный. Если Вы им не владеете - что ж, изобретайте самокаты дальше.

[identity profile] solomon2.livejournal.com 2005-11-08 11:51 am (UTC)(link)
Да уж. Главный принцип программирования, мне кажется, "все хорошо в меру". Опытный программер как раз знает, где имеет смысл использовать готовую библиотеку, а где - изобрести велосипед. Как говорил Страуструп, замены уму и вкусу все равно нету.
В общем и целом, использование стандартных библиотек часто предпочтительнее - они и документированы и вылизаны насчет багов, их обычно кто-то поддерживает, совершенствует без доп. затрат программиста-пользователя.
И еще, если челу не нравится готовая библиотека, и он садиться писать customized solution, это терпимо. Но вот если вдруг садятся переписывать саму библиотеку - это уже подозрительно, скорее всего получится еще хуже :-)

[identity profile] http://users.livejournal.com/-sting-/ 2005-11-08 11:57 am (UTC)(link)
Как говорил наш препод по матану: "программированию сложно научиться, в вот кодировать можно научить даже обезьяну". И положение вещей сейчас таково, что обезьян чересчур много.

[identity profile] metaclass.livejournal.com 2005-11-08 12:01 pm (UTC)(link)
Дал ссылку на пост знакомым линуксоидам. Подняли хай в стиле "велосипед изобретать нельзя", "просто нельзя". Попытка объяснить, что любые правила имеют границы применимости к успеху не привела.

[identity profile] deadkittten.livejournal.com 2005-11-08 03:39 pm (UTC)(link)
Главная сложность ИМХО в том, чтобы заранее определить\угадать что дешевле обойдётся -- написать самому или найти и освоить готовое. И тут уж как повезёт...

[identity profile] eugenebo.livejournal.com 2005-11-09 02:46 am (UTC)(link)
Занятно, что я сначала прочёл предыдущий пост и высказался там -- но, по сути, в ту же тему, что и здесь: http://www.livejournal.com/users/psilogic/31228.html?thread=361724#t361724

Вкратце -- соглашусь: у понимающего человека должен быть выбор. А нешарящему не помогут ни библиотеки, ни самописание.