Борьба с "замкнутостью" Dart

Дефолтные разрабы и не подозревают, что творится под капотом DartVM. Счастливые люди - ведь меньше знаешь, крепче спишь!

А вот при работе над Duit я столкнулся с любопытной особенностью: неявными механизмами создания замыканий при присваивании функций переменным или ключам Map. Даже если твоя функция статическая, а Map константная - ты никогда не сможешь избавиться от этой противной обертки.

Но почему у меня так пригорело? И правда, ведь с точки зрения разработки приложений это практически не влияет на общую производительность... Но мы то речи ведем про UI фреймворк, где на все про все у нас бюджет 16ms. У нас времени для игр, мы должны экономить каждый такт процессора!)

В связи с этим создал в репозитории Dart SDK issue, где:

  • Описал проблематику
  • Привел real-world пример
  • Задал интересующие меня вопросы и даже предложил парочку вариантов решения проблемы

Проваливайтесь в issue и ставьте 🤙. Чем больше внимания, тем выше шанс, что команда Dart обратит внимание и даст фидбек.