Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript.

Dart
Изображение логотипа
Класс языка объектно-ориентированный язык программирования, веб-фреймворк, сценарный язык, императивный язык программирования, рефлексивный язык программирования[d], язык функционального программирования и мультипарадигмальный язык программирования
Тип исполнения компилятор
Появился в 10 октября 2011
Автор Google
Разработчик Google
Расширение файлов .dart
Выпуск
Система типов статическая с версии Dart 2[2]
Испытал влияние C, Java, JavaScript, CoffeeScript, Go
Лицензия BSD
Сайт dart.dev
Платформа кроссплатформенность
ОС кроссплатформенность
Логотип Викисклада Медиафайлы на Викискладе

История править

Первая общедоступная информация об этом языке программирования появилась 12 сентября 2011 года на конференции разработчиков Goto[3]. 10 октября 2011 была проведена официальная презентация языка Google Dart.

Один из разработчиков языка Марк Миллер (Mark S. Miller) во внутренней переписке в компании Google в 2010 году написал, что JavaScript «имеет фундаментальные изъяны, которые невозможно исправить» и назвал это одной из причин появления языка Dart[4].

Задачи, поставленные перед разработчиками языка:[5]

  • Создать структурированный и в то же время гибкий язык для веб-программирования
  • Сделать язык похожим на существующие для упрощения обучения
  • Высокая производительность получаемых программ как в браузерах, так и в иных окружениях, начиная от смартфонов и заканчивая серверами.

Изначально было предложено два способа исполнения Dart-программ: с использованием виртуальной машины (в поддерживающих язык браузерах) или с промежуточной трансляцией в javascript (универсальный)[5][6].

15 ноября 2013 года Google выпустили первую стабильную версию своего языка программирования — Dart SDK 1.0 .

4 июля 2014 года ECMA одобрили первую редакцию стандарта языка, стандарт получил название ECMA-408[7].

В феврале 2018 года Google выпустила обновленную версию языка — Dart 2.0[8][9]. В язык добавлена строгая статическая типизация и новый компилятор для разработки 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;

// Создание класса Point
class 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);
}

См. также править

Примечания править

  1. Release 3.3.3
  2. FAQ Dart (англ.). Дата обращения: 2 мая 2023. Архивировано 16 апреля 2019 года.
  3. Keynote: Dart, a new programming language for structured web programming. Дата обращения: 12 сентября 2011. Архивировано 25 июля 2014 года.
  4. Первое сообщение при создании языка (англ.). Дата обращения: 14 декабря 2015. Архивировано 28 октября 2015 года.
  5. 1 2 Dart: a language for structured web programming Архивная копия от 13 июля 2016 на Wayback Machine, The official Google Code blog 2011-10
  6. Язык Dart — Structured web programming Архивная копия от 21 ноября 2016 на Wayback Machine, Хабрахабр, 2011 — перевод Dart Technical Overview
  7. Ecma approves the 1st edition of the Dart language specification (англ.). dartlang.org (4 июля 2014). Дата обращения: 6 августа 2014. Архивировано 24 апреля 2015 года.
  8. Anders Thorhauge Sandholm. Announcing Dart 2: Optimized for Client-Side Development (англ.). Medium (22 февраля 2018). Дата обращения: 9 сентября 2021. Архивировано 31 июля 2018 года.
  9. 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.

Ссылки править