Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript.
История Первая общедоступная информация об этом языке программирования появилась 12 сентября 2011 года на конференции разработчиков Goto. 10 октября 2011 была проведена официальная презентация языка Google Dart.
Один из разработчиков языка Марк Миллер (Mark S. Miller) во внутренней переписке в компании Google в 2010 году написал, что JavaScript «имеет фундаментальные изъяны, которые невозможно исправить» и назвал это одной из причин появления языка Dart.
Задачи, поставленные перед разработчиками языка:Dart: a language for structured web programming , The official Google Code blog 2011-10 Создать структурированный и в то же время гибкий язык для веб-программирования Сделать язык похожим на существующие для упрощения обучения Высокая производительность получаемых программ как в браузерах, так и в иных окружениях, начиная от смартфонов и заканчивая серверами.
Изначально было предложено два способа исполнения Dart-программ: с использованием виртуальной машины (в поддерживающих язык браузерах) или с промежуточной трансляцией в javascript (универсальный)Язык Dart — Structured web programming , Хабрахабр, 2011 — перевод Dart Technical Overview.
15 ноября 2013 года Google выпустили первую стабильную версию своего языка программирования — Dart SDK 1.0 .
4 июля 2014 года ECMA одобрили первую редакцию стандарта языка, стандарт получил название ECMA-408.
В феврале 2018 года Google выпустила обновлённую версию языка — Dart 2.0. В язык добавлена строгая статическая типизация и новый компилятор для разработки 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); }
См. также TypeScript CoffeeScript
Примечания
Литература На русском
На английском
Ссылки http://www.dartlang.org http://www.dartdocs.org/ http://dart.academy/
Категория:Google Категория:Семейство языков программирования JavaScript Категория:Транспиляция