10 октября 2011 года Google официально презентовали Dart - новый структурированный язык web-программирования, в комплекте с библиотеками, виртуальной машиной, и редактором IDE, как альтернативу или полную замену JavaScript. Google намерен продвигать Dart «как язык для серьёзных разработок на web-платформе». По их мнению, он будет лучше подходить для широкомасштабных проектов. Сейчас проекты вроде Google Apps или Gmail используют достаточно сложные коды, которые реализованные на JavaScript. А вместе с переходом на язык Dart, компания обещала максимально упростить архитектуру этих решений.

Dart будет гибким, поскольку это и статический, и динамический язык, применимый на клиентской и на серверной сторонах. Приложения, написанные на нем, будет легче отлаживать, поддерживать и разрабатывать совместно. Этот язык оптимизирован с точки зрения исполнения и не позволит программистам использовать такие ходы, как определение константы, которую придётся рассчитывать по ходу выполнения. Ожидается, что там будут объекты и сообщения между ними, инкапсуляция, система типизации и ещё куча отличий от JavaScript. С другой стороны, никто не считает JS неудобным и алогичным. Просто он использует другую парадигму иерархии — прототипирование объектов вместо нисходящего наследования их описаниями. Она не лучше, не хуже, просто другая. Ведь JS создавался для удобного доступа к DOM и не был рассчитан на те проблемы, которые на него взваливают сейчас, как решение вычислительных задач, вроде игровой физики и т.п. Изменить его в эту сторону, с учетом поддержки предыдущего синтаксиса, очень непросто, есть риск получить еще один монстроязык.

Разработчики Dart выделили три главные цели:

Производительность. Виртуальные машины на Dart не будут иметь тех проблем с производительностью, которые есть у всех машин EcmaScript.

Удобство разработки. Будет сохранена динамическая, лёгкая в освоении, не требующая компиляции природа JavaScript, которая сделала web-платформу абсолютным лидером среди программистов-любителей.

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

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

Google сообщил об официальном сайте Dart под названием dartlang.org, на котором программисты смогут найти обучающие материалы и примеры кодов и библиотеки для взаимодействия с другими программными обеспечениями. В начале ноября 2011 был представлен новый редактор Dart под названием «Альфа». Его можно скачать и установить для 32x, 64x Windows, Linux и Mac. Ранее Google запустил в онлайне IDE, которая позволяет прямо в браузере редактировать короткие программы. В будущем
она должна развиться в полнофункциональную онлайн IDE. Проект находится в предварительной версии, поэтому сейчас самое подходящее время, чтобы тестировать его, обеспечивая обратную связь, и помогать совершенствовать Dart.

Одной из целей Dart было «предпринять активные действия для принятия его в качестве стандарта и повсеместного распространения». Для продвижения этой задумки Google должны были обзавестись поддержкой разработчиков других браузеров, а вместо этого получили резкую критику с колокольни IE. Это не первая инициатива Google которая вызывает ярость у MC — WebSockets, WebGL, Native Client. Но что плохого в том, что Google выпускает много альтернативных инновационных технологий? Он ведь вкладывает в это свои деньги без гарантии успеха. По-моему, незачем критиковать альтернативные технологии. Здесь всего два варианта — либо внедрение нового языка происходит более-менее естественным путем, через «накипело», либо какая-то корпорация пытается внедрить язык лишь в угоду своим корыстным интересам. Но Dart действительно нравится многим, при чем без ощущения того, что его пытаются насадить искусственно.

Со слов разработчика языка Ларса Бака (Lars Bak), на текущий момент ни один браузер не поддерживает Dart, однако наверняка положение дел исправит Chrome, и в самом ближайшем будущем. К тому же код может выполняться «либо на исходной виртуальной машине Dart, либо поверх JavaScript-машины с использованием компилятора, переводящего код Dart в JavaScript». Второй вариант, конечно обеспечивает выживаемость языка, но не его преимущество. Скомпилированный в JS-машине банальный HelloWorld занимает 17259 строк. Но следует помнить, что Dart создается для широкомасштабных проектов. По некоторым тестам получалось что VM Dart может быть в несколько раз быстрее JavaScript на V8:

Dart performance
Relative performance compared to JavaScript on V8
Benchmark VM Dart -> JS Compiler
Mandelbrot 18.1% 101.0%
DeltaBlue 60.5% 85.0%
Richards 49.9% 79.9%
NBody 37.5% 83.2%
BinaryTrees 70.3% 99.9%
Fannkuch 58.4% 78.9%
Meteor 48.2% 99.4% <

Трудно сказать, увенчается ли этот проект успехом, однако попытка избавиться от изъянов JavaScript, начав работу с нуля, достойна уважения. Если Google сможет стандартизовать язык Dart, создать инструменты разработки и разработать на этой основе мощные приложения — это будет изменение к лучшему. Новый мощный язык будет способствовать переносу пользовательского софта «в среду web-браузера» и потеснит с рынка коробочный софт.



2011-12-26 • Просмотров [ 2411 ]