Ali Muradovcard.quotedбылтырғы жыл
1. Dart Native. Используется для приложений, разрабатываемых под мобильные устройства и персональные компьютеры с различными типами операционных систем. Сюда входит как виртуальная машина Dart с JIT-компиляцией, так и опережающий компилятор (AOT) для создания машинного кода. Виртуальная машина Dart с JIT-компилятором используется в процессе разработки приложений и предоставляет разработчику возможность горячей перезагрузки приложения (нет необходимости компилировать приложение снова и запускать его), сбора различных метрик в реальном времени и т.д. Когда же приложение готово к развертыванию на целевой платформе или его загрузке в магазин для последующего скачивания пользователем, компилятор Dart AOT обеспечивает опережающую компиляцию в машинный код ARM или x64. Скомпилированный AOT код выполняется внутри среды выполнения Dart, где также присутствует сборщик мусора, в котором применяется подход на основе поколений.

2. Dart Web. Используется для приложений, ориентированных на Интернет. В этом случае также применяются два вида компиляторов Dart. Первый (dartdevc) используется только в процессе разработки, а второй (dart2js) — для окончательной сборки приложения перед его развертыванием. Оба компилятора переводят пользовательский код, написанный на Dart, в JavaScript.

Рис. 1.1. Структура платформы языка программирования Dart (BSD-3-Clause license, https://github.com/dart-lang/sdk)

Dart — однопоточный язык программирования, что накладывает ряд ограничений. Да, есть возможность писать асинхронный код, но привычного по другим языкам класса Thread здесь нет. Вместо него используется понятие «изолят» (isolate). В отличие от обычного потока изоляты не разделяют общую память, а взаимодействовать друг с другом могут с помощью сообщений.

У Dart есть свой менеджер пакетов — pub, который позволяет устанавливать существующие в хранилище пакеты. В большинстве случаев нет надобности взаимодействовать с ним напрямую. Достаточно просто прописать в виде зависимости проекта пакет, который необходимо установить, в файл pubspec.yaml.

Обязательным требованием к запускаемому приложению является наличие функции верхнего уровня main, выступающей в роли точки входа (запуска) для разрабатываемого приложения. При этом аналогично таким языкам программирования, как C++, С#, Java и т.д., каждая команда в коде завершается символом точки с запятой (;).
  • Комментарий жазу үшін кіру немесе тіркелу