Рекомендую эссе Paul Graham: Superlinear returns.
Что мне нравится в текстах Paul Graham так это опережение моих писательских планов. Пол периодически пишет про то, что я давно хочу написать, но пока не могу — ещё не Paul Graham :-D
Конкретно на тему нелинейных изменений я уже лет 10 хочу написать эссе да побольше. Но если бы я сел его писать сейчас, то это был бы длиннопост со странными графиками и терминами и без таких интересных примеров как у Пола. Поэтому приходится давать ссылки на его эссе.
Дальше, в общем-то, можете мой пост не читать. Главное оригинальное эссе прочтите. Но оставлю пару заметок для истории, которые лучше читать после оригинального эссе.
Продолжение жизни и работы с ошибками — обсудим штуки на уровень выше.
Эссе получилось большим, но точно найдутся упущенные моменты. Если я что-то забыл — пишите. Буду благодарен и за более интересные примеры.
Итак. Давайте подумаем, как мы предсказываем будущее всякое.
Предсказаниями мы занимаемся постоянно — это буквально суть нашего существования:
Это примеры «гарантированных» предсказаний, но даже они могут не исполнится:
Фактически, мы никогда не знаем актуальное состояние мира вокруг нас:
Мы даже не обладаем всей информацией о прошедших событиях.
Поэтому.
Каждое наше решение и действие основывается на предположениях о прошлом, настоящем и будущем.
Штуки, которыми мы создаём предсказания, называются моделями.
Буду говорить в контексте программирования, но соображения можно распространить шире.
Когда мы описываем алгоритм: программу, доказательство теоремы или решение математической задачи — мы строим его описание в рамках некоторой формальной модели. В рамках соглашений и ограничений, которые мы явно или неявно принимаем.
Описать алгоритм вне формальной модели невозможно. Хотя бы потому, что любой язык — уже формализация.
Отсюда вытекает интересная проблема.
Раз мы обсудили организацию информации, давайте поговорим о подходах к описанию свойств сущностей: композиции и классификации. Посмотрим для чего они нужны, когда какой использовать и чем может обернуться неправильный выбор.
Вопрос не так прост как кажется.
Исторически человечество сильно клонится к классификации. Начиная с ранних лет мы учим детей что классификация — это единственный основной способ организации информации — на неё опирается большинство учебников.
В итоге почти все взрослые люди имеют «урезанную» модель мира и не могут, например, в изобретательство.
К месту можно упомянуть и частный случай из отрасли — травмированность целого поколения разработчиков реализацией ООП в некоторых языках программирования, не будем показывать на них пальцем.
Заранее прошу прощения у математиков и других формалистов за отсутствие должной строгости в изложении. Свою задачу я вижу не в доказательстве математических свойств композиции и классификации, а в популяризации применения композиции.
Тезисно скажу пару слов об организации информации: зачем это нужно, на что влияет и от чего зависит.
Не в контексте программирования, а «вообще» в процессе жизнедеятельности. Конечно, к программированию всё сказанное тоже относится.