Я впервые увидел фразу Код - это поэзия на веб-сайтах и ​​в разговорах о ремесле разработки программного обеспечения в начале 2000-х годов. Популяризуемая проектом Wordpress идея о том, что программирование и поэзия - это схожие формы, была предметом вопросов Quora, а также статей в WIRED, Torque и Smashing Magazine.

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

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

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

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

Это знают даже языковые дизайнеры. Smalltalk, Swift и другие языки, которые не начинаются с буквы «S», сделали английскую прозу основой своей синтаксической конструкции. Отдельные строки кода называются операторами, то же самое слово, которое мы используем в английском языке для наиболее распространенного типа предложений.

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

Я вижу, что наиболее чистый и удобный в сопровождении код пишут те, кто хорошо пишет прозу, будь то в документации, в электронных письмах или в повседневной жизни.

Многие афоризмы о стиле письма хорошо переносятся в кодирование.

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

Спасибо Соруш Ханлу, Кенни Акерсон, Рэйчел Виньяр и Брайан Ирейс, которые предоставили отзывы о ранних версиях этой статьи. Эта статья была изначально опубликована на сайте matthewbischoff.com.