Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Categories:

Агитпроп набирает обороты

По наводке xeno_by 

The story of Evil King Java and his quest for worldwide verb stamp-outage

Интересно сравнить это с агитками какого-нибудь Буча Сравните статью с противоположной по смыслу цитатой из старой книги Буча, оказавшей огромное влияние на раннего меня. Сплошные существительные! Это говорит лишь о том, что метафоры - это идиотизм. Оставьте их поэтам клоунам, политикам и маркетологам, продающим удлиннители члена.
Персональный компьютер (ПК) - прибор умеренной сложности. Большинство ПК состоит из одних и тех же основных элементов: системной платы, монитора, клавиатуры и устройства внешней памяти какого-либо типа (гибкого или жесткого диска). Мы можем взять любую из этих частей и разложить ее в свою очередь на составляющие. Системная плата, например, содержит оперативную память, центральный процессор (ЦП) и шину, к которой подключены периферийные устройства. Каждую из этих частей можно также разложить на составляющие: ЦП состоит из регистров и схем управления, которые сами состоят из еще более простых деталей: диодов, транзисторов и т.д.

Растение состоит из трех основных частей: корни, стебли и листья. Каждая из них имеет свою особую структуру. Корень, например, состоит из корневых отростков, корневых волосков, верхушки корня и т.д. Рассматривая срез листа, мы видим его эпидермис, мезофилл и сосудистую ткань. Каждая из этих структур, в свою очередь, представляет собой набор клеток. Внутри каждой клетки можно выделить следующий уровень, который включает хлоропласт, ядро и т.д. Так же, как у компьютера, части растения образуют иерархию, каждый уровень которой обладает собственной независимой сложностью.

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

В компьютере транзисторы используются как в схеме ЦП, так и жесткого диска. Аналогично этому большое число "унифицированных элементов" имеется во всех частях растения. Так Создатель достигал экономии средств выражения. Например, клетки служат основными строительными блоками всех структур растения; корни, стебли и листья растения состоят из клеток. И хотя любой из этих исходных элементов действительно является клеткой, существует огромное количество разнообразных клеток. Есть клетки, содержащие и не содержащие хлоропласт, клетки с оболочкой, проницаемой и непроницаемой для воды, и даже живые и умершие клетки.

При изучении морфологии растения мы не выделяем в нем отдельные части, отвечающие за отдельные фазы единого процесса, например, фотосинтеза. Фактически не существует централизованных частей, которые непосредственно координируют деятельность более низких уровней. Вместо этого мы находим отдельные части, которые действуют как независимые посредники, каждый из которых ведет себя достаточно сложно и при этом согласованно с более высокими уровнями. Только благодаря совместным действиям большого числа посредников образуется более высокий уровень функционирования растения.
UPD: Дальше в книге Буч приводит пример "алгоритмической" (в терминологии Буча) декомпозиции "на глаголы" (в терминологии автора поста про существительные в Джаве):



Однако, это никакая не "функциональная" декомпозиция, как пытается представить автор поста о существительных и глаголах, а "процедурная", не имеющая к функциональному программированию никакого отношения. В общем-то, эта зацикленность на процедурной декомпозиции не дает людям нормально писать на Хаскеле: они видят вместо функций высшего порядка процедуры высшего порядка, что тоже неплохо, но не то.

Функции - это скорее прилагательные. Не "увеличить, а затем украсить список", а "украшенный увеличенный список". Т.е. не enlarge(decorate(list)), а enlarged(decorated(list)). Понятно также, что отсюда идёт и привычка рассуждать операционно, и желание inplace updates, и даже невозможность понять атомарную интерпретацию контейнеров.
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments