ГлавнаяНовости Google представил язык веб-программирования Dart
Google представил язык веб-программирования Dart
10.10.2011 15:21
Сегодня, 10 октября 2011 года, компания 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, какие возможно.