stringtranslate.com

Дарт (язык программирования)

Dartязык программирования , разработанный Ларсом Баком и Каспером Лундом и разработанный Google . [8] Его можно использовать для разработки веб- приложений и мобильных приложений , а также серверных и настольных приложений .

Dart — объектно-ориентированный , основанный на классах язык со сборкой мусора и синтаксисом в стиле C. [9] Он может компилироваться в машинный код , JavaScript или WebAssembly . Он поддерживает интерфейсы , примеси , абстрактные классы , обобщенные шаблоны и вывод типов . [4]

История

Dart был представлен на конференции GOTO в Орхусе , Дания, 10–12 октября 2011 года. [10] Ларс Бак и Каспер Лунд основали проект. [11] Dart 1.0 был выпущен 14 ноября 2013 года. [12]

Поначалу Дарт встретили неоднозначно. Некоторые раскритиковали инициативу Dart за фрагментацию сети из-за планов по включению виртуальной машины Dart в Chrome . Эти планы были отменены в 2015 году с выпуском Dart 1.9. Фокус сместился на компиляцию кода Dart в JavaScript. [13]

Dart 2.0 был выпущен в августе 2018 года с языковыми изменениями, включая систему типов. [14]

В Dart 2.6 появилось новое расширение dart2native. Это расширенная встроенная компиляция для настольных платформ Linux, macOS и Windows. [15] Раньше разработчики могли создавать новые инструменты, используя только устройства Android или iOS. С помощью этого расширения разработчики могут развертывать программу в автономные исполняемые файлы. Для запуска этих автономных исполняемых файлов не требуется устанавливать Dart SDK. [16] Набор инструментов Flutter интегрирует Dart, поэтому его можно компилировать для небольших сервисов, таких как серверная поддержка. [17] [18]

Dart 3.0 был выпущен в мае 2023 года [19] с изменениями в системе типов, требующими надежной нулевой безопасности. В этот выпуск включены новые функции, такие как записи, шаблоны, [20] и модификаторы классов. [21]

Dart может компилироваться в WebAssembly начиная с версии 3.4. [22]

Спецификация

Dart выпустила 5-е издание своей спецификации языка 9 апреля 2021 года. [23] Она охватывает весь синтаксис Dart 2.10. Черновой вариант 6-го издания включает весь синтаксис до версии 2.13. [24] Принятые предложения по спецификации и проекты потенциальных функций можно найти в репозитории языка Dart на GitHub. [25]

ECMA International сформировала технический комитет TC52 [26] для стандартизации Dart. ECMA утвердила первую редакцию спецификации языка Dart как ECMA-408 [27] в июле 2014 года на своей 107-й Генеральной ассамблее. [28] Последующие редакции были утверждены в декабре 2014 г., [29] июне 2015 г. и декабре 2015 г. [27]

Развертывание приложений

Комплект разработки программного обеспечения Dart (SDK) поставляется с автономной средой выполнения Dart. Это позволяет коду Dart запускаться в среде интерфейса командной строки . SDK включает инструменты для компиляции и упаковки приложений Dart. [30] Dart поставляется с полной стандартной библиотекой , позволяющей пользователям писать полностью работающие системные приложения, например собственные веб-серверы. [31]

Разработчики могут развертывать приложения Dart шестью способами:

Развертывание в Интернете

Dart 3 может развертывать приложения в Интернете как приложения JavaScript или WebAssembly. Dart поддерживает компиляцию в WebAssembly по состоянию на май 2024 года .

JavaScript

Для работы в обычных веб-браузерах Dart использует компилятор JavaScript из исходного кода . Это делает приложения Dart совместимыми со всеми основными браузерами. Dart оптимизирует скомпилированный вывод JavaScript, чтобы избежать дорогостоящих проверок и операций. В результате получается код JavaScript, который может работать быстрее, чем эквивалентный код, написанный вручную на чистом JavaScript. [33]
Первым компилятором Dart-to-JavaScript был dartc. Он устарел в Dart 2.0.
Вторым компилятором Dart-JavaScript был frog. [34] Написанный на Dart, он был представлен в 2013 году и устарел в 2020 году. Его не следует путать с Dart Frog, [35] фреймворком Dart с открытым исходным кодом для создания серверных систем от Very Good Ventures.
Третий компилятор Dart-JavaScript — dart2js. Представленный в Dart 2.0, [36] основанный на Dart компилятор dart2jsразвился из более ранних компиляторов. Он намеревался реализовать полную спецификацию и семантику языка Dart. Разработчики используют этот компилятор для производственных сборок. Он компилируется в минифицированный JavaScript .
Четвертый компилятор Dart-JavaScript — dartdevc. [37] Разработчики могут использовать этот компилятор для разработки сборок. Он компилируется в удобочитаемый JavaScript. 28 марта 2013 года команда Dart опубликовала в своем блоге обновление, посвященное коду Dart, скомпилированному в JavaScript с помощью компилятора dart2js, [38] заявив, что теперь он работает быстрее, чем рукописный JavaScript на JavaScript-движке Chrome V8 для теста DeltaBlue. [39]
До версии Dart 2.18 оба dart2jsи dartdevcможно было вызывать из командной строки. В Dart 2.18 эти функции включены в Dart SDK. Это удалило оболочки прямой командной строки, но сохранило два компилятора. Команда webdev serveвызывает dartdevcкомпилятор. Команда webdev buildвызывает dart2jsкомпилятор.
Dart SDK компилируется в JavaScript двумя способами.
Для отладки кода запустите webdev serveкомпиляцию более крупного файла JavaScript с удобочитаемым кодом. Сгенерированный Dart JavaScript можно отлаживать только с помощью Chrome .
$ cd <dart_app_directory>  $  webdev  служат [ --debug ] [ -o <target.js> ]   
Чтобы создать рабочие приложения, запустите webdev buildкомпиляцию мини-файла JavaScript.
$ cd <dart_app_directory>  $  webdev  build [ -o <target.js> ]  

Веб-сборка

В выпуске Dart 3.22 Google объявил о поддержке компиляции кода Dart в WebAssembly . [22] Полная поддержка Wasm требует внедрения функции WasmGC [40] в стандарт Wasm. Chrome 119 [41] поддерживает WasmGC. Firefox [42] 120 и более поздние версии могут поддерживать WasmGC, но текущая ошибка блокирует совместимость. [43] Safari [44] и Microsoft Edge интегрируют поддержку WasmGC.

Развертывание на родных платформах

Dart может компилироваться в собственный машинный код для macOS, Windows и Linux в качестве инструментов командной строки. Dart может компилировать приложения с пользовательскими интерфейсами для Интернета, iOS, Android, macOS, Windows и Linux с помощью платформы Flutter .

Автономный исполняемый файл

Автономные исполняемые файлы включают собственный машинный код, скомпилированный из указанного файла кода Dart, его зависимостей и небольшую среду выполнения Dart. Среда выполнения занимается проверкой типов и сборкой мусора. Компилятор выдает выходные данные, соответствующие архитектуре, на которой его скомпилировал разработчик. Этот файл можно распространять как любой другой собственный исполняемый файл.
$  dart  compile  exe  <source.dart>  -o  <target_app>Сгенерировано:  <target_app>$  ./<целевое_приложение>

Модуль опережения времени

При предварительной компиляции [ 45] код Dart создает переносимые, производительные и специфичные для платформы модули. Он включает в себя все зависимые библиотеки и пакеты, необходимые приложению, а также небольшую среду выполнения Dart. Это увеличивает время компиляции. Компилятор выводит приложение, соответствующее архитектуре, на которой оно было скомпилировано.
$  dart  скомпилировать  aot-snapshot  <source.dart>Создан  <target_app.aot>$  dartaotruntime  <target_app.aot>

Модуль «Точно в срок»

При своевременной компиляции код Dart создает высокопроизводительные модули, которые быстро компилируются. Для работы этого модуля требуется виртуальная машина Dart, включенная в SDK. Компилятор загружает все проанализированные классы и скомпилированный код в память при первом запуске приложения. Это ускоряет любой последующий запуск приложения. Компилятор выводит приложение, соответствующее архитектуре, на которой оно было скомпилировано.
$  dart  скомпилировать  jit-snapshot  <source.dart>Компиляция  <source.dart>  в файл  jit-снимка <target_app.jit>  Привет,  мир!$  dart  run  <target_app.jit>Привет,  мир!

Модуль ядра Dart

При компиляции как модуль ядра код Dart создает машинно-независимый формат, называемый промежуточным представлением Dart (Dart IR). Формат байт-кода Dart IR может работать на любой архитектуре, в которой есть виртуальная машина Dart. Это делает этот формат очень портативным и быстрым в компиляции, но менее производительным, чем другие результаты компиляции.
$  dart  компилирует  ядро  ​​<source.dart>Компиляция  <source.dart>  в файл  ядра <target_app>.dill.  $  dart  run  <target_app>.dill

Параллелизм

Для достижения параллелизма Dart использует изолированные, независимые рабочие процессы, которые не совместно используют память, но используют передачу сообщений [46] аналогично процессам Erlang (см. также модель актера ). Каждая программа Dart использует как минимум один изолят, который является основным. Начиная с Dart 2, веб-платформа Dart больше не поддерживает изоляты и предлагает разработчикам вместо этого использовать Web Workers . [47]

Нулевая безопасность

Начиная с Dart 2.12, Dart представил надежную нулевую безопасность . [48] ​​Это служит гарантией того, что переменные не смогут вернуть нулевое значение, если на это не будет явного разрешения. Нулевая безопасность не позволяет разработчику вводить исключения с нулевым указателем — распространенную, но сложную для отладки ошибку. В Dart 3.0 весь код должен соответствовать требованиям нулевой безопасности.

Хранилище данных

Файлы моментальных снимков — основная часть виртуальной машины Dart — хранят объекты и другие данные времени выполнения. [46]

Снимки сценариев
Программы Dart можно скомпилировать в файлы моментальных снимков, содержащие весь программный код и зависимости, подготовленные и готовые к выполнению, что обеспечивает быстрый запуск.
Полные снимки
Основные библиотеки Dart можно скомпилировать в файл моментального снимка, который позволяет быстро загружать библиотеки. Большинство стандартных дистрибутивов основной виртуальной машины Dart имеют готовый снимок основных библиотек, который загружается во время выполнения.
Снимки объектов
Dart использует снимки для сериализации сообщений, которые он передает между изолятами. Будучи очень асинхронным языком, Dart использует изоляты для параллелизма . [49] Объект генерирует снимок , передает его другому изоляту, затем изолят десериализует его.

Редакторы

18 ноября 2011 года Google выпустила Dart Editor — программу с открытым исходным кодом, основанную на компонентах Eclipse , для операционных систем на базе macOS , Windows и Linux . [50] Редактор поддерживает подсветку синтаксиса , завершение кода , компиляцию JavaScript, запуск веб- и серверных приложений Dart, а также отладку .

13 августа 2012 года Google объявила о выпуске плагина Eclipse для разработки Dart. [51]

18 апреля 2015 года Google отказался от редактора Dart Editor в пользу интегрированной среды разработки (IDE) JetBrains . [52] Android Studio , IntelliJ IDEA , PyCharm , PhpStorm и WebStorm поддерживают плагин Dart. [53] Этот плагин поддерживает множество функций, таких как подсветка синтаксиса, завершение кода, анализ, рефакторинг, отладка и многое другое. Другие редакторы включают плагины для Dart [54], включая Sublime Text , [55] Atom , [56] Emacs , [57] Vim [58] и Visual Studio Code . [59]

Редактор Chrome для разработчиков

В 2013 году команда Chromium начала работу над средой разработки на основе приложений Chrome с открытым исходным кодом и многоразовой библиотекой виджетов графического интерфейса под кодовым названием Spark. [60] Позже проект был переименован в Chrome Dev Editor. [61] Построенный на Dart, он содержал Spark, питаемый полимером. [62]

В июне 2015 года Google перенесла проект CDE на GitHub как проект бесплатного программного обеспечения и прекратила активные инвестиции в CDE. [63] Проект Chrome Dev Editor был заархивирован 24 апреля 2021 г. [64]

Дартпад

Чтобы упростить начало использования Dart, команда Dart в начале 2015 года создала DartPad. Этот онлайн-редактор позволяет разработчикам экспериментировать с интерфейсами прикладного программирования (API) Dart и запускать код Dart. Он обеспечивает подсветку синтаксиса, анализ кода, завершение кода, документацию и редактирование HTML и CSS. [65]

Инструменты разработки

Dart DevTools, написанные на Dart [66] , включают инструменты отладки и повышения производительности.

трепетать

Google представила Flutter для разработки собственных приложений. Flutter, созданный с использованием Dart, C, C++ и Skia, представляет собой многоплатформенную среду пользовательского интерфейса приложений с открытым исходным кодом. До Flutter 2.0 разработчики могли ориентироваться только на Android , iOS и Интернет. Flutter 2.0 выпустил поддержку macOS, Linux и Windows в качестве бета-функции. [67] Выпущен Flutter 2.10 с производственной поддержкой для Windows [68], а Flutter 3 выпущен с производственной поддержкой для всех настольных платформ. [69] Он предоставляет структуру, виджеты и инструменты. Эта платформа дает разработчикам возможность создавать и развертывать мобильные, настольные и веб-приложения. [70] Flutter работает с Firebase [71] и поддерживает расширение платформы с помощью надстроек, называемых пакетами. Их можно найти в репозитории пакетов pub.dev. [72] JetBrains также поддерживает плагин Flutter. [73]

Пример

Привет , мир! пример:

void main () { print ( 'Hello, World!' ); }   

Простой цикл for : [74]

void main () { for ( var я = 1 ; я <= 10 ; я ++ ) { print ( я ); } }              

Функция для вычисления n-го числа Фибоначчи :

void main () { вар я = 20 ; print ( 'фибоначчи ( $ я ) = $ { фибоначчи ( я ) } ' ); }       /// Вычисляет n-е число Фибоначчи. int fibonacci ( int n ) { return n < 2 ? n : ( фибоначчи ( n - 1 ) + фибоначчи ( n - 2 )); }                 

Простой класс:

// Импортируем математическую библиотеку, чтобы получить доступ к функции sqrt. // Импортируется с именем `math`, поэтому для доступа необходимо использовать `math.` в качестве префикса. импортировать «dart:math» как math ;   // Создаём класс для Point. класс Точка {   // Конечные переменные не могут быть изменены после их присвоения. // Объявляем две переменные экземпляра. окончательное число x , y ;      // Конструктор с синтаксическим сахаром для установки переменных экземпляра. // Конструктор имеет два обязательных параметра. Точка ( это . x , это . y );    // Именованный конструктор со списком инициализаторов. Точка . происхождение () : Икс знак равно 0 , у знак равно 0 ;         // Метод. num distanceTo ( Другая точка ) { var dx = x - other . Икс ; вар dy = y - другое . й ; вернуть математику . sqrt ( dx * dx + dy * dy ); } // Пример «геттера». // Действует так же, как конечная переменная, но вычисляется при каждом доступе. число получить величину => математика . sqrt ( х * х + у * у );                                        // Пример перегрузки оператора Pointoperator + ( Pointother ) = > Point ( x + other.x , y + other.y ) ;// Когда вы создаете экземпляр класса, такого как Point в Dart 2+, слово new является // необязательным словом }             // Все программы Dart начинаются с main(). void main () { // Создание экземпляров точечных объектов. вар p1 = Точка ( 10 , 10 ); печать ( p1 . величина ); вар p2 = Точка . источник (); вар расстояние = p1 . расстояниеДо ( p2 ); печать ( расстояние ); }                  

Влияние других языков

Dart принадлежит языковой семье АЛГОЛ . [75] [ не удалось проверить ] В его состав входят C, Java, C#, JavaScript и другие.

Синтаксис каскада методов был заимствован из Smalltalk. [76] Этот синтаксис обеспечивает ярлык для вызова нескольких методов один за другим для одного и того же объекта.

Миксины Дарта находились под влиянием Strongtalk [77] [ 78 ] и Ruby .

Dart использует изоляты в качестве единицы параллелизма и безопасности при структурировании приложений. [79] Концепция изоляции основана на модели актера, реализованной в Erlang. [80]

В 2004 году Гилад Брача (который был членом команды Dart) и Дэвид Унгар впервые предложили Mirror API для контролируемого и безопасного отражения в бумаге. [81] Эта концепция была впервые реализована в Self .

Смотрите также

Рекомендации

  1. Копец, Дэвид (30 июня 2014 г.). Дартс для абсолютных новичков. Апресс. п. 56. ИСБН 9781430264828. Проверено 24 ноября 2015 г.
  2. Бак, Ларс (10 октября 2011 г.). «Dart: язык структурированного веб-программирования». Блог Google Code . Проверено 31 января 2016 г.
  3. ^ «Выпуск 3.4.4».
  4. ^ ab «Система типов Dart». dart.dev .
  5. ^ «Веб-языки и виртуальные машины: быстрый код всегда в моде. (V8, Dart) - Google I/O 2013» . YouTube . Проверено 22 декабря 2013 г.
  6. ^ «Команда Dart приветствует TypeScript» . 10 сентября 2019 г. Проверено 22 февраля 2020 г. .
  7. ^ "Теги Dart SDK" . Гитхаб .
  8. ^ «Немного о дартс - Изучите дартс: первый шаг к трепетанию» . Образовательные: интерактивные курсы для разработчиков программного обеспечения . Проверено 20 июня 2023 г.
  9. ^ «Экскурсия по языку дартс». dart.dev . Проверено 9 августа 2018 г.
  10. ^ «Dart, новый язык программирования для структурированного веб-программирования», конференция GOTO (презентация) (вступительная речь), конференция в Орхусе, 10 октября 2011 г.{{citation}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  11. ^ Лэдд, Сет. «Что такое Дарт». Что такое Дарт? . О'Рейли . Проверено 16 августа 2014 г.
  12. ^ «Dart 1.0: стабильный SDK для структурированных веб-приложений» . news.dartlang.org . Проверено 8 августа 2018 г.
  13. Сет Лэдд (10 сентября 2019 г.). «Новости и обновления Дарт». dartlang.org .
  14. ^ Мур, Кевин (07 августа 2018 г.). «Анонс Dart 2 Stable и веб-платформы Dart». Дарт . Проверено 8 августа 2018 г.
  15. ^ "Эволюция языка дартс" . dart.dev . Проверено 20 июня 2023 г.
  16. ^ "Обзор дартс" . dart.dev . Проверено 12 мая 2023 г.[ постоянная мертвая ссылка ]
  17. ^ «Dart 2.5 переносит встроенную компиляцию на рабочий стол» . Инфомир . 20 ноября 2019 г. Проверено 28 ноября 2019 г.
  18. ^ «Dart 2.6 выпущен с помощью dart2native» . SDtimes . 7 ноября 2019 года . Проверено 28 ноября 2019 г.
  19. ^ "Эволюция языка дартс" . dart.dev . Проверено 9 января 2024 г.
  20. ^ «Узоры». dart.dev . Проверено 12 мая 2023 г.[ постоянная мертвая ссылка ]
  21. ^ «Модификаторы классов».
  22. ^ abc Томсен, Майкл (14 мая 2024 г.). «Посадка Flutter 3.22 и Dart 3.4 на Google I/O 2024». Трепетать . Проверено 17 мая 2024 г.
  23. ^ «Спецификация языка программирования Dart, 5-е издание» (PDF) .
  24. ^ «Спецификация языка программирования Dart, черновик 6-го издания» (PDF) .
  25. ^ «Репозиторий GitHub языка Dart» . Гитхаб .
  26. ^ "TC52 - Дротик" . Архивировано из оригинала 02 августа 2016 г. Проверено 16 декабря 2013 г.
  27. ^ аб "ECMA-408". Экма Интернешнл . Проверено 12 мая 2023 г.
  28. Андерс Торхауге Сандхольм (10 сентября 2019 г.). «Новости и обновления Дарт». dartlang.org .
  29. Андерс Торхауге Сандхольм (10 сентября 2019 г.). «Новости и обновления Дарт». dartlang.org .
  30. ^ "Пакеты инструментов издателя.dart.dev" . Дартс-пакеты . Проверено 12 мая 2023 г.
  31. ^ «Введение в библиотеку dart:io» . dart.dev . Проверено 21 июля 2013 г.
  32. ^ Томсен, Майкл (10 мая 2023 г.). «Анонсируем Дарт 3». Дарт . Проверено 13 мая 2023 г.
  33. ^ «JavaScript как цель компиляции: делаем это быстро» (PDF) . Дартланг.орг. Архивировано из оригинала (PDF) 2 июля 2016 г. Проверено 18 августа 2013 г.
  34. ^ «На пути к единому компилятору Dart to JavaScript» . 10 сентября 2019 года . Проверено 13 мая 2023 г.
  35. ^ "Лягушка-дротик". dartfrog.vgv.dev . Проверено 13 мая 2023 г.
  36. ^ Мур, Кевин (8 августа 2018 г.). «Анонс Dart 2 Stable и веб-платформы Dart». Дарт . Проверено 13 мая 2023 г.
  37. ^ «dartdevc: Компилятор разработки Dart» . dart.dev . Проверено 13 мая 2023 г.[ постоянная мертвая ссылка ]
  38. ^ Лэдд, Сет (28 марта 2013 г.). «Новости и обновления Dart: почему dart2js создает более быстрый код JavaScript из Dart». News.dartlang.org . Проверено 21 июля 2013 г.
  39. ^ "Дарт-спектакль". Dartlang.org . Архивировано из оригинала 3 января 2017 г. Проверено 21 июля 2013 г.
  40. ^ Предложение GC для WebAssembly, WebAssembly, 12 мая 2023 г. , получено 13 мая 2023 г.
  41. ^ «Сборка мусора WebAssembly (WasmGC) теперь включена по умолчанию в Chrome | Блог» . Chrome для разработчиков . Проверено 17 мая 2024 г.
  42. ^ «Информационный бюллетень SpiderMonkey (Firefox 110-111)» . SpiderMonkey JavaScript/движок WebAssembly . 16 февраля 2023 г. Проверено 13 мая 2023 г.
  43. ^ «1788206 — OffscreenCanvas.transferToImageBitmap создает копию» . bugzilla.mozilla.org . Проверено 17 мая 2024 г.
  44. ^ «Примечания к выпуску предварительного просмотра Safari Technology 167» . Документация разработчика Apple . Проверено 13 мая 2023 г.
  45. ^ Обинна, Онуоха (07.04.2020). «Как JIT и AOT работают в Dart?». Середина . Проверено 20 июня 2023 г.
  46. ^ ab «Суть Google Dart: создание приложений, моментальных снимков, изолятов». ИнфоQ . Проверено 29 августа 2021 г.
  47. Мур, Кевин (23 февраля 2018 г.). «Критическое изменение Dart2: удаление веб-поддержки dart:mirrors и dart:isolate». Группы Google .
  48. ^ Грачек, Филип (10 июня 2020 г.). «Объявление о нулевой безопасности». Дарт . Проверено 12 мая 2023 г.
  49. ^ «Параллелизм в Dart». dart.dev . Проверено 12 мая 2023 г.
  50. ^ «Google выпускает редактор Dart для Windows, Mac OS X и Linux» . Архивировано из оригинала 3 декабря 2013 г. Проверено 29 ноября 2011 г.
  51. ^ «Плагин Dart для Eclipse готов к предварительной версии» . 10 сентября 2019 г.
  52. ^ Лэдд, Сет (30 апреля 2015 г.). «Настоящее и будущее редакторов и IDE для Dart». Новости и обновления Дарт . Проверено 18 мая 2015 г.
  53. ^ «Репозиторий плагинов JetBrains: Dart» . Плагины.intellij.net . Проверено 21 июля 2013 г.
  54. ^ "Инструменты для дартса". dart.dev . Проверено 15 ноября 2016 г.
  55. ^ «Дарт - Пакеты - Управление пакетами» . packagecontrol.io . Проверено 13 мая 2023 г.
  56. ^ «dart — плагин Dart для Atom» . dart-atom.github.io . Проверено 13 мая 2023 г.
  57. ^ Трейнор, Брэди (15 апреля 2023 г.), bradyt/dart-mode , получено 13 мая 2023 г.
  58. ^ Поддержка Dart для Vim, Dart, 9 мая 2023 г. , получено 13 мая 2023 г.
  59. ^ «Дарт — Торговая площадка Visual Studio» . marketplace.visualstudio.com . Проверено 13 мая 2023 г.
  60. ^ Бофорт, Франсуа. «Команда Chromium в настоящее время активно работает».
  61. ^ «Среда разработки на основе приложений Chrome» . Гитхаб . 26 октября 2021 г.
  62. ^ «Spark, приложение Chrome от Google — это IDE для вашего Chromebook» . 22 ноября 2013 г.
  63. ^ Саруп, Шри. «Редактор Chrome для разработчиков: объявления».
  64. ^ «Chrome Dev Editor — это инструмент разработчика для создания приложений на платформе Chrome: приложений Chrome и веб-приложений на JavaScript или Dart. (БОЛЬШЕ НЕ В АКТИВНОЙ РАЗРАБОТКЕ) — googlearchive/chromedeveditor» . 29 июля 2019 г. – через GitHub.
  65. ^ Лэдд, Сет (6 мая 2015 г.). «Анонсируем DartPad: простой способ изучения кода Dart». Новости и обновления Дарт . Проверено 18 мая 2015 г.
  66. ^ Dart & Flutter DevTools, Flutter, 12 мая 2023 г. , получено 12 мая 2023 г.
  67. ^ Селлс, Крис (3 марта 2021 г.). «Что нового во Flutter 2.0». Трепетать . Проверено 12 мая 2023 г.
  68. Снит, Тим (3 февраля 2022 г.). «Анонсируем Flutter для Windows».
  69. ^ Чисхолм, Кевин (12 мая 2022 г.). «Что нового во Flutter 3». Трепетать . Проверено 12 мая 2023 г.
  70. ^ «Часто задаваемые вопросы». флаттер.dev . Проверено 29 августа 2021 г.
  71. ^ "Огневая база". флаттер.dev . Проверено 29 августа 2021 г.
  72. ^ "Пакеты дартс" . Дартс-пакеты . Проверено 12 мая 2023 г.
  73. ^ «Flutter — плагин IntelliJ IDE | Торговая площадка» . Торговая площадка JetBrains . Проверено 13 мая 2023 г.
  74. ^ «Петли в дартс | Мир Fluter | Учебные пособия по дартсу и Flutter» .
  75. ^ "Семья Алголь". c2.com .
  76. ^ "Каскады методов в дартсе" . 10 сентября 2019 г. Проверено 13 мая 2023 г.
  77. ^ Браха, Гилад; Грисволд, Дэвид (сентябрь 1996 г.). «Расширение языка Smalltalk с помощью миксинов» (PDF) . Семинар ООПСЛА . УПСЛА.
  78. Лэдд, Сет (13 ноября 2011 г.). «Транскрипция «Краткого путешествия по дартсу» Гилада Брахи» . Проверено 13 мая 2023 г.
  79. ^ «Суть Google Dart: создание приложений, снимков, изолятов» . ИнфоQ .
  80. ^ «Бесстрашный параллелизм: как Clojure, Rust, Pony, Erlang и Dart позволяют вам этого достичь. - Ренато Атайдес» . сайты.google.com . Архивировано из оригинала 13 мая 2023 г. Проверено 13 мая 2023 г.
  81. ^ Браха, Гилад; Унгар, Дэвид (2004). «Зеркала: принципы проектирования средств метауровня объектно-ориентированных языков программирования» (PDF) . Уведомления ACM SIGPLAN . 39 (10). АКМ: 331–344. дои : 10.1145/1035292.1029004 . Проверено 15 февраля 2014 г.

Библиография

Внешние ссылки