Дарт (язык программирования)
![]() | |
Парадигма | Мультипарадигмальность : функциональная , императивная , объектно-ориентированная , рефлексивная. [ 1 ] |
---|---|
Разработано | Ларс Бак , Каспер Лунд |
Разработчик | |
Впервые появился | 10 октября 2011 г [ 2 ] |
Стабильная версия | 3.5.0 [ 3 ] ![]() |
Дисциплина набора текста | 1.x: Необязательно 2.x: Предполагаемый [ 4 ] ( статичный , сильный ) |
Платформа | Кросс-платформенный |
ТЫ | Кросс-платформенный |
Лицензия | БСД |
Расширения имен файлов | .dart |
Веб-сайт | дротик |
Основные реализации | |
Dart VM, dart2native, dart2js, DDC, Flutter | |
Под влиянием | |
C , C++ , C# , Erlang , Java , JavaScript , Ruby , Smalltalk , Strongtalk , [ 5 ] Машинопись [ 6 ] |
Dart — язык программирования, разработанный Ларсом Баком и Каспером Лундом и разработанный Google . [ 8 ] Его можно использовать для разработки веб- и мобильных приложений, а также серверных и настольных приложений .
Dart — это объектно-ориентированный , основанный на классах язык сборкой мусора со C. в стиле синтаксисом и [ 9 ] Он может компилироваться в машинный код , JavaScript или WebAssembly . Он поддерживает интерфейсы , примеси , абстрактные классы , обобщенные обобщения и вывод типов . [ 4 ]
История
[ редактировать ]Dart был представлен на конференции GOTO в Орхусе , Дания, 10–12 октября 2011 года. [ 10 ] Ларс Бак и Каспер Лунд основали проект. [ 11 ] Дарт 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 ]
Дарт 3.0 был выпущен в мае 2023 года. [ 19 ] с изменениями в системе типов, требующими надежной нулевой безопасности. Этот выпуск включал новые функции, такие как записи, шаблоны, [ 20 ] и модификаторы классов. [ 21 ]
Dart может компилироваться в WebAssembly начиная с версии 3.4. [ 22 ]
Спецификация
[ редактировать ]Dart выпустила пятое издание своей языковой спецификации 9 апреля 2021 года. [ 23 ] Это охватывает весь синтаксис Dart 2.10. Черновой вариант 6-го издания включает весь синтаксис до версии 2.13. [ 24 ] Принятые предложения по спецификации и проекты потенциальных функций можно найти в репозитории языка Dart на GitHub. [ 25 ]
ECMA International сформировала технический комитет TC52, [ 26 ] стандартизировать Дарт. ECMA утвердила первое издание спецификации языка Dart как ECMA-408. [ 27 ] в июле 2014 года на своей 107-й Генеральной Ассамблее. [ 28 ] Последующие редакции были утверждены в декабре 2014 г. [ 29 ] Июнь 2015 г. и декабрь 2015 г. [ 27 ]
Развертывание приложений
[ редактировать ]Dart Комплект разработки программного обеспечения (SDK) поставляется с автономной средой выполнения Dart. Это позволяет коду Dart запускаться в среде интерфейса командной строки . SDK включает инструменты для компиляции и упаковки приложений Dart. [ 30 ] Dart поставляется с полной стандартной библиотекой, позволяющей пользователям писать полностью работающие системные приложения, например собственные веб-серверы. [ 31 ]
Разработчики могут развертывать приложения Dart шестью способами:
Тип развертывания | Целевая платформа | Платформа- специфический |
Требует Дарт ВМ |
Скомпилировать скорость |
Исполнение скорость |
---|---|---|---|---|---|
JavaScript | Браузер | Нет | Нет | Медленный | Быстрый |
Веб-сборка [ 22 ] [ 32 ] | Браузер | Нет | Нет | Медленный | Быстрый |
Автономный исполняемый файл | macOS, Windows, Linux | Да | Нет | Медленный | Быстрый |
Модуль опережения времени | macOS, Windows, Linux | Да | Нет | Медленный | Быстрый |
Модуль «Точно в срок» | macOS, Windows, Linux | Да | Да | Быстрый | Медленный |
Портативный модуль | macOS, Windows, Linux | Нет | Да | Быстрый | Медленный |
Развертывание в Интернете
[ редактировать ]Dart 3 может развертывать приложения в Интернете как приложения JavaScript или WebAssembly. Dart поддерживает компиляцию в WebAssembly по состоянию на май 2024 г. [update].
JavaScript
[ редактировать ]- Для работы в основных веб-браузерах Dart использует исходного кода компилятор JavaScript из . Это делает приложения Dart совместимыми со всеми основными браузерами. Dart оптимизирует скомпилированный вывод JavaScript, чтобы избежать дорогостоящих проверок и операций. В результате получается код JavaScript, который может работать быстрее, чем эквивалентный код, написанный вручную на чистом JavaScript. [ 33 ]
- Первым компилятором Dart-to-JavaScript был
dartc
. Он устарел в Dart 2.0. - Вторым компилятором Dart-to-JavaScript был frog. [ 34 ] Написанный на Dart, он был представлен в 2013 году и устарел в 2020 году. Его не следует путать с Dart Frog, [ 35 ] фреймворк Dart с открытым исходным кодом для построения серверных систем от Very Good Ventures .
- Третий компилятор Dart-JavaScript
dart2js
. Представленный в Дарт 2.0, [ 36 ] на основе Дартсdart2js
развился из более ранних компиляторов. Он намеревался реализовать полную спецификацию и семантику языка Dart. Разработчики используют этот компилятор для производственных сборок. Он компилируется в минифицированный JavaScript . - Четвертый компилятор Dart-to-JavaScript
dartdevc
. [ 37 ] Разработчики могут использовать этот компилятор для сборок разработки. Он компилируется в удобочитаемый JavaScript. 28 марта 2013 года команда Dart опубликовала в своем блоге обновление, посвященное коду Dart, скомпилированному в JavaScript с помощьюdart2js
компилятор, [ 38 ] заявив, что теперь он работает быстрее, чем рукописный 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 serve [--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. Хром 119 [ 41 ] поддерживает WasmGC. Firefox [ 42 ] 120 и более поздние версии могут поддерживать WasmGC, но текущая ошибка блокирует совместимость. [ 43 ] Сафари [ 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> Generated: <target_app> $ ./<target_app>
Модуль опережения времени
[ редактировать ]- При предварительной компиляции [ 45 ] Код Dart создает портативные, производительные и специфичные для платформы модули. Он включает в себя все зависимые библиотеки и пакеты, необходимые приложению, а также небольшую среду выполнения Dart. Это увеличивает время компиляции. Компилятор выводит приложение, соответствующее архитектуре, на которой оно было скомпилировано.
$ dart compile aot-snapshot <source.dart> Generated <target_app.aot> $ dartaotruntime <target_app.aot>
Модуль «Точно в срок»
[ редактировать ]- При своевременной компиляции код Dart создает высокопроизводительные модули, которые быстро компилируются. Для работы этого модуля требуется виртуальная машина Dart, включенная в SDK. Компилятор загружает все проанализированные классы и скомпилированный код в память при первом запуске приложения. Это ускоряет любой последующий запуск приложения. Компилятор выводит приложение, соответствующее архитектуре, на которой оно было скомпилировано.
$ dart compile jit-snapshot <source.dart> Compiling <source.dart> to jit-snapshot file <target_app.jit> Hello world! $ dart run <target_app.jit> Hello world!
Модуль ядра Dart
[ редактировать ]- При компиляции как модуль ядра код Dart создает машинно-независимый формат, называемый промежуточным представлением Dart (Dart IR). Формат байт-кода Dart IR может работать на любой архитектуре, в которой есть виртуальная машина Dart. Это делает этот формат очень портативным и быстрым в компиляции, но менее производительным, чем другие результаты компиляции.
$ dart compile kernel <source.dart> Compiling <source.dart> to kernel file <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 в пользу JetBrains . интегрированной среды разработки (IDE) [ 52 ] Android Studio , IntelliJ IDEA , PyCharm , PhpStorm и WebStorm поддерживают плагин Dart. [ 53 ] Этот плагин поддерживает множество функций, таких как подсветка синтаксиса, завершение кода, анализ, рефакторинг, отладка и многое другое. Другие редакторы включают плагины для Dart. [ 54 ] включая Sublime Text , [ 55 ] Атом , [ 56 ] Эмакс , [ 57 ] Почему [ 58 ] и код Visual Studio . [ 59 ]
Редактор Chrome для разработчиков
[ редактировать ]В 2013 году команда Chromium начала работу над средой разработки на основе приложений Chrome с открытым исходным кодом и многоразовой библиотекой виджетов графического интерфейса под кодовым названием Spark. [ 60 ] Позже проект был переименован в Chrome Dev Editor. [ 61 ] Построенный в Dart, он содержал Spark, работающий на Polymer. [ 62 ]
В июне 2015 года Google перенесла проект CDE на GitHub как проект бесплатного программного обеспечения и прекратила активные инвестиции в CDE. [ 63 ] Проект Chrome Dev Editor был заархивирован 24 апреля 2021 г. [ 64 ]
Дартпад
[ редактировать ]Чтобы упростить начало использования Dart, команда Dart в начале 2015 года создала DartPad. Этот онлайн-редактор позволяет разработчикам экспериментировать с интерфейсами прикладного программирования (API) Dart и запускать код Dart. Он обеспечивает подсветку синтаксиса, анализ кода, завершение кода, документацию и редактирование HTML и CSS. [ 65 ]
Инструменты разработки
[ редактировать ]Инструменты разработчика Dart, написанные на 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!');
}
void main() {
for (var i = 1; i <= 10; i++) {
print(i);
}
}
Функция для вычисления n-го числа Фибоначчи :
void main() {
var i = 20;
print('fibonacci($i) = ${fibonacci(i)}');
}
/// Computes the nth Fibonacci number.
int fibonacci(int n) {
return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
Простой класс:
// Import the math library to get access to the sqrt function.
// Imported with `math` as name, so accesses need to use `math.` as prefix.
import 'dart:math' as math;
// Create a class for Point.
class Point {
// Final variables cannot be changed once they are assigned.
// Declare two instance variables.
final num x, y;
// A constructor, with syntactic sugar for setting instance variables.
// The constructor has two mandatory parameters.
Point(this.x, this.y);
// A named constructor with an initializer list.
Point.origin()
: x = 0,
y = 0;
// A method.
num distanceTo(Point other) {
var dx = x - other.x;
var dy = y - other.y;
return math.sqrt(dx * dx + dy * dy);
}
// Example of a "getter".
// Acts the same as a final variable, but is computed on each access.
num get magnitude => math.sqrt(x * x + y * y);
// Example of operator overloading
Point operator +(Point other) => Point(x + other.x, y + other.y);
// When you instantiate a class such as Point in Dart 2+, new is
// an optional word
}
// All Dart programs start with main().
void main() {
// Instantiate point objects.
var p1 = Point(10, 10);
print(p1.magnitude);
var p2 = Point.origin();
var distance = p1.distanceTo(p2);
print(distance);
}
Влияние других языков
[ редактировать ]Dart принадлежит языковой семье АЛГОЛ . [ 75 ] [ не удалось пройти проверку ] В его состав входят C, Java, C#, JavaScript и другие.
Синтаксис каскада методов был заимствован из Smalltalk. [ 76 ] Этот синтаксис обеспечивает ярлык для вызова нескольких методов одного и того же объекта один за другим.
Дарта На миксины повлиял Strongtalk. [ нужна ссылка ] [ 77 ] [ 78 ] и Руби .
Dart использует изоляты в качестве единицы параллелизма и безопасности при структурировании приложений. [ 79 ] Концепция Isolate основана на модели Actor, реализованной в Erlang. [ 80 ]
В 2004 году Гилад Брача (который был членом команды Dart) и Дэвид Унгар впервые предложили Mirror API для выполнения контролируемого и безопасного отражения в бумаге. [ 81 ] Концепция была впервые реализована в Self .
См. также
[ редактировать ]- Веб-инструментарий Google
- TypeScript , строго типизированный язык программирования, транслируемый в JavaScript.
- Flutter — комплект разработки программного обеспечения пользовательского интерфейса с открытым исходным кодом для кроссплатформенных приложений.
Ссылки
[ редактировать ]- ^ Копец, Дэвид (30 июня 2014 г.). Дартс для абсолютных новичков . Апресс. п. 56. ИСБН 9781430264828 . Проверено 24 ноября 2015 г.
- ^ Бак, Ларс (10 октября 2011 г.). «Dart: язык структурированного веб-программирования» . Блог Google Code . Проверено 31 января 2016 г.
- ^ «Выпуск 3.5.0» . 6 августа 2024 г. Проверено 6 августа 2024 г.
- ^ Перейти обратно: а б «Система типов Дарт» . dart.dev .
- ^ «Веб-языки и виртуальные машины: быстрый код всегда в моде. (V8, Dart) — Google I/O 2013» . Ютуб . 16 мая 2013 года . Проверено 22 декабря 2013 г.
- ^ «Команда Dart приветствует TypeScript» . 10 сентября 2019 года . Проверено 22 февраля 2020 г. .
- ^ «Теги Dart SDK» . Гитхаб .
- ^ «Немного о дартсе — Изучите дартс: первый шаг к флаттеру» . Образовательные: интерактивные курсы для разработчиков программного обеспечения . Проверено 20 июня 2023 г.
- ^ «Экскурсия по языку дартс» . dart.dev . Проверено 9 августа 2018 г.
- ^ «Dart, новый язык программирования для структурированного веб-программирования» , конференция GOTO (презентация) (вступительная речь), конференция в Орхусе, 10 октября 2011 г.
{{citation}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Лэдд, Сет. «Что такое Дарт» . Что такое Дарт? . О'Рейли . Проверено 16 августа 2014 г.
- ^ «Dart 1.0: стабильный SDK для структурированных веб-приложений» . news.dartlang.org . Проверено 8 августа 2018 г.
- ^ Сет Лэдд (10 сентября 2019 г.). «Новости и обновления Дарт» . dartlang.org .
- ^ Мур, Кевин (07 августа 2018 г.). «Анонс Dart 2 Stable и веб-платформы Dart» . Дарт . Проверено 8 августа 2018 г.
- ^ «Эволюция языка дартс» . dart.dev . Проверено 20 июня 2023 г.
- ^ «Дарт обзор» . dart.dev . Проверено 12 мая 2023 г. [ постоянная мертвая ссылка ]
- ^ «Dart 2.5 переносит на рабочий стол встроенную компиляцию» . Инфомир . 20 ноября 2019 г. Проверено 28 ноября 2019 г.
- ^ «Dart 2.6 выпущен с помощью dart2native» . SDtimes . 7 ноября 2019 года . Проверено 28 ноября 2019 г.
- ^ «Эволюция языка дартс» . dart.dev . Проверено 9 января 2024 г.
- ^ «Узоры» . dart.dev . Проверено 12 мая 2023 г. [ постоянная мертвая ссылка ]
- ^ «Модификаторы классов» .
- ^ Перейти обратно: а б с Томсен, Майкл (14 мая 2024 г.). «Посадка Flutter 3.22 и Dart 3.4 на Google I/O 2024» . Трепетать . Проверено 17 мая 2024 г.
- ^ «Спецификация языка программирования Dart, 5-е издание» (PDF) .
- ^ «Спецификация языка программирования Dart, черновик 6-го издания» (PDF) .
- ^ «Репозиторий языка Dart на GitHub» . Гитхаб .
- ^ «ТС52 — Дротик» . Архивировано из оригинала 02 августа 2016 г. Проверено 16 декабря 2013 г.
- ^ Перейти обратно: а б «ЭКМА-408» . Экма Интернешнл . Проверено 12 мая 2023 г.
- ^ Андерс Торхауге Сандхольм (10 сентября 2019 г.). «Новости и обновления дартс» . dartlang.org .
- ^ Андерс Торхауге Сандхольм (10 сентября 2019 г.). «Новости и обновления дартс» . dartlang.org .
- ^ «Пакеты инструментов издателя.dart.dev» . Дартс-пакеты . Проверено 12 мая 2023 г.
- ^ «Введение в библиотеку dart:io» . dart.dev . Проверено 21 июля 2013 г.
- ^ Томсен, Майкл (10 мая 2023 г.). «Анонсируем Дарт 3» . Дарт . Проверено 13 мая 2023 г.
- ^ «JavaScript как цель компиляции: делаем это быстро» (PDF) . Дартланг.орг. Архивировано из оригинала (PDF) 2 июля 2016 г. Проверено 18 августа 2013 г.
- ^ «На пути к единому компилятору Dart to JavaScript» . 10 сентября 2019 года . Проверено 13 мая 2023 г.
- ^ «Лягушка-дротик» . dartfrog.vgv.dev . Проверено 13 мая 2023 г.
- ^ Мур, Кевин (08 августа 2018 г.). «Анонс Dart 2 Stable и веб-платформы Dart» . Дарт . Проверено 13 мая 2023 г.
- ^ «dartdevc: Компилятор разработки Dart» . dart.dev . Проверено 13 мая 2023 г. [ постоянная мертвая ссылка ]
- ^ Лэдд, Сет (28 марта 2013 г.). «Новости и обновления Dart: почему dart2js создает более быстрый код JavaScript из Dart» . News.dartlang.org . Проверено 21 июля 2013 г.
- ^ «Дарт-спектакль» . Дартланг.орг . Архивировано из оригинала 3 января 2017 г. Проверено 21 июля 2013 г.
- ^ Предложение GC для WebAssembly , WebAssembly, 12 мая 2023 г. , получено 13 мая 2023 г.
- ^ «Сборка мусора WebAssembly (WasmGC) теперь включена по умолчанию в Chrome | Блог» . Chrome для разработчиков . Проверено 17 мая 2024 г.
- ^ «Информационный бюллетень SpiderMonkey (Firefox 110-111)» . SpiderMonkey JavaScript/движок WebAssembly . 16 февраля 2023 г. Проверено 13 мая 2023 г.
- ^ «1788206 — OffscreenCanvas.transferToImageBitmap создает копию» . bugzilla.mozilla.org . Проверено 17 мая 2024 г.
- ^ «Примечания к выпуску Safari Technology Preview 167» . Документация разработчика Apple . Проверено 13 мая 2023 г.
- ^ Обинна, Онуоха (07 апреля 2020 г.). «Как JIT и AOT работают в Dart?» . Середина . Проверено 20 июня 2023 г.
- ^ Перейти обратно: а б «Суть Google Dart: создание приложений, снимков, изолятов» . ИнфоQ . Проверено 29 августа 2021 г.
- ^ Мур, Кевин (23 февраля 2018 г.). «Критическое изменение Dart2: удаление веб-поддержки dart:mirrors и dart:isolate» . Группы Google .
- ^ Грачек, Филип (10 июня 2020 г.). «Объявление об обоснованной нулевой безопасности» . Дарт . Проверено 12 мая 2023 г.
- ^ «Параллелизм в Dart» . dart.dev . Проверено 12 мая 2023 г.
- ^ «Google выпускает редактор Dart для Windows, Mac OS X и Linux» . Архивировано из оригинала 3 декабря 2013 г. Проверено 29 ноября 2011 г.
- ^ «Плагин Dart для Eclipse готов к предварительной версии» . 10 сентября 2019 г.
- ^ Лэдд, Сет (30 апреля 2015 г.). «Настоящее и будущее редакторов и IDE для Dart» . Новости и обновления Дарт . Проверено 18 мая 2015 г.
- ^ «Репозиторий плагинов JetBrains: Dart» . Плагины.intellij.net . Проверено 21 июля 2013 г.
- ^ «Инструменты для дартса» . dart.dev . Проверено 15 ноября 2016 г.
- ^ «Дарт — Пакеты — Управление пакетами» . packagecontrol.io . Проверено 13 мая 2023 г.
- ^ «dart — плагин Dart для Atom» . dart-atom.github.io . Проверено 13 мая 2023 г.
- ^ Трейнор, Брейди (15 апреля 2023 г.), bradyt/dart-mode , получено 13 мая 2023 г.
- ^ Поддержка Dart для Vim , Dart, 9 мая 2023 г. , получено 13 мая 2023 г.
- ^ «Дарт — торговая площадка Visual Studio» . marketplace.visualstudio.com . Проверено 13 мая 2023 г.
- ^ Бофорт, Франсуа. «Команда Chromium в настоящее время активно работает» .
- ^ «Среда разработки на основе приложений Chrome» . Гитхаб . 26 октября 2021 г.
- ^ «Spark, приложение Chrome от Google — это интегрированная среда разработки для вашего Chromebook» . 22 ноября 2013 г.
- ^ Саруп, Шри. «Редактор Chrome для разработчиков: объявления» .
- ^ «Chrome Dev Editor — это инструмент разработчика для создания приложений на платформе Chrome: приложений Chrome и веб-приложений на JavaScript или Dart. (БОЛЬШЕ НЕ В АКТИВНОЙ РАЗРАБОТКЕ) — googlearchive/chromedeveditor» . 29 июля 2019 г. – через GitHub.
- ^ Лэдд, Сет (6 мая 2015 г.). «Анонсируем DartPad: простой способ изучения кода Dart» . Новости и обновления Дарт . Проверено 18 мая 2015 г.
- ^ Dart & Flutter DevTools , Flutter, 12 мая 2023 г. , получено 12 мая 2023 г.
- ^ Селлс, Крис (3 марта 2021 г.). «Что нового во Flutter 2.0» . Трепетать . Проверено 12 мая 2023 г.
- ^ Снит, Тим (3 февраля 2022 г.). «Анонсируем Flutter для Windows» .
- ^ Чисхолм, Кевин (12 мая 2022 г.). «Что нового во Flutter 3» . Трепетать . Проверено 12 мая 2023 г.
- ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ" . флаттер.dev . Проверено 29 августа 2021 г.
- ^ «Огневая база» . флаттер.dev . Проверено 29 августа 2021 г.
- ^ «Дарт-пакеты» . Дартс-пакеты . Проверено 12 мая 2023 г.
- ^ «Flutter — плагин IntelliJ IDE | Торговая площадка» . Торговая площадка JetBrains . Проверено 13 мая 2023 г.
- ^ «Петли в Dart | Мир Fluter | Учебные пособия по Dart и Flutter» .
- ^ «Семья Алголь» . c2.com .
- ^ «Каскады методов в дартсе» . 10 сентября 2019 года . Проверено 13 мая 2023 г.
- ^ Браха, Гилад; Грисволд, Дэвид (сентябрь 1996 г.). «Расширение языка Smalltalk с помощью миксинов» (PDF) . Семинар ООПСЛА . УПСЛА.
- ^ Лэдд, Сет (13 ноября 2011 г.). «Транскрипция «Краткого путешествия по дартсу» Гилада Брахи» . Проверено 13 мая 2023 г.
- ^ «Суть Google Dart: создание приложений, снимков, изолятов» . ИнфоQ .
- ^ «Бесстрашный параллелизм: как Clojure, Rust, Pony, Erlang и Dart позволяют вам этого достичь. — Ренато Атайдес» . сайты.google.com . Архивировано из оригинала 13 мая 2023 г. Проверено 13 мая 2023 г.
- ^ Браха, Гилад; Унгар, Дэвид (2004). «Зеркала: принципы проектирования средств метауровня объектно-ориентированных языков программирования» (PDF) . Уведомления ACM SIGPLAN . 39 (10). АКМ: 331–344. дои : 10.1145/1035292.1029004 . Проверено 15 февраля 2014 г.
Библиография
[ редактировать ]- Уолрат, Кэти; Лэдд, Сет (7 марта 2012 г.). Что такое Дарт? (1-е изд.). О'Рейли Медиа . п. 20. ISBN 978-14493-32327 .
- Уолрат, Кэти; Лэдд, Сет (7 ноября 2012 г.). Дарт: Up and Running (1-е изд.). О'Рейли Медиа . п. 144. ИСБН 978-1449330897 .
- Бакетт, Крис (28 декабря 2012 г.). Дартс в действии (1-е изд.). Публикации Мэннинга . п. 475. ИСБН 978-1617290862 .
Внешние ссылки
[ редактировать ]- программное обеспечение 2011 года
- Семейство языков программирования C
- Параллельные языки программирования
- Динамически типизированные языки программирования
- Бесплатные программные проекты
- программное обеспечение Google
- Семейство языков программирования JavaScript
- Объектно-ориентированные языки программирования
- Языки программирования, созданные в 2011 году.
- Языки сценариев
- Программное обеспечение, использующее лицензию BSD
- Компиляторы исходного кода
- Веб-программирование