Google начинает детализировать Dart


Google выпустила ранний предварительный просмотр Dart. Это настолько революционно, насколько мы могли бы надеяться на убийцу JavaScript – или это просто еще один клон Java?

Некоторое время назад Google сообщил, что предлагает второй новый язык в дополнение к Go. Позже выяснилось, что язык Dart является заменой JavaScript. Похоже, Google решила, что JavaScript просто не подходит для создания веб-приложений будущего, и решила работать над его заменой, а не улучшением. Отсюда и Dart: язык структурированного веб-программирования.

Теперь у нас есть ранний предварительный просмотр Dart, и нет никаких серьезных потрясений – это объектно-ориентированный язык, основанный на классах. Цели проектирования сформулированы следующим образом:

Создайте структурированный, но гибкий язык для веб-программирования.

Сделайте Dart привычным и естественным для программистов и, следовательно, легким в освоении.

Убедитесь, что Dart обеспечивает высокую производительность во всех современных веб-браузерах и средах, начиная от небольших портативных устройств и заканчивая серверным исполнением.

Единственная спорная цель – “знакомое и естественное”, потому что все зависит от того, что вы считаете знакомым и естественным. JavaScript не основан на классах, и это, как правило, раздражает и сбивает с толку программистов, воспитанных в традициях языка на основе классов C++, Java и C#, скажем. Однако это не означает, что подход, не основанный на классах, обязательно неверен для Интернета или динамического языка.

Языки, основанные на классах, обычно требуют строгой типизации, но такова необходимость сбалансировать простоту использования и динамические аспекты языка, на котором опционально набирается Dart. То есть вы можете начать без набора текста и добавить его позже. Это, конечно, имеет мало смысла; проблема сортировки типа после события гораздо больше, чем обеспечение его с самого начала. Это приводит к гораздо большему количеству работы, чем просто игнорирование типа и отсутствие типа. Язык, основанный на классах, имеет естественную иерархию типов; язык, не основанный на классах, использует тип примерно так же, как рыба использует велосипед.

Также интересно отметить, чего не хватает. Функции-это просто функции, а не объекты, и язык однопоточный. Нет пространства имен или модулей, и нет ничего, что могло бы помочь в разработке крупномасштабных программ, кроме необязательного набора текста.

С точки зрения реализации Dart имеет интерпретируемый режим виртуальной машины и компилируемый режим. В этом случае поворот заключается в том, что компилятор нацелен на JavaScript в качестве конечного кода, поэтому Dart-это просто еще один язык, использующий JavaScript в качестве машинного кода. Однако у этого есть преимущество в том, что он работает в любом существующем браузере, но это вряд ли делает его убийцей JavaScript – он просто поднимает его до роли “родного” языка для браузеров. Режим реализации виртуальной машины, по-видимому, зарезервирован для выполнения на стороне сервера, и это, по крайней мере, показывает, что намерение состоит в том, чтобы иметь единый язык как для клиента, так и для сервера.

Что касается Дротика, кажется, нет ничего нового. Это все тот же старый объектно-ориентированный язык, основанный на классах, с дополнительным набором текста, чтобы облегчить его для начинающих. Вы можете с таким же успехом просто перенести Java, C++ или C#, чтобы выполнить эту работу, как и изобрести новый язык.

Вот привет мир в Dart:

main() { print(‘Привет, мир дротиков’);}

А вот простое, типизированное определение класса и его использование:

точка класса {

число x, y;

Точка(num this.x, num this.y);

Точечная шкала(числовой фактор) => новая точка(x*фактор, y*фактор);

num distance() => Math.sqrt(x*x + y*y);

}

пустота главная() {

Точка а = новая точка(2,3).Шкала(10);

печать(a.расстояние());

}

Обратите внимание на использование => в качестве ярлыка для определения функции.


Добавить комментарий