Разрешаем парадокс одновременно и читаемого и производительного кода

IDE Vision

Большой тред об идее в Grumpy chat

Related

Story

появилась огонь идея но как реализовать пока не совсем понимаю

итак там показывается какие ужасы таят сахарные конструкции вроде стрелочных методов в js «классах» или спред операторы после прохода транспилятором, есть и много не показанных штук, которые даже не на транспиляторе ужасны а в ассемблере, напирмер !foo сильно хуже чем foo === undefined

но эффективный код будет тяжео читаться

было бы здорово если в IDE был плагин который после нескольких запусков кода показывал где в коде медленно.

Проактивно; без запроса програмииста. И плагин должен быть из коробки; иначе нет шансов что это что-то изменит в индустрии

и теперь та самая идея:

некий инструмент должен давать подкладывать под читаемый код его эффективную фактическую версию.

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

Side view. HoTT

у меня гомотопия вроде как к коду а не к типам,

это более сложная задача как я понимаю

но я и не хочу её в общем виде решать

у компиляторов как я себе представляют обычно есть варианты кода который он может сгенерить и они могут выбирать наиболее подходящий

но даже без изоморфизма можно жить думаю,

тогда правда на каждое изменение читаемого кода придётся просить актуализировать фактический эффективный код

или если правки тривиальные, то можно из на уровне ast разрулить без глубокого понимания тулингом кода или хотя бы предложить изменение человеку чтобы он уже доделал

движок JS и так делает очень много, но на том уровне где уже не так много можно исправить или угадать

тут мы решаем проблему раньше и главное до рантайма у пользователя