Программисты тормозят прогресс?

Как то ни странно, но зачастую именно представители самой, казалось бы, высокотехнологичной из всех мыслимых профессий становятся грудью на пути новшеств в ИТ. "Зачем нам использовать новые приёмы, если у нас и так всё работает?" - знакомая фраза, не правда ли?

Я думаю, каждый разработчик может назвать двух-трёх своих знакомых, которые считают, что любую программу можно было бы написать на C++, а Java, C# и, уж тем более, фреймворки и библиотеки для этих языков - это сплошное баловство. Конечно, надо отметить, что, в среднем, такая позиция для программистов не типична. Хороший программист с большим интересом относится к новым веяниям в своём ремесле, для него каждая новая технология или парадигма - как новая игрушка для ребёнка. И, тем не менее, когда дело касается не только того, чтобы поиграть с новинкой, но и применить её в реальных проектах, часто оказывается, что консерватизм программистов побеждает над жаждой новых знаний и нового опыта.

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

Руководящие кадры в индустрии разработки программного обеспечения - это вообще отдельный разговор, и хотя речь сейчас не совсем о них, их тоже нельзя совсем оставить без внимания. Как однажды сказал Джоэл Спольски (local.joelonsoftware.com/mediawiki/index.php/Russian), хорошо руководить производством программного обеспечения может только тот, кто сам умеет его разрабатывать. Те руководители, кто был программистом, подвержены в значительной степени той же технологической и идеологической лени, что и простые разработчики. Ну а те руководители, которые сами разработкой не занимались, подвержены ей ещё больше из-за того, что во всех технологических решениях они должны полагаться на подчинённых им программистов.

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

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

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

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

26 за 2008 год

Рубрика: 

Размышлизмы
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Инкогнито
аффтор пишет фигню...