Dart - это язык программирования, оптимизированный для клиентов, для быстрых приложений на нескольких платформах. Он разработан Google и используется для создания мобильных, настольных, серверных и веб-приложений.

Dart - это объектно-ориентированный язык с определением классов и сборкой мусора, использующий синтаксис в стиле C, который при необходимости транскомпилируется в JavaScript. Он поддерживает интерфейсы, миксины, абстрактные классы, овеществленные дженерики, статическую типизацию и систему звуковых типов.

Flutter использовал четыре основных параметра для оценки и учитывал потребности авторов, разработчиков и конечных пользователей фреймворка. Было обнаружено, что некоторые языки соответствовали некоторым требованиям, но Dart получил высокие баллы по всем параметрам оценки и соответствовал всем нашим требованиям и критериям.

Среда выполнения и компиляторы Dart поддерживают сочетание двух важных функций Flutter:

  1. Быстрый цикл разработки на основе JIT, который позволяет изменять форму и выполнять горячую перезагрузку с сохранением состояния на языке с типами.
  2. Опережающий компилятор, который генерирует эффективный код ARM для быстрого запуска и предсказуемой производительности производственных развертываний.

Dart высоко ценится нами по следующим основным критериям:

  • Производительность разработчиков. Одно из основных ценностных предложений Flutter заключается в том, что он экономит инженерные ресурсы, позволяя разработчикам создавать приложения для iOS и Android с одной и той же кодовой базой. Использование высокопроизводительного языка еще больше ускоряет работу разработчиков и делает Flutter более привлекательным. Это было очень важно как для нашей команды разработчиков фреймворка, так и для наших разработчиков. Большая часть Flutter построена на том же языке, который мы даем нашим пользователям, поэтому нам нужно оставаться продуктивными, используя 100 тысяч строк кода, не жертвуя доступностью или удобочитаемостью фреймворка и виджетов для наших разработчиков.
  • Объектная ориентация. Для Flutter нам нужен язык, который подходит для проблемной области Flutter: создание визуального взаимодействия с пользователем. В отрасли накоплен многолетний опыт создания фреймворков пользовательского интерфейса на объектно-ориентированных языках. Хотя мы могли бы использовать не объектно-ориентированный язык, это означало бы заново изобрести колесо, чтобы решить несколько сложных проблем. Кроме того, подавляющее большинство разработчиков имеют опыт объектно-ориентированной разработки, что упрощает обучение разработке с помощью Flutter.
  • Прогнозируемая высокая эффективность. С помощью Flutter мы хотим дать разработчикам возможность создавать быстрые и плавные пользовательские интерфейсы. Для этого нам нужно иметь возможность запускать значительный объем кода конечного разработчика во время каждого кадра анимации. Это означает, что нам нужен язык, который обеспечивает высокую производительность и предсказуемую производительность без периодических пауз, которые могли бы вызвать пропадание кадров.
  • Быстрое размещение. Фреймворк Flutter использует поток функционального стиля, который сильно зависит от основного распределителя памяти, эффективно обрабатывающего небольшие краткосрочные выделения. Этот стиль был разработан для языков с этим свойством и не работает эффективно на языках, в которых это свойство отсутствует.