Вчера снова состоялся разговор с сыном.
Я видел, что его что-то переполняет какой-то свой вопрос, но начал он деликатно и издалека:
– Ты в прошлый раз что-то про сложные сложности недорассказал...
Я рассмеялся:
– Ну ты и подлиза! Не томи душу, выкладывай, с чем пожаловал?
После небольшого изображения недоумения мне был показан результат решения его сложной проблемы (аж на трех листах). Показ сопровождался рассказами, как все было непросто.
Я тоже был доволен. Доволен его настроением и его упорством. Но его рассказы про «непросто» меня раззадорили и я предложил:
– А давай я посмотрю твой код и прокомментирую его? А взамен дам тебе несколько строк своего кода, но ты должен будешь сказать хотя-бы что-то о его работе или назначении ?
Через несколько минут наступила его очередь смотреть мой код. (Если вдруг кому станет интересно, см.здесь.)
Наступила затяжная пауза. Выждав, я сказал:
– Не мучайся. Я тоже не в состоянии его комментировать. Как и ты, вижу отдельные операции, но «за деревьями леса не разобрать».
Сын ухмыльнулся:
– С гугля копипастнул?
– Не суди по себе, этот код я написал тогда, когда гугля еще не было :)
Сын сочуственно поддержал:
– Ну да... За это время многое вспомнить трудно!
Что же делать? Как проще проще обьяснить, что бывают вещи, которые просто находятся за гранями его понимания ?
– Знаешь, продолжил я, тут – другое. Для одного проекта я написал код. Подобно твоему, он был длинным и понятным. Но он был неоптимальным и медленно исполнялся. Зная основы формальной логики и работая на уровне битовой обработки мне удалось сильно упростить код. (После этого я вижу в нём даже некоторую элегантность!) Зато напрочь пропала прозрачность для понимания и, как результат, возможность отлаживать и развивать такой код.
– Ого, значит достаточно одной описки и ошибку обнаружить становится почти невозможно?
– Да, ты уловил главное. Поэтому, пусть более медленный, неоптимальный, более обьемный, но хорошо прокомментированный код дает проекту большую живучесть.
Когда сын уходил, я вдогонку спросил:
– Так какой код сложнее, твой длинный или мой короткий?
– Да длина тут не причём. Сложнее тот код, который сложнее для понимания.
Ответ меня порадовал и он точно был взят не из Гугла.
P.S. Мой «Первый рассказ» прожил на газете около суток. «Второй рассказ» продержался около часа. Интересно, сколько отведено третьему рассказу ?
14:04 21.04.11
Только один вопрос: за что?
В Ваших рассказах ничего порочащего, призывающего и пр. я не заметила.
14:11 21.04.11
За дерзость.
Но...
Одна моя знакомая из Финляндии любит говорить, что все проблемы от взаимного непонимания.
Есть шанс, что взаимопонимание достигнуто.
Не это ли главное?
А ваши рифмы – прелесть!
15:36 04.05.11
Зря надеятесь.
16:59 21.04.11
Вы меня вдохновили. (особью называть не хочется, поэтому просто – на Вы). После Пасхи и дня Победы опубликую свой разговор с дочерью... Откровенный... А пока двум первым темам отдаю законный приоритет.
17:27 21.04.11
Извините, мне не нравится.
Таиная многозначительность, попытка философствовать, недосказанность...
Но за этим ничего нет. Или я не увидел.
По краиней мере, уж никакой «дерзости». Не наговаривайте на себя.
17:28 21.04.11
Кстати, причин для удаления не вижу.
21:18 21.04.11
Во первых, спасибо за ваш комментарий, за ваше потраченное время на этот рассказик.
Во вторых, я не понял про многозначительность, хотя если вы читали поверхностно, то такое впечатление сложиться вполне может :)
Мы с вами можем разобрать любое место в рассказе.
Может быть я с вами соглашусь.
Но не огульно, а предметно.
В третьих, про «дерзость». Это – история. Как минимум с «первого рассказа», если не раньше. Наговаривать на себя не стремлюсь. Мне своего хватает.