nlothik (nlothik) wrote,
nlothik
nlothik

Categories:

Уровни абстракции

Вышла небольшая дискуссия с ув. dibr. Ну, даже если мы и несогласны, лично мне всегда интересно обменяться обоснованными мнениями.

Одной из точек дискуссии было, что "нельзя всё свести к физике".

А вот мне кажется, что таки можно. Просто -- а надо ли? Понятное дело, что человечеству, по мере роста сложности изучаемого, приходится применять всё более высокие уровни абстракции. Иначе для того, чтобы описать, что происходит, понадобятся просто простыни и индустриальные рулоны текста.

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

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

С этим столкнулся даже я, будучи студентом-программистом на Джаве. Писали мы сортировку пузырьком. Вот в теории наибольшее время этот алгоритм должен работать, если массив у тебя сортирован в обратном порядке -- ибо так приходится двигать наибольшее количество данных. Однако на деле получилось так, что массив, сортированный в обратном порядке, сортировался назад быстрее массива, заполненного случайными числами, раза эдак в два!

А почему? А потому что внутри процессора стоит предсказатель переходов, который заранее загружает в конвеер процессора ту ветвь исполнения кода, на которую, как он предсказывает, пойдёт исполнение. При массиве, сортированном в обратном порядке, предсказатель тупо ванговал, "ага, опять следующее число окажется меньше!" и всё быстро отрабатывалось. При случайном массиве предсказатель не мог ничего предсказать, и конвеер постоянно обламывался. Хотя, казалось бы -- на каком уровне Джавовский байт-код, и на каком уровне предсказатель ветвления.

Но с программированием всё достаточно просто -- чтобы получить машинные коды из exe-шника (хотя бы в ассемблеровском представлении, чтобы хотя бы можно было нормально читать), сильно много телодвижений делать не надо. Сунул в декомпилятор и всё тут.

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

Проще и продуктивнее описывать события терминами, лучше всего подходящими для соответствующего уровня абстракции. И не пытаться мерять силу музыки в амперах, а категорический императив Канта -- использовать для описания поведения элементарных частиц.
Tags: чесать репу
Subscribe

  • Компромисс

    Говорят, минималку таки сделают 11 монет в час. 15 у них не вышло протолкнуть. Вот с такими цифрами можно уже соглашаться. Хотя лично я считаю,…

  • Пчёлы против мёда

    Прочитал новость о том, что Безос решил поддержать увеличение налогов для корпораций. Ну, а чего, почему бы не поддержать? Безос эти налоги платить…

  • Как выглядит минималка в 15 в час

    Собственно, последствия можно видеть прямо сейчас на примере Амазона, который поднял минималку до 15 монет в час для всех работников в США. Из…

  • 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.
  • 79 comments

  • Компромисс

    Говорят, минималку таки сделают 11 монет в час. 15 у них не вышло протолкнуть. Вот с такими цифрами можно уже соглашаться. Хотя лично я считаю,…

  • Пчёлы против мёда

    Прочитал новость о том, что Безос решил поддержать увеличение налогов для корпораций. Ну, а чего, почему бы не поддержать? Безос эти налоги платить…

  • Как выглядит минималка в 15 в час

    Собственно, последствия можно видеть прямо сейчас на примере Амазона, который поднял минималку до 15 монет в час для всех работников в США. Из…