Другой ответ на вопрос «Нужен ли мне 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 и красивого синтаксиса) делает его одним из лидеров, на которого точно стоит взглянуть тем, кто хочет начать веб-разработку.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.