Comments 20
вот больше интересно на эту тему был бы обзор скриптов/плагинов например к редактору Vim (или другая IDE для написания книг).
Я тут пробовал писать небольшие рассказики и получается надо:
- план, сквозняком проходящий сквозь всё.
- макросы для имён персонажей/мер/весов/итп
- пометки для себя на полях, всякие TODO итп
никто не знает есть подобный софт?
Структуру связей можно набросать в Mind Map, развитие во времени - диаграмму Гантта )) а сам текст писать, чтоб вдохновению ничего не мешало, лучше всего на чистом листе -- Typora очень хороша для этого!
а имена персонажей?
Хочется макросов вроде <вася|род>
— Вася в родительном падеже.
Чтобы потом сквозняком по тексту можно было заменить Васю на Петю.
для Vim плагина не знаю, пользуюсь отдельным софтом — Scrivener (хотя, в принципе, все что вам нужно, покрывается и obsidian-ом).
макросы для имён персонажей/мер/весов/итп
Вроде как любой шаблонизатор с этим справится. МБ и для других задач можно программистские инструменты приспособить. Курсовые в ВУЗе я, например, с использованием git писал. Очень удобно.
То есть запрограммировать отдельную штуку не очень сложно, как и писать. Маленькая программа — сочинение, большая — роман, крутые программисты в соавторстве десятков человек совместно пишут антологию в единой вселенной.
Просто представьте, что к вам приходит заказчик и говорит, что требования изменились, и теперь Анна Каренина должна стать сильной и решительной а Вронский — не офицер, а преуспевающий юрист. И теперь нужно поправить в тексте все моменты, где Каренина проявляла слабость, у Вронского должны измениться привычки, а в конце она должна не погибнуть, а уехать в закат с ироничной улыбкой. Тут же сразу несложно представить, почему возникают баги…
1. Хорошие литературные произведения быть уникальными, ценится именно новизна, свежесть. Хорошая программа должна наоборот, по-максимуму использовать готовые/проверенные решения, а также иметь для пользователя привычный и общепринятый UI.
2. Литературные произведения живут, грубо говоря, вечно, и в подавляющем большинстве случаев в неизменном виде, программа — это нечто эксплуатируемое, которое какой-то достаточно короткий срок работает, сопровождается, изменяется, амортизируется и потом выбрасывается на свалку истории.
3. Литературные произведения обычно пишутся в «творческом режиме», вдохновение прёт — пишешь, вдохновение пропало — бухаешь, едешь к куртизанкам ну или как там принято у приличных писателей возвращать себе вдохновение. Софт, что бы тут не говорили, это в первую очередь инженерная работа. Прёт/не прёт, если есть дедлайн, все равно садишься и пишешь, благо, 99% процентов кода никаких свежих идею не требуют, а просто надо сидеть и молотить хорошо знакомые, уже триста раз использованные сниппеты/паттерны.
И эта аналогия не идеальна. Она хороша только для части аспектов — например читающему книги будет понятен объем работ и сложности поиска связей.
Но не согласен с тезисами по всем 3-м пунктам.
1. В программах так же ценится новизна и свежесть решаемой задачи, мало кто ценит клоны программ. Даже если программа делает то же самое — она должна делать это лучше, удобнее, или уметь делать в целом больше, иначе зачем она нужна?
В то же время книги, как и программы, опираются на проверенные приемы — хорошие книги не пишутся просто так, у них есть структура, типичные приемы раскрытия сцены, описания персонажей, раскрытия конфликта. Книги подчиняются определенной последовательности (типична трехактная структура) развития сюжета, иначе она кажется читателю непоследовательной.
2. Толстой, переписывающий войну и мир несколько раз, не согласен. Книги очень даже меняются, а то, что они неизменны — особенность основных технологий и процесса производства.
То, что программы меняются регулярно — это особенность того, что сделать это сейчас крайне легко и полезно. Правильнее сравнивать программы со справочниками и учебниками, которые улучшаются и обновляются по мере развития научной базы и инструментов. Самые продвинутые, типа Википедии — меняются постоянно.
К художественной литературе аналогию подобрать тяжелее, но в ней и смысла меньше на изменения. Тут аналогия такая — после выхода игры сюжет обычно не меняется, несмотря на патчи и сюжетную игру не будешь перепроходить много раз.
3. Просто чудовищное заблуждение. Конечно, определенная доля правды в поведении творческих людей есть, это вообще характерно для «рок звезд» во многих областях.
Но писательство — это в меньшей степени вдохновение и в большей — тяжелое ремесло по созданию текста. Есть цитата, не вспомню автора — «Профессиональный писатель — это тот, кто может писать даже когда нет настроения». Многократный перебор форм, структурирование текста, наполнение текста деталями, создание и наполнение структур, раскрытие своих мыслей читателю, исходя из предположения о его знаниях — это работа, у которой есть устоявшиеся приемы, инструменты и т.д.
Конечно, деятельность программиста в большей степени инженерная, подчиненная требованиям, программы типично — очень сложно организованные проекты, поэтому сравнение сложное. Но и среди писателей есть как публицисты, пишущие очерки в газетах, так и авторы многотомных романов.
1.
Даже если программа делает то же самое — она должна делать это лучше, удобнее, или уметь делать в целом больше, иначе зачем она нужна?
Например, нужна затем, чтобы продать её тем людям, которые ещё не нашли существующие аналоги. Клоны программ — это, грубо говоря, 99% рынка. А даже если вы придумали что-то оригинальное, все равно вы по-максимуму будете использовать готовые проверенные интерфейсные решения, готовые библиотеки и т.д.
В случае книг речь идёт о схемах повествования, но уж никак не о полной повторяемости сюжета и заимствовании кусков текста.
2. Тем не менее, переписывание книг — это редкое исключение, и даже Толстой, якобы переписывавший «Войну и мир» несколько раз (но это не точно), если и делал это, то только с черновиками. Изданные книги чаще всего неизменны, ну или получают мелкие апдейты при переиздании.
3. И тут я с вами не согласен. Чтобы написать книгу, вам естественно нужно выполнить значительный объем технической работы. Но тем не менее, вторая обязательная составляющая — творческая. Вам нужна идея, вам нужно вдохновение. Написание кода — задача инженерная. В некоторых случаях она имеет творческую составляющую, но в подавляющем большинстве нет, надо просто сидеть и писать по известным паттернам, и результат заказчика устроит. Конечный пользователь программы не будет заглядывать в код, и не оценит, красивый он или бестолковый.
1. Правильном написании текста, с учётом как правил языка, так и внутренней логики, причинно-следственных связей в тексте. Именно в этом хорошее совпадение программирования с писательством.
Но.
Есть ещё и
2. Умение нарушать эти правила так, и в таком месте, что текст становится интересен (сам по себе, не в смысле общего содержания и общего хода событий). Это включает «чувство языка», например:
Из Раневской:
— Почему Вы не выступаете?
— Потому что я не пава.
Из Маяковского:
— Я думал, что еду в собачью глушь, а приехал в собачкину столицу.
3. И главное — понимание предметной области (то есть — человеков). Здесь у программистов полная катастрофа, потому что их профессия, как никакая другая, уводит в без-человечную зону. Конечно, это не означает, что никакой программист не может быть хорошим писателем — но это будет не благодаря, а, скорее, вопреки профессии.
Вот среди врачей — писателей относительно много, причём хороших писателей. Потому как их профессия сталкивает с людьми в состоянии, в котором они меньше всего врут.
— Не знаю, ни разу не пробовал (с) анекдот
Автор страдает от терминальной стадии «синдрома программиста». Он привык чувствовать себя самым умным, так как в основном общается с обычными обывателями, которые в его предметной сфере не разбираются вот вообще. В результате наш герой начинает считать всех окружающих тупее себя в разы — а себя мнит универсальным гением уровня Леонардо, способным справиться с любой задачей.
Увы. Это не так. На самом деле он не умнее других — и ему бы неплохо поучиться у тех, кто в теме, а не изрекать советы космического масштаба. Для начала было неплохо ХОТЯ БЫ дописать роман и послушать что о нем скажут читатели.
И только потом начать обобщать опыт.
Вот да.
Как человек, пытающийся что-то писать (художественное), скажу, что мой опыт IT мне сильно мешает. И если подходить к тексту как к алгоритмической задаче — получается искусственный, пересушенный, безэмоциональный кадавр. Или кадавр с имитациями эмоций, что еще кошмарнее выглядит.
Но, возможно, я не настоящий программист.
Но в чем именно сложность писательства?
Для себя я ответил, что в большей степени свободы и соответственно большей неопределенности. Отсюда даже получил парадоксальный вывод, в стиле Оруэлла, что свобода это ограничения!
Действительно, в программировании, ты скован массой ограничений, но это, обычно, не напрягает (в случае чего, всегда можно сменить платформу программирования). В литературе, теоретически, нет ограничений, пиши что хочешь, о чем хочешь и как хочешь. Однако это вызывает ступор и два классических вопроса: «О чем писать?» и «Как писать?». Ну, и что важнее?
В программировании, вопрос «Как писать?» не стоит. Там все определяется технологией языка. Что писать, в смысле, какую именно задачу реализовывать, выбирать как-то проще. Просто смотришь, какие задачи еще не решены либо решены не слишком хорошо (в понимании программиста) и с какой задачей ты в состоянии справится. Ею и занимаешься.
В литературе, понятия «реализации задачи» как бы нет. Ну, а то, что писатель формулирует для себя как «задачу», сразу упирается в вопрос, а как ее решать в принципе? Поэтому, для непрофессиональных литераторов, как мне кажется, «как писать» куда важнее, чем «что писать». Просто потому, что в литературе нет явной технологии творчества. Хотя, допускаю, что если есть ТРИЗ / АРИЗ (технология решения изобретательских задач / алгоритм решения изобретательских задач) Г.А. Альтшуллера, то и, где-то в недрах Голливуда, есть, если не технология литературного творчества (ТЛЧ), то технология создания сюжетов фильмов и сценариев, поставленная на поток. А сейчас еще и «Искусственный Интеллект» напрашивается.
Кстати, можно спросить, а в чем принципиальная разница между литературным творчеством и программированием?
Смотрим, принципиально, программирование это:
1. Код.
2. Реализация исполнения этого кода, например, в компьютере.
3. Потребитель результата.
Для литературы:
1. Литературный текст, и как код и как реализация этого кода.
2. Потребитель результата.
Под реализацией кода литературного текста я понимаю генерацию логически связанного и последовательного воображения у читателя («производство впечатлений», как ныне говорят).
Вот, представьте себе, что нет компьютеров. Легко ли было бы реализовывать программистские алгоритмы? Так и в литературе. Инструмента для «производства впечатлений» там нет, все должен делать сам текст, который вполне можно воспринимать как литературный код. Вплоть до того, что даже возможна постановка задачи по декомпиляции литературного кода (с целью выявления секретов литературных мастеров). Но это уже отдельная задача, очень непростая, даже для ИИ.
Ну, а теперь, по вопросу, что писать? Для этого надо, сначала, ответить на вопрос, а что такое литература, в технологическом смысле?
Современные генераторы текстов, на базе ИИ, заточены на, скажем так, вероятностное копирование. Т.е., из сверхбольшой базы данных выбирается наиболее вероятное, для предыдущего созданного текста, продолжение. Понятно, что здесь нужна, начальная точка отсчета, например, некоторая осмысленная фраза. Далее компьютер генерирует, наиболее вероятное по смыслу, но оригинальное по тексту, продолжение. Иногда, даже получается ничего. Со временем здесь явно будет какой-то прогресс.
Однако, с моей точки зрения, литература, технически, это процесс отражения действительности в мозге наблюдателя, который эти свои мысли преобразует в текст. Тем самым, литература глубоко субъективна. Иной раз даже не знаешь, чего ты узнаешь больше в чтении книг, новой информации или личностного эмоционального и ментального отпечатка автора. Есть, конечно, и безличностные документы, составленные группой авторов, например, Конституция, но там, скорее, присутствует коллективный эмоциональный след.
В итоге, вопросы: «Что писать?» и «Как писать?» остаются открытыми, что говорит о том, что тема литературного творчества – неисчерпаемая.
Тем не менее, можно предложить концепцию универсального литературного сюжета (и его обобщение):
Особое событие порождает необычный процесс с непредсказуемым результатом.
которое я сформулировал в статье ««Hello, World!» для начинающих литераторов» ( habr.com/ru/post/342512 ).
ИМХО есть сходства (но с оговорками):
Писательство можно воспринимать, как моделирование (ситуаций, судеб, характеров и т.д.), в фантастике могут быть модели типа «что будет, если закон природы Х не действует» или «если восстание Спартака окончится иначе». И в программах бывает моделирование. Однако (оговорка): много случаев, когда есть четкое ТЗ от заказчика, и исполнителю оставлен минимум степеней свободы. Так и в писательстве м.б. четкое задание: написать сценарий по опубликованной книге. А еще переводы. Там обычно мало свободы.Иногда можно вольно перевести имена героев, но ход событий изменять нельзя. Иначе это будет называться «пересказ». Т.о. есть (по меньшей мере) два типа писательства и два типа программирования. Можно ИМХО сравнивать только одинаковые типы.
О различиях. Разное отношение к заимствованию. Если писатель использует чужой сюжет с незачительными изменениями, его, вероятно, не поймут. Если кодер использует собственную процедуру I/O, вместо библиотечной, его могут не понять. Однако (оговорка): в писательстве пародий по определению обычно явное заимствование, и много случаев в программах, когда стандартные процедуры не подходят.
В оригинале, вроде, повествование идет от женского лица, а в переводе — от мужского.
Ну, и в программировании для конечного потребителя важен все-таки результат выполнения кода машиной, а не сам код. В литературе потребитель читает исходники, неудивительно, что их при этом приходится переписывать по многу раз. Можно еще пофантазировать на тему, что читатель преобразует текст во что-то, аналогичное кнопочкам в GUI, выводимым компьютером по результатам чтения программы.
Как тут не вспомнить классику.
Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?
Программист: ну представь, что ты писатель и поддерживаешь проект “Война и мир”. У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь “шёл дождь”, сохраняешь, вылетает сообщение об ошибке “Наташа Ростова умерла, продолжение невозможно”. Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение “Поручик Ржевский умер.” Выясняется, что он в следующей главе облокачивается о столб, которого уже нет..."
rol_foster: Сегодня полдня искали ошибку, из-за которой, образно говоря, у Наташи при прогулке с Пьером падают трусы. Одна из функций программы делает то, что делать не должна. Откатили на вчера - трусы на месте. Перелопатили весь код обновления, там вообще ни трусов, ни Наташи, ни даже Ржевского, тупо красят дом Болконских. Чуть ли не пошагово разбираем - все нормально. Но трусы падают. И, чтобы найти причину, придется перелопатить весь код, а это недели две минимум.
В общем, начальник задумчиво посмотрел на девушку и волевым решением выдал Наташе подтяжки.
Программирование и писательство