Статьи

Вы нацеливаетесь на Google Dart?

Дарт достиг своей цели версии 1.0. Google может не заботиться о номерах версий, но это показывает миру, что Дарт готов. Будь мы — это другой вопрос.

Dart — это (еще один) язык разработки Google для Интернета. Он работает на стороне сервера в качестве альтернативы PHP, .NET, Ruby и т.д. спорно, он также был разработан в качестве замены на стороне клиента JavaScript. Разработчики могут ориентировать браузеры, которые реализуют виртуальную машину Dart, или предварительно обрабатывать код на нативном JavaScript.

Я был особенно недоволен Дартом, когда он был объявлен в 2011 году. Мои основные проблемы:

  1. Зачем создавать другой язык, когда множество более знакомых вариантов уже доступно?
  2. Зачем создавать закрытую платформу, которая наверняка будет отвергнута W3C и другими поставщиками браузеров?
  3. Почему «Hello World» в Dart компилирует 17 259 строк кода JavaScript?

Версия 1.0 будет по-прежнему генерировать более 400 КБ, но, согласно тестам, код dart2js часто быстрее, чем собственный JavaScript. Хм. Я не уверен, что хорошо написанный JavaScript-код может быть опережен скомпилированным Dart, но команда работает над этим. Если вы используете Dart на собственной виртуальной машине, вы можете ожидать повышения производительности до 130%.

Обновленный сайт dartlang.org теперь предлагает целый ряд бесплатных инструментов, включая интегрированную среду разработки на основе Eclipse, плагины для других редакторов, компилятор dart2js, браузер Dartium, полный SDK, менеджер пакетов и документацию API.

Что не нравится?

Я скажу вам: Дарт присоединится к длинному списку списанных проектов Google. Они были терпеливы, но если бы Дарт добился успеха, он бы уже сделал это. Давайте добавим еще несколько пунктов в список критических замечаний:

Дротик не поддерживается в Chrome
Вы не можете использовать Dart в собственном браузере Google. Dartium — это Chromium с Dart VM, поэтому не должно быть никаких технических проблем, препятствующих его добавлению в Chrome и, возможно, в другие браузеры на основе Blink, такие как Opera. Так почему его там нет?

Ни один другой продавец не хочет дартс
Дарт был открыто осужден Microsoft, Apple и Mozilla. Google может создать плагины виртуальных машин для этих браузеров, но, если производители не будут активно блокировать их, широкое распространение будет затруднено.

Поддержка браузера dart2js ограничена
Компилятор JavaScript создает код для последних версий Chrome и Firefox, Safari 6+, IE9 и IE10. Там нет никакой гарантии, что ваш код будет работать в IE8, IE11 или мобильных браузерах.

Сложная отладка на стороне клиента
Для отладки приложений dart2js в браузере требуются исходные карты, чтобы отследить ошибки до исходного кода Dart. Вы можете сделать это в Chrome, но у вас будут проблемы в большинстве других браузеров — особенно на мобильных устройствах.

Неопределенность разработчика
Возможно, вы используете дартс. Возможно, вы любите язык. Вас беспокоит, что Google отказался от проектов, которые были гораздо более коммерчески успешными?

Google поддерживает JavaScript
Часто задаваемые вопросы Dart утверждают: «Google хочет, чтобы веб-разработка была великолепной, и если это происходит с JavaScript, мы будем рады». Однако Google постоянно совершенствует и продвигает свой движок V8, используемый в Chrome и среде выполнения Node.js. Если JavaScript имеет недостатки, у них есть сила и влияние, чтобы это исправить — зачем нужно начинать заново?

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

JavaScript круче, чем когда-либо
Два года — это много времени в Интернете. JavaScript находится в более сильной, более доминирующей позиции, чем это было, когда впервые появился Dart.

Почему Дарт был разработан

Хорошо, я понимаю. Java и JavaScript — это два языка, разделенные внешне похожим синтаксисом. JavaScript изначально сбивает с толку тех, кто имеет опыт программирования на языке C. Вы будете испытывать желание использовать классические методы наследования, потерпеть неудачу и найти множество других причин, чтобы ругать язык. JavaScript отличается; он чувствует себя неправильно, и вы захотите вернуться в уютный мир серверной или настольной разработки. Команда Dart снизила свои настроения против JavaScript, но именно поэтому проект был начат.

JavaScript не совершенен, и есть несколько проблем, которые затрудняют оптимизацию компилятора. Но это не принципиально ущербно. Во всяком случае, язык становится лучше, чем больше вы понимаете и используете его — вы даже можете прийти к выводу, что классическое наследование слишком жесткое и неуклюжее.

Я ничего не имею против инноваций, и Дарт может стать успешным языком разработки на стороне сервера. К сожалению, Dart не особенно инновационный, и в браузере это решение, которое ищет проблему.

Как вы думаете, Дарт может добиться успеха?