amarao (amarao_san) wrote,
amarao
amarao_san

Categories:

пример квадратно-гнездовой деоптимизации

Самым интересным примером деоптимизации во имя упрощения я считаю отсутствие регистров в модели памяти практически всех языков программирования. Даже самые упоротые на производительности языки не хотят притаскивать в модель памяти регистры. Оптимизатор может их использовать (и использует!), но на уровне абстракции их нет. Если их принести в язык, наверное, есть моменты, когда можно будет сделать тоньшее и точнее. Изящнее.

Но нет. Мы выжигаем всю изящность и оставляем квадратно-гнездовое "все непустые переменные в памяти у всех объектов в памяти есть адрес" (я про условный C/Rust).

Этот переход - пример сильной абстракции, которая скрывает детали реализации. При том, что с низкоуровневой точки зрения язык пушит невероятное количество policy, с высокоуровневой язык почти целиком состоит из tool.

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

Посмотрите на все великие абстракции окружающего мира - файлы, tcp, переменные... Каждая из них выжигает за собой всё. И каждая из них велика. И посмотрите на анти-паттерны. Делает ли cron описание "выполнить по таймеру" проще? Делает ли Makefile хоть что-то проще?
Tags: философия
Subscribe

  • мы их теряем!

    Make: 1976 Прямо сейчас выходят на пенсию люди, для которых make был новомодной технологией, которую притащили хипстеры.

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.

  • Post a new comment

    Error

    default userpic

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

  • мы их теряем!

    Make: 1976 Прямо сейчас выходят на пенсию люди, для которых make был новомодной технологией, которую притащили хипстеры.

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.