Dart

Поделись знанием:
Перейти к: навигация, поиск
Dart
Тип исполнения:

интерпретатор

Появился в:

10 октября 2011

Автор:

Google

Выпуск:

1.19 (26 августа 2016)

Испытал влияние:

Java, JavaScript, CoffeeScript, Go

Лицензия:

BSD

Сайт:

[www.dartlang.org tlang.org]

Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript. Один из разработчиков языка Марк Миллер (Mark S. Miller) написал, что JavaScript «имеет фундаментальные изъяны»[1] («Javascript has fundamental flaws...»), которые невозможно исправить. Поэтому и был создан Dart.

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

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

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

В настоящее время предполагается два способа исполнения Dart-программ: с использованием виртуальной машины или с промежуточной трансляцией в javascript[3].

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

4 июля 2014 года ECMA одобрили первую редакцию стандарта языка, стандарт получил название [www.ecma-international.org/publications/standards/Ecma-408.htm ECMA-408][4].





Пример

Hello, world!:

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);
}

См. также

Напишите отзыв о статье "Dart"

Примечания

  1. [gist.github.com/paulmillr/1208618 Первое сообщение при создании языка]
  2. [gotocon.com/aarhus-2011/presentation/Opening Keynote: Dart, a new programming language for structured web programming]
  3. 1 2 [googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html Dart: a language for structured web programming — The official Google Code blog]
  4. [news.dartlang.org/2014/07/ecma-approves-1st-edition-of-dart.html Ecma approves the 1st edition of the Dart language specification] (4 июля 2014).

Литература

На русском
  • Крис Бакетт. 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.

Ссылки

  • [dart.org.ru/ Русскоязычный портал по Dart]
  • [habrahabr.ru/post/130064/ Язык Dart — Structured web programming]
  • [dartdot.ru/ Русская документация по API Dart, новости, статьи]

Отрывок, характеризующий Dart

Прежде Пьер в присутствии Анны Павловны постоянно чувствовал, что то, что он говорит, неприлично, бестактно, не то, что нужно; что речи его, кажущиеся ему умными, пока он готовит их в своем воображении, делаются глупыми, как скоро он громко выговорит, и что, напротив, самые тупые речи Ипполита выходят умными и милыми. Теперь всё, что ни говорил он, всё выходило charmant [очаровательно]. Ежели даже Анна Павловна не говорила этого, то он видел, что ей хотелось это сказать, и она только, в уважение его скромности, воздерживалась от этого.
В начале зимы с 1805 на 1806 год Пьер получил от Анны Павловны обычную розовую записку с приглашением, в котором было прибавлено: «Vous trouverez chez moi la belle Helene, qu'on ne se lasse jamais de voir». [у меня будет прекрасная Элен, на которую никогда не устанешь любоваться.]
Читая это место, Пьер в первый раз почувствовал, что между ним и Элен образовалась какая то связь, признаваемая другими людьми, и эта мысль в одно и то же время и испугала его, как будто на него накладывалось обязательство, которое он не мог сдержать, и вместе понравилась ему, как забавное предположение.
Вечер Анны Павловны был такой же, как и первый, только новинкой, которою угощала Анна Павловна своих гостей, был теперь не Мортемар, а дипломат, приехавший из Берлина и привезший самые свежие подробности о пребывании государя Александра в Потсдаме и о том, как два высочайшие друга поклялись там в неразрывном союзе отстаивать правое дело против врага человеческого рода. Пьер был принят Анной Павловной с оттенком грусти, относившейся, очевидно, к свежей потере, постигшей молодого человека, к смерти графа Безухого (все постоянно считали долгом уверять Пьера, что он очень огорчен кончиною отца, которого он почти не знал), – и грусти точно такой же, как и та высочайшая грусть, которая выражалась при упоминаниях об августейшей императрице Марии Феодоровне. Пьер почувствовал себя польщенным этим. Анна Павловна с своим обычным искусством устроила кружки своей гостиной. Большой кружок, где были князь Василий и генералы, пользовался дипломатом. Другой кружок был у чайного столика. Пьер хотел присоединиться к первому, но Анна Павловна, находившаяся в раздраженном состоянии полководца на поле битвы, когда приходят тысячи новых блестящих мыслей, которые едва успеваешь приводить в исполнение, Анна Павловна, увидев Пьера, тронула его пальцем за рукав.
– Attendez, j'ai des vues sur vous pour ce soir. [У меня есть на вас виды в этот вечер.] Она взглянула на Элен и улыбнулась ей. – Ma bonne Helene, il faut, que vous soyez charitable pour ma рauvre tante, qui a une adoration pour vous. Allez lui tenir compagnie pour 10 minutes. [Моя милая Элен, надо, чтобы вы были сострадательны к моей бедной тетке, которая питает к вам обожание. Побудьте с ней минут 10.] А чтоб вам не очень скучно было, вот вам милый граф, который не откажется за вами следовать.
Красавица направилась к тетушке, но Пьера Анна Павловна еще удержала подле себя, показывая вид, как будто ей надо сделать еще последнее необходимое распоряжение.
– Не правда ли, она восхитительна? – сказала она Пьеру, указывая на отплывающую величавую красавицу. – Et quelle tenue! [И как держит себя!] Для такой молодой девушки и такой такт, такое мастерское уменье держать себя! Это происходит от сердца! Счастлив будет тот, чьей она будет! С нею самый несветский муж будет невольно занимать самое блестящее место в свете. Не правда ли? Я только хотела знать ваше мнение, – и Анна Павловна отпустила Пьера.
Пьер с искренностью отвечал Анне Павловне утвердительно на вопрос ее об искусстве Элен держать себя. Ежели он когда нибудь думал об Элен, то думал именно о ее красоте и о том не обыкновенном ее спокойном уменьи быть молчаливо достойною в свете.
Тетушка приняла в свой уголок двух молодых людей, но, казалось, желала скрыть свое обожание к Элен и желала более выразить страх перед Анной Павловной. Она взглядывала на племянницу, как бы спрашивая, что ей делать с этими людьми. Отходя от них, Анна Павловна опять тронула пальчиком рукав Пьера и проговорила: