Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript.
История
Первая общедоступная информация об этом языке программирования появилась 12 сентября 2011 года на конференции разработчиков Goto[4]. 10 октября 2011 была проведена официальная презентация языка Google Dart.
Один из разработчиков языка Марк Миллер (Mark S. Miller) во внутренней переписке в компании Google в 2010 году написал, что JavaScript «имеет фундаментальные изъяны, которые невозможно исправить» и назвал это одной из причин появления языка Dart[5].
Задачи, поставленные перед разработчиками языка:[6]
- Создать структурированный и в то же время гибкий язык для веб-программирования
- Сделать язык похожим на существующие для упрощения обучения
- Высокая производительность получаемых программ как в браузерах, так и в иных окружениях, начиная от смартфонов и заканчивая серверами.
Изначально было предложено два способа исполнения Dart-программ: с использованием виртуальной машины (в поддерживающих язык браузерах) или с промежуточной трансляцией в javascript (универсальный)[6][7].
15 ноября 2013 года Google выпустили первую стабильную версию своего языка программирования — Dart SDK 1.0 .
4 июля 2014 года ECMA одобрили первую редакцию стандарта языка, стандарт получил название ECMA-408[8].
В феврале 2018 года Google выпустила обновлённую версию языка — Dart 2.0[9][10]. В язык добавлена строгая статическая типизация и новый компилятор для разработки dartdevc.
Пример
Простое приложение, выводящее надпись Hello, world!:
void main() { print('Hello World!');}Функция для расчёта n-го числа Фибоначчи:
int fib(int n) { return (n <= 2) ? 1 : (fib(n - 1) + fib(n - 2));}main() { print('fib(20) = ${fib(20)}');}Простой класс:
// Подключить библиотеку math для доступа к функции sqrt()import 'dart:math' as math;// Создание класса Pointclass Point { // Переменные, объявленные как final, не могут быть изменены после инициализации // Объявление двух числовых полей final num x, y; // Конструктор c «синтаксическим сахаром», инициализирующий поля объекта значениями аргументов Point(this.x, this.y); // Именованный конструктор со списком инициализации по умолчанию Point.origin() : x = 0, y = 0; // Метод класса num distanceTo(Point other) { var dx = x - other.x; var dy = y - other.y; return math.sqrt(dx * dx + dy * dy); }}// Все программы на Dart начинают выполнение с функции main()main() { // Создание двух объектов класса Point var p1 = new Point(10, 10); var p2 = new Point.origin(); var distance = p1.distanceTo(p2); print(distance);}См. также
Примечания
- ↑https://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming
- ↑Release 3.11.5 — 2026.
- ↑FAQ Dart (англ.). Дата обращения: 2 мая 2023. Архивировано 16 апреля 2019 года.
- ↑Keynote: Dart, a new programming language for structured web programming. Дата обращения: 12 сентября 2011. Архивировано 25 июля 2014 года.
- ↑Первое сообщение при создании языка (англ.). Дата обращения: 14 декабря 2015. Архивировано 28 октября 2015 года.
- 12Dart: a language for structured web programmingАрхивная копия от 13 июля 2016 на Wayback Machine, The official Google Code blog 2011-10
- ↑Язык Dart — Structured web programmingАрхивная копия от 21 ноября 2016 на Wayback Machine, Хабрахабр, 2011 — перевод Dart Technical Overview
- ↑Ecma approves the 1st edition of the Dart language specification (англ.). dartlang.org (4 июля 2014). Дата обращения: 6 августа 2014. Архивировано 24 апреля 2015 года.
- ↑Anders Thorhauge Sandholm. Announcing Dart 2: Optimized for Client-Side Development (англ.). Medium (22 февраля 2018). Дата обращения: 9 сентября 2021. Архивировано 31 июля 2018 года.
- ↑Dart 2 migration guide. dart.dev. Дата обращения: 9 сентября 2021.
Литература
На русском
- Крис Бакетт. Dart в действии = Dart in Action / ред. Д. Мовчан. — ДМК Пресс, 2013. — 528 с. — ISBN 978-1-6172-9086-2, 978-5-94074-918-9.
На английском
- Matt Fisher. 8. Exporting to HTML5, Google Dart // HTML5 for Flash Developers. — Packt Publishing, Limited, 2013. — 322 p. — ISBN 9781849693325.
- Walrath, K. and Ladd, S. Dart: Up and Running. — O'Reilly, 2012. — 152 p. — ISBN 9781449330897.
- Chris Buckett. Dart in Action. — O'Reilly, 2013. — 424 p. — ISBN 9781617290862.
- Walrath, K. and Ladd, S. What is Dart?. — O'Reilly Media, 2012. — 20 p. — ISBN 9781449332334.