12 января в 11:31

Что общего между написанием Властелина колец и программированием? перевод

Работа программиста — это борьба со сложностью. Один из популярных вопросов про облачную телефонию — «А зачем ее использовать, если можно самим взять Asterisk, вжух, и все сделать?». Любопытная деталь из практики: много тех, кто приходит к нам после Asterisk. То есть сперва они приходят к нам, смотрят, что платформа стоит денег, говорят «да сами все сделаем» и уходят. Через полгода возвращаются со словами «Мы поняли, что хотим заниматься своим бизнесом, а не Asterisk». Как программисты, мы очень любим бороться со сложностью: заменять Asterisk на тулбокс с JavaScript полуфабрикатами, использовать облачные сервисы для работы с кодом и задачами, делить все на небольшие части и экспериментировать с версиями. Как оказалось, не только мы это любим. В новогодние праздники я совершенно случайно прочитала о том, что у Толкиена тоже был свой Git. Под катом — адаптированный для Хабра перевод.

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

Меня всегда поражало, как разработка программы может начаться с одного файла, и, после многих лет работы, превратиться в настолько огромную систему, что один человек не будет в состоянии даже приблизиться к её пониманию. Если попробовать повторить конечный результат «с чистого листа», то у вас, скорее всего, это не получится. Оно так устроено. Софт зависит от того пути, по которому проходила разработка.

Много раз я лично участвовал в этой эволюции одноклеточного софта до «Кембрийского взрыва». Видел это своими глазами. Но что я не видел — что это насколько похоже на написание книг!

Создание хорошего софта – это эволюция через итерации с целью выживания. И точно так же создаются хорошие истории. Их объединяет то, что они создаются нашим разумом.

Разуму нужен объект для сосредоточения. Каждое промежуточное состояние проекта является таким объектом. Соединение таких состояний вдохновляет наш разум создать что-нибудь действительно выдающееся. Что-нибудь, что будет нести в себе едва заметный след того, что было в самом начале.

Давайте я расскажу, как так получилось, что «Властелин Колец» является хорошим примером такого процесса…

Изначально «Властелин Колец» задумывался как продолжение «Хоббита». Издатель хотел заработать еще больше денег на популярности книги с помощью сиквела. А «Сильмариллион» таким сиквелом не являлся. Так что Профессор сел за работу с целью написать продолжение. И это было ужасно.

Первая версия названия была не «Властелин колец», а «Возвращение тени». Это все еще была книга для детей. Фродо звали Бинго. Странник был хоббитом по имени Троттер. Бильбо собирался жениться. А кольцо все еще было просто кольцом. У истории не было явно выраженного мотива и вектора развития. «Что еще могут делать хоббиты?» спрашивал себя Толкиен. Идея хоббитов себя исчерпала. Тот «Властелин колец», которого мы все любим, был еще очень и очень далеко.

Черновик за черновиком Толкиен пробовал и искал направление для развития истории. Все завертелось, когда он создал сцену с Черным Всадником. Вначале Черный Всадник был Белым Всадником. Это был Гендальф, прибывший поговорить с Бинго. Но вдруг случилось озарение. Вибрирующая группа нейронов сговорилась, и цвет лошади поменялся с белого на черный, а Гендальф трансформировался в незнакомца, закутанного в огромный черный плащ и капюшон. Новый каркас истории (английское framework) начал создавать сам себя.

Откуда мы все это знаем? Благодаря удачному стечению обстоятельств и Кристоферу Толкиену у нас есть история изменений, которые его отец последовательно применял к «Властелину Колец». Есть великолепное видео с Др. Кори Олсен, где он за руку ведет нас по тому, что, по сути, является Git логом «Властелина Колец». Это магия от настоящего знатока творчества Толкиена и талантливого аналитика.

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

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

Я вынес для себя подтверждение старой идеи: любая успешная большая система начинается с успешной маленькой системы.

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

В 2017 году этот тот урок, который мне дал «Властелин Колец».
Автор: @glagoleva Todd Hoff

Комментарии (57)

  • +30

    Искусство перевода, блин.


    "How is Writing Lord of the Rings Like Writing Software?" -> "Толкиен использовал Git. Подробности под катом"


    Нет, Толкиен не использовал Git. Он вообще не использовал систему контроля версий. Он просто писал вариант за вариантом — как это делают многие авторы.

    • +15
      Зато если бы в заголовке не было слова git, я бы даже не открыл эту статью.
      • +15
        И это оправдание?!

        Спаммеры так любят делать!
        • +1
          политкорректное название для спамеров — email-marketing specialist'ы
      • +6
        Классический кликбейт.
        • +3
          Статья интересная? :)
          • +1
            Нет.
            • +2
              Значит у нас не получилось. Но это не значит, что не будем пытаться :) У нас большой утренний RSS для чтения…
        • +4

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


          Я пробовал делать замечания — либо игнорируют либо говорят, что замечания только в личку и вообще не лезь, ведь в главном то переводчик прав. Неприятно это.

          • +1
            Кроме заголовка и вступления все остальное — качественный перевод максимально близко к тексту. Мы старались.
            • 0

              Я вычитал перевод и, наверное лучше всего можно передать моё впечатление о нём с помощью вот этот отрывка.


              Вот оригинал:


              The lesson for me was a deep and dramatic reconfirmation of an old idea: All successful large systems started as successful small systems.

              А вот ваш перевод:


              Я вынес для себя подтверждение старой идеи: любая успешная большая система начинается с успешной маленькой системы.

              В предложении про идею, слова lesson, dramatic и deep элегантно проигнорированы. reconfirmation означает не просто подтверждение, а подтверждение в очередной раз. Смысл сохранён, конечно, но изрядная часть эмоциональной нагрузки устранена.


              Но тут я ещё могу понять — для того, чтобы хорошо перевести — надо искать хорошие эквиваленты для dramatic и deep и всего такого. Это напряжно и вообще.


              Но вот дальше идёт на английском:


              All successful large systems started as successful small systems.

              И переводится ну явно


              Все успешные большие системы начинались как успешные маленькие системы.

              А у вас переведено


              любая успешная большая система начинается с успешной маленькой системы.

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


              Такие дела.

              • 0
                Наташу вы запугали, поэтому напишу я, как один из авторов перевода. Я читаю очень много технических блогпостов на английском, RSS каждое утро стабильно выдает 200+ айтемов. И что я заметил: более высокий уровень эмоциональности. Все эти «deep and dramatic reconfirmation» — они по факту отражают меньший уровень эмоциональной напряженности. С полной уверенностью могу сказать, исходя из общего эмоционального градуса повествования, если бы мы перевели «еще одно глубоко драматическое подтверждение» — это было бы совсем не то, о чем писал автор :)

                Так что я за адаптированные переводы с учетом культуры, языка, вот этого всего. По факту все что мы переводим это «пересказ своими словами». Прочитал, понял идею, пересказал, используя свой опыт и видение айти. Потом отдал коллегам на почитать-поправить. И на Хабр.

                Это плохо? Идея не передана? Эмоциональный окрас поменялся? Я зря назвал Толкиена «Профессором»?
                • 0
                  С полной уверенностью могу сказать, исходя из общего эмоционального градуса повествования, если бы мы перевели «еще одно глубоко драматическое подтверждение» — это было бы совсем не то, о чем писал автор :)

                  Вот и я о том же. Тут просто так не переведёшь, тут думать нужно. В качестве шпильки воткну, что глубоко драматическое переводится как deeply dramatic. Не deep and dramatic. И я в общем-то не против даже адаптированного варианта. Я бы одобрил даже такой перевод, как "окончательно и бесповоротно".


                  Так что я за адаптированные переводы с учетом культуры, языка, вот этого всего.

                  А я за перевод, который не уничтожает культурный контекст и багаж автора.


                  Прочитал, понял идею, пересказал, используя свой опыт и видение айти. Потом отдал коллегам на почитать-поправить. И на Хабр.

                  Напишите собственную статью, не отмечайте её, как перевод и сошлитесь на англоязычную статью, как на источник знаний.
                  Так и скажите, что идея вам понятна и вы пересказываете, используя свой опыт и видение айти. По-моему беспроигрышный вариант.
                  А если вы позицинируете текст, как перевод, качественный и максимально близкий к тексту — такие как я будут отмечать, что переводить All systems как любая система это может и качественно, но определённо не максимально близко к тексту.


                  Ну и коротко по вашим вопросам.


                  Это плохо?

                  Я считаю, что можно гораздо лучше.


                  Идея не передана?

                  Идея передана. Если бы она была не передана это был бы вообще не перевод.


                  Эмоциональный окрас поменялся?

                  Да, изменился.


                  Я зря назвал Толкиена «Профессором»?

                  Вот это интересный вопрос. Нужно посмотреть, называют ли его "Профессором" в англоязыных текстах и если да, то зря. Если нет — ещё можно обсудить.


                  P. S.


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

  • +13
    Слово «Git» в этом историческом экскурсе зазря используется вместо более общего понятия «VCS», да и то в лучшем случае метафора.
    • –8
      Я уже не уверен, что большинство читателей Хабра узнает этот акроним. Git — точно узнают. Гарантия. А вот Version Control System, которую у меня опытные разработчики часто с CVS путают… Не, лучше так.
      • +11

        Хм… а они точно опытные?


        По-моему, это звучит как-то на уровне: "Давайте называть системный блок процессором, а то я не уверен, что большинство пользователей знает, что такое системный блок".

        • –5
          Последние несколько лет многие уже начали забывать что Subversion, Mercurial, Git и Perforce — это все VCS. Так что я предпочитаю не рисковать, если не нужно заострять внимание более чем на одном представителе этого семейства.
          • +1

            В таких случаях мне вспоминается, как во время разговора с отцом, мама спросила что-то из серии: "Как связаны мак, майкрософт и линукс?".


            Git — название конкретной системы, называть все системы контроля версий Git'ом так же неправильно, как под PC подразумевать Windows.

            • 0
              А я и не называл все. Мы выбирали интересный заголовок статьи, чтобы взгляд зацепился. Git звучало интереснее, чем VCS. Сама статья-то интересная?
              • +3

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

            • +1
              Git — название конкретной системы

              Только что поймал себя на мысли, что я не использовал термин «система контроля версий» несколько лет (либо забыл когда использовал). Git же!

              А еще есть «ксерить», «гуглить» и т.д.

              так же неправильно, как под PC подразумевать Windows

              А разве что-то изменилось? Есть Mac, есть PC, т.е macOS и Windows (конечно для людей не из IT).
              • 0

                Исторически PC(что дословно значит персональный компьютер) называли персональные компьютеры на x86(поправите, если ошибаюсь), потом Windows захватил все десктопы и PC стали называть компьютер с x86 и системой Windows, но тут внезапно Mac переехал на x86 и начал распространяться Linux, появились SteamMachine. Даже приставки(PS4 и XBox One) по железу стали как никогда близки к десктопам.


                А теперь вопрос, когда пишут, что игрушку выпустят для персональных компьютеров, где она будет работать? Mac — персональный компьютер и даже если на него поставить Linux, он все равно останется персональным, хотя может стать и приставкой, если подключить к телевизору и геймпаду.

      • +1
        CVS — это тоже VCS.
        А git себя как «SCM» величает…
  • +12
    А нейросеть, нейросеть он не использовал?
    • +9
      блокчейн?
      • +1
        Мозг!
        • +9
          Недостаточно модное слово. Нейроинтерфейс!
  • +5
    Тенденция: git пытаются запихать везде в надежде, что он хоть там принесёт пользу. Ну, с этой статьёй получилось. Я её открыл. Сомнительная польза, правда.
  • 0
    Clickbait.
  • 0

    вот вам пример, как хороший продукт (перевод) в плохой обертке (название) — это все равно плохо, как анекдот про килограм конфет и килограм говна.


    Вот скажите, если бы назвали статью "Что общего между написанием Властелина колец и программированием?" или "Приемы программирования, использованные при написании Властелина колец" сюда бы зашли другие люди?


    А так посмотрите, какая негативная реакция от людей, которым сам перевод понравился, но так зацепил (в плохом смысле) заголовок, что они получили вцелом негативное впечатление

    • 0
      «Э» — эксперименты. Негативный результат — тоже результат. В следующий раз так и сделаю, «Что общего между написанием Властелина колец и программированием» — это один-в-один один из вариантов заголовка, которрый я рассматривал. Надо же попробовать и посмотреть?
      • +1

        кто ж в продакшне тестирует-то? :D

        • 0
          Мне не дали доступа к тестовому Хабру :) Перевод — это как раз то, на чем можно потестировать, его можно скрафтить за 2-3 часа. Это не статья про телефонию, которую 10+ часов писать, обложившись справочниками и тестами.
    • –1
      Ок, -1, я сдаюсь. Не обидитесь, если я именно ваш вариант позаимствую?
      • 0

        не обижусь конечно, я ж алфавит еще не запатентовал)

    • 0
      Знаете, мне кажется «Приемы программирования, использованные при написании Властелина колец» — тоже не лучший вариант.
      Понабежало бы столько же народу с криками «кликбэйт, где паттерны, микросервисы и ООП?!»
      Просто потому, что «приемы программирования» — довольно обширное понятие и много чего можно под ним подразумевать.
      В статье же идёт речь, насколько я могу судить, про одну простую вещь — итеративность и, если натягивать сову на глобус, работу с «ветками».

      Хотя, это конечно меньший кликбэйт чем слово «Git» в заголовке.

      • 0

        тогда надо назвать "Как Толкиен «Властелин колец» рефакторил"

        • +1

          "Внешнее поведение" менялось, поэтому это не рефакторинг.

  • 0
    Я как раз в последнее время мучаюсь вопросом: помогает ли чтение серьёзной художественной литературы, от разных авторов по-немногу, по одной, две книги хотя бы, написанию более качественных программ и вообще желанию творить, программировать?
    • 0
      Увлечение чтением вообще очень развивает человека, в разных сферах. Думаю и к программированию это тоже относится.
    • 0

      Кому-то помогает, кому-то нет.


      А зачем вы вообще мучаетесь этим вопросом?

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

          Вы ошибаетесь. Это, знаете ли, рассуждение формата "последнее время вместо работы я отдыхаю, и подозреваю, что мне это поможет даже больше". Если вы все время работаете, то иногда отдыхать — поможет. Но если вы хотите всю работу заменить на отдых — работать вы перестанете (логично, черт возьми).


          В данном случае аналогия практически точна: (профильная) техническая литература — это (для вас) работа, художественная — это отдых (для вас). Если вы программист, конечно. В этих терминах и думайте.


          Я вообще хотел бы прочитать еще книжек 20 хотябы, за несколько месяцев.

          20 книжек. За несколько месяцев. Зачем?


          И хотел бы вообще научититься читать быстрее, одна книга за 3-4 дня

          Худлит? Зачем?

          • 0
            Думал прочитать 20 основных авторов, изучить их стили, точки зрения на мир, способ изложения, в общем изучить 20 отдельных миров, обдумать это, затем приступить к программированию более интенсивно снова.
            Потом возможно захочется снова почитать, вернуться к литературе, но не хочется возиться с книжкой два месяца, хочется освоить за 4 дня книгу и пробежаться по следующей серии книг.
            Чтобы не быть однобоким, чтобы не сойти с ума от программирования и не ряхнуться в конце концов, чтобы не отпало желания программировать вообще, через пару лет. Книга — это ведь как общения с умным, опытным человеком.
            • +1
              Думал прочитать 20 основных авторов, изучить их стили, точки зрения на мир, способ изложения, в общем изучить 20 отдельных миров, обдумать это, затем приступить к программированию более интенсивно снова.

              Я уж не знаю, кого вы считаете "двадцатью основными авторами", но изучить "стиль автора, точку зрения на мир, способ изложения" — это задача не на 3-4 дня, и даже не на неделю. Люди годами этим занимаются.


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

              Нельзя "освоить" (хорошую художественную) книгу за четыре дня. А "пробежаться по серии книг" — это еще смешнее.


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

              Вы же не пытаетесь общаться с умным, опытным человеком в режиме "за час познакомился и все"? Так зачем с книгами так поступать?

              • 0
                Я не правильно выразился, скорее просто скажем так я выделил для себя 20 авторов, которых мне нужно прочитать, на мой взгляд.

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

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

                  Будьте морально готовы к тому, что это "как можно быстрее" — это годы. Не "эффект будет через годы", а "на чтение уйдут годы".


                  Если вы, конечно, хотите прочитать, а не "пробежаться".

              • 0
                Если интересно, вот кстати примерный список, примерно двадцати книжек, которые желаю прочесть:
                Камю — «Чума», «Посторонний».
                Стивенсон — «Странная история доктора Джекила и мистера Хайда»
                Гашек — «Похождение бравого солдата Швейка»
                Кафка — «Замок», «Прцесс», «Превращение»
                Гюго — «Отверженные»
                Оруэлл — «1984»
                Джон Кинг — «Человеческий панк»
                Селин — «Путешествие на край ночи»
                Ф. Искандер — «Сандро из Чегема», «Детство Чика»
                Аксенов — «Ожог»
                Сорокин — «День опричника»
                Матвеева — «Перевал Дятлова»
                Акунин — «Алмазная колесница»

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

              Ну так много чего "не профильное, но развитие". Худлит. Non-fiction. Театр. Кино. Музыка. Путешествия. Спорт. Оно от этого работой не становится (ну, для тех, для кого это не профильное).


              Если хотите, можете думать не в терминах "работа-отдых", а в терминах "работа-общее развитие-отдых". Аргументация в моем посте от этого не изменится.

              • 0
                Так я и не утверждаю, что «развитие» == «работа».
                Я говорю о том, что «не рабочее развитие» вполне себе может помогать работе, пытаясь оспорить ваше утверждение что «если не работа — > то отдых, соответственно работе оно не может помогать».

                В зависимости от ситуации «не рабочее развитие» может давать больше профита, чем развитие профессиональное. В этом тезис.
                • 0
                  ваше утверждение что «если не работа — > то отдых, соответственно работе оно не может помогать».

                  Я нигде не делал такого утверждения.

                  • 0
                    Окей, значит не верно понял ваше «Вы ошибаетесь» в данном контексте, посыпаю голову пеплом и с позором капитулирую.
  • 0
    Интересно, читал ли автор «Войну и мир»?
    • 0
      Александр Невзоров говорит, что «В и М» сейчас вообще никому не нужна, что это фантастика и уж если на то пошло, лучше почитать Толкина.
  • 0
    А ведь Джордан тоже начинается с черного всадника…
    Так что главное в работе программиста — довести работу до конца.
  • 0

    При чем тут великий писатель и какая-то вшивая телефония? Кликбейт на хабре, докатились.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка