Другой ответ на вопрос «Нужен ли мне Dart?»

Если вы хотите создавать клиент-серверные веб-приложения, веб-сайты, скрипты, миниигры и вы еще не адепт JS, то ответ однозначно «Да». Если вы флэш разработчик и хочется вновь делать что-то, что запустится в браузере, я бы сказал «Да». Если вы просто хотите научиться программировать и еще не знаете ни одного языка, то Dart будет хорошим и приятным стартом. Под катом я постараюсь развернуть каждое утверждение.
Я не знаю ни одного языка программирования, почему именно Dart?

Потому, что можно начать с азов программирования без оглядки на окружение. Это сложно сделать, начиная свой путь с JS, кто-то должен подсказать, что нужно установить NodeJS, а потом придётся объяснить, чем JS из Node отличается от того, что в браузере.

Консольное приложение на Dart, оно же серверное, оно же скриптовое может выглядеть вот так:

main() {// Точка входа приложения, прямо как в С
  var language = "Dart"; // Объявляем переменную
  print('Я хочу изучить $language.'); // Выводим в консоль.
}


Начав с Dart, вы потом с лёгкостью сможете перейти на C# или Java. А немного освоившись вы сможете написать что-то, что можно разместить на веб-страничке и похвастаться перед кем-то своими успехами просто отправив ссылку.
Я флэш-разработчик, с какой стороны подойти?

У Dart есть такая библиотека как StageXL, это адаптация API из flash. И в целом Dart отличается не сильно от AS3 и в лучшую сторону. А с использованием Dart Toolkit for Flash можно делать арт и анимации прямо во Flash professional, а потом использовать их. Мне как бывшему AS3-программисту даже не пришлось привыкать к новому языку, всё пошло как по накатанной.

Как делать миниигры?

Как уже сказано немного выше, StageXL и Dart Toolkit for Flash это именно то, что нужно. Можно смотреть уроки по игрострою на флэш, а потом применять их в Dart.

Как делать скрипты и что они могут?

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

Всё-таки я хочу писать сайты, что может Dart?

Во первых есть AngularDart, высокоуровневая абстракция, позволяет писать сайт модульно с использованием компонентов, использовать связывание переменных с UI. Доступна так же библиотека Angular2. Для тех, кто любит компоненты, но не любит монстров как Angular, есть Polymer. А если хотите что-то быстро сваять в стиле Material Design, то есть Material Design Lite for Dart.

А что там с сервером, я хочу бэкенд писать уже сегодня?

Для таких случаев есть Redstone.

import 'package:redstone/server.dart' as Server;

void main() {
  Server.setupConsoleLog();
  Server.start();
}


Всё, Карл, сервер запущен и работает. Больше ничего не нужно, ты понимаешь, Карл?
Вы скажете, что этот сервер ничего не умеет, а я скажу, что очень просто научить, добавив вот эти строки:

@Server.Route("/hello")
String hello() {
  print("User soliciting greeting...");
  return "Привет, браузер!";
}


И теперь, запустив сервер и открыв страничку по адресу «http:// localhost:8080/hello», мы увидим «Привет, браузер!».

А смогу ли я на этом языке писать мобильные приложения как на JS с использованием Cordova?

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

Заключение.

В заключении хочу сказать, что для меня основным преимуществом языка является наличие StageXL и интеграции с Flash Professional. Это позволяет так же легко писать простенькие игры и интерфейсы как это было раньше. Если сравнивать Dart с нынешним JS, то преимуществ много, но они очевидны только для тех, кто приходит из таких языков как Java, C#, C++. Если сравнивать с TypeScript, то выбор в пользу Dart становится менее очевидным и это скорее не выбор по каким-то объективным параметрам, а просто по принципу нравится/не нравится. Сравнить Dart с GWT или чем-то подобным я не могу, т. к. не имею опыта. Однако наличие в одном языке всех плюшек (Angular, Polymer, StageXl, Flash Toolkit, Redstone и красивого синтаксиса) делает его одним из лидеров, на которого точно стоит взглянуть тем, кто хочет начать веб-разработку.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

© Habrahabr.ru