Новости

Google представил язык веб-программирования Dart

Сегодня, 10 октября 2011 года, компания Google официально представила новый язык структурного веб-программирования Dart, который позволит создавать быстрые и высокопроизводительные веб-приложения

Google представил язык веб-программирования Dart
Поделиться в соцсетях:

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

На официальном сайте представлен технический обзор языка (перевод на русский от azproduction), спецификации (PDF), список библиотек.

Как объяснялось во внутренней переписке компании, Dart позиционируется в качестве замены/альтернативы Javascript, страдающего от «фундаментальных» изъянов, которые невозможно исправить путём эволюционного развития.

Ключевые преимущества Dart:

  • Классы и интерфейсы, которые обеспечивают простой и понятный механизм для чётко определённых API. Эти конструкции также обеспечивают инкапсуляцию и повторное использование методов и данных.
  • Дополнительные типы (optional types), благодаря которым можно переходить от самых простых приложений к сложным модульным системам, а также использовать дебаггеры для проверки типов.
  • Поддержка библиотек.
  • Инструментарий. Планируется создать множество дополнительных программ в помощь разработчику.

Dart пока находится на ранней стадии разработки. Создателем языка является известный программист Ларс Бак (Lars Bak), которому помогает группа разработчиков в датском офисе. Дополнительный инструментарий делает команда Брюса Джонсона (Bruce Johnson) в Атланте, а поддержкой уровня Web Inspector для Dart и Harmony занимается Павел Фельдман (Pavel Feldman) с разработчиками из Санкт-Петербурга.

Примеры

Определение интерфейса, класса и подкласса.

interface Shape {
	num perimeter();
}

class Rectangle implements Shape {
	final num height, width;
	Rectangle(num this.height, num this.width);  // Compact constructor syntax.
	num perimeter() => 2*height + 2*width;       // Short function syntax.
}

class Square extends Rectangle {
	Square(num size) : super(size, size);
}

Вот как один и тот же класс Point можно вводить в простом коде, с параметрами xи y, без дополнительных типов.

class Point {
	var x, y;
	Point(this.x, this.y);
	scale(factor) => new Point(x*factor, y*factor);
	distance() => Math.sqrt(x*x + y*y);
}

main() {
	var a = new Point(2,3).scale(10);
	print(a.distance());
}

И тот же код с использованием дополнительного типа num, что нужно при росте сложности веб-приложения.

class Point {
	num x, y;
	Point(num this.x, num this.y);
	Point scale(num factor) => new Point(x*factor, y*factor);
	num distance() => Math.sqrt(x*x + y*y);
}

void main() {
	Point a = new Point(2,3).scale(10);
	print(a.distance());
}

Использовать Dart можно разными способами:

  • трансляция в JavaScript, что поддерживается некоторыми современными браузерами (Chrome, Safari 5+, Firefox 4+);
  • исполнение кода напрямую в виртуальной машине на серверной стороне;
  • использовать встроенный редактор Dartboard для написания, редактирования и исполнения простых скриптов в окне браузера.

Напомним, что Dart разработан с учётом трёх главных целей:

  • Производительность. Виртуальные машины на Dart не будут иметь тех проблем с производительностью, которые есть у всех машин EcmaScript.
  • Удобство разработки. Будет сохранена динамическая, лёгкая в освоении, не требующая компиляции природа Javascript, которая сделала веб-платформу абсолютным лидером среди программистов-любителей.
  • Поддержка редакторов кода и дополнительных инструментов. Dart спроектирован таким образом, чтобы было легче использовать дополнительные инструменты для больших серьёзных проектов, которые требуют поддержки, в том числе таких функций как рефакторинг и поиск мест вызова функций. В то же время Dart не будет требовать обязательного использования редактора кода для эффективного программирования, так что обычный разработчик вполне может быть доволен работой в текстовом редакторе.

Dart также должен обеспечивать максимальную безопасность там, где эта задача не конфликтует с тремя главными.

Предполагается, что поддержка Dart будет встроена во все браузеры как основной нативный клиентский язык (вместо Javascript), он будет использоваться на серверах фронт-енда, а также в кросс-компиляторах.

Параллельно с «революционным» вариантом, коим является Dart, компания Google будет продвигать и другой вариант решения проблемы — проект Harmony, в рамках которого будут исправлять те недостатки Javacript, какие возможно.

Новый комментарий

Имя:
Для редактирования комментария осталось 10 минут
Комментарии отсутствуют