Найти тему

Писать программное обеспечение, не имеющее серьезной цели, - это весело

Рисование, наброски и возня с компьютером приносят странные и глубокие удовольствия

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

И конечно, я создал эти вещи! Мне было приятно писать код, который решал реальные, практические проблемы.

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

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

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

Что именно привлекает меня? Что такого веселого в создании совершенно неутилитарного программного обеспечения - кода, который существует не для решения реальной проблемы, а для того, чтобы сделать что-то причудливое, или глупое, или красивое?

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

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

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

Конечно, это очень старое удовольствие. Вера Молнар была одним из пионеров использования компьютеров в искусстве, начиная с 1960-х годов. Первые хакеры Массачусетского технологического института в 70-х годах были очарованы клеточными автоматами - такими как "Игра жизни" Конвея - из-за того, что они, казалось, объединяли компьютерную логику с жутко органичной, непредсказуемой эволюцией цифровых форм жизни. А сегодня существует огромное сообщество цифровых художников и языки/фреймворки, такие как P5, разработанные специально для создания интерактивных крутых вещей.

Что приводит меня к моей последней части совершенно бесцельного программного обеспечения: "Садовник".

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