Автор: Netta T
Вступление.
Тут народ удивляется: ого, сколько тут программистов, как вы, технари, пишете? Вроде бы писательство - удел гуманитариев, филологов и прочих философов, а вам это зачем?
Отвечаю: во-первых, это интересно. Что ни говори, а публика к технарям относится благосклонней. Если ты филолог, то тут и ответственность, и обязательство перед читателем, и невозможность ошибок, корявых фраз, дурацких диалогов и пришибленных персонажей. Уже нельзя: “Садясь за компьютер, у меня сломалась мышка”. Тебя учили пять лет, великих классиков с тобой разбирали, курсовые и дипломы писали, зачем ты так с нами? А вообще, ты пишешь, потому, что это твоя профессия.
Другое дело, если ты программист. Или парикмахер. Или контроллер в трамвае. Или профессор математики. Тут совсем другое. Ты пишешь по призванию и тебе за это многое прощается.
Но я хочу поговорить о том, как моя профессия помогает в писательстве.
Ведь если посмотреть, у художественного текста и программного кода есть куча общих моментов. Разберем.
Постановка задачи.
Предположим, перед вами стоит задача написать шедевральный рассказ о попытке контакта человечества с инопланетным разумом.
Алгоритм и параметры.
Известно, для описания любой истории, как и для решения математической задачи, существует один оптимальный алгоритм. Определяем подходящий алгоритм методом Монте Карло, или любым другим привычным для вас способом.
Определяем функцию, задаем параметры и значения, которые хотим получить на выходе.
Функция: Солярис.
Входные параметры: молодой мужчина, космическая станция, какая-то планета.
Выходные значения: их всегда два. Идея и эмоция. Если ваш текст сгенерирует оба - радуйтесь, вы создали хороший текст. Если только одно - плохой. Если ни одного - ваш текст не работает. Решаем, что конечным продуктом произведения должны стать чувство светлой грусти и идея, что космос хороший (вариант Лема).
Для генерирования светлой грусти лучше всего использовать страх, любовь и отчаяние.
Дополнительные параметры.
Но для дальнейшей обработки нам необходимы дополнительные данные. Вводим и, по-возможности, даем простые, описательные и запоминающиеся имена.
Константы: Снаут, Сарториус и труп Гибаряна.
В процессе обработки (раскрытия) главного персонажа понимаем, что в таком составе любовь не высечь.
Вводим переменную Хари. Хари - важный параметр для эмоций любви и отчаяния, поэтому прописываем ее подробно и не забываем о деталях: платье без застежки, ямочки под уголками рта и так далее.
Тщательно истязаем (раскрываем) главный параметр (Крис Кельвин): тут оптимально использовать цикл из трех итераций: две неудачные попытки избавиться от Хари, третья удачная. Для создания эмоции отчаяния меньше - мало, больше - перебор.
Фоном развиваем сюжет про разумную планету-океан. Тут надо подробно и тщательно, научно и без эмоций. Эта часть - информативная, она нужна для развития идеи. Хорошо использовать новояз, научные термины и имена фейковых ученых.
Выходные данные.
Чрезвычайно важна концовка, именно она задает тексту главное настроение. В оригинале Лема океан не злой, он, как ребенок, не понимает, что творит. Крис остается на станции с надеждой на установление контакта. Эмоция - светлая грусть, идея - космос хороший.
Тарковский пошел дальше: при тех же входных данных, он возвращает Криса на Землю, тот встречается с отцом, но камера ползет выше и показывает океан и острова. Эмоция - безысходность, идея - космос плохой.
Встроенные функции.
Если в программировании хорошим тоном считается использовать готовые, проверенные конструкции и функции, вроде алых губ, изумрудных глаз, покатых плечей, округлых бедер и косых струй дождя, то в писательстве это ужас-ужас. И вам все скажут: нет, дорогой автор, так дело не пойдет. Вам не должно быть легко! Быстренько бегите и изобретайте другой велосипед, другие руки не с тонкими пальцами и без волевых подбородков.
Оптимизация.
Все нещадно кромсаем. В идеале текст должен быть сокращен на 10-20 процентов. Каждую конструкцию тестируем на понятность, читаемость и отсутствие лишних слов. Если слово можно убрать без потери смысла - удаляем. Если абзац не идет на пользу эмоции или идее - удаляем.
Сила эмоции обратно пропорциональна длине описательной конструкции. Самое крутое описание битвы, на мой взгляд, состоит из шести слов: “Словом, видно было, где он шел” (ТББ).
Прогоняем таким образом как минимум 5 раз.
Компиляция.
Расставляем знаки препинания. Теперь, когда наш текст написан, приступаем к компиляции. У программирования есть огромное преимущество: большинство компиляторов укажут вам на лишние скобки и отсутствующие запятые.Тут же надо все самим, ручками.
Тестирование.
Следующий этап - тестирование. Как известно, программист сам не в состоянии адекватно протестировать собственный код, у него уже замылен взгляд и вообще он необъективен. Для этого существуют тестировщики. Редакторы, по-нашему. Редактор прогоняет наш код через всевозможные сценарии, находит баги (может даже чинит), логические дыры, нестыковки, и вообще всячески помогает. Если нет редактора, то поможет любой логически мыслящий муж-жена-родственник-друг.
Чиним, еще разок-другой прогоняем через компилятор и вуаля!
Ваш шедевр готов!
П.С. Данный опус написан исключительно в развлекательных целях, на истину не претендует и всячески поощряет коллег критиковать и дополнять.