The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

07.08.2018 20:39  Выпуск языка программирования Dart 2.0

Увидел свет релиз языка программирования Dart 2. Dart 2 является не столько новой значительной веткой, сколько общим переосмыслением целей и задач проекта. Разработчики видят Dart 2 в качестве языка для Web и мобильных систем, оптимизированного для разработки компонентов, выполняемых на стороне клиента.

Dart 2 отличается от изначального варианта языка Dart кардинальным изменением подхода к типизации. Если в Dart 1.x определение типов было необязательным и разработчик мог удалить все аннотации типов без влияния на поведение приложения, то в Dart 2 применена строгая статическая типизация, но при этом типы могут выводиться автоматически и аннотации типов по прежнему не являются обязательными. Например, при указании "var i = 1" в Dart 2 для переменной "i" будет выведен тип int, в то время как в Dart 1 в этому случае была бы использована динамическая типизация (тип dynamic).

В Dart 2 поддержка режима "checked", при котором выполняются ограниченные проверки типов, будет прекращена, его место займёт режим "strong", обеспечивающий строгую проверку всех типов. Для упрощения подготовки к переходу на Dart 2 в Dart 1.x также добавлен режим "strong", при выборе которого поведение по использованию типов приближено к Dart 2. Строгая типизация позволяет обеспечить быструю компиляцию в JavaScript при помощи компилятора dartdevc без необходимости применения специальных виртуальных машин. Вместо Dartium, сборки браузера Chromium с Dart VM, для тестирования приложений отныне предлагается использовать компиляцию в JavaScript и любые штатные браузеры.

Из изменений Dart 2 также можно отметить проведение чистки синтаксиса и переработку многих инструментов, которые теперь нацелены на предоставление удобных и эффективных возможностей для web-разработки и создания мобильных приложений. Вместо применения отдельного языка разметки для компоновки элементов интерфейса в Dart 2 представлена возможность определять виджеты для интерфейса без обязательного использования ключевых слов new и const. Например:


// В Dart 1.x:
Widget build(BuildContext context) {
  return new Container(
    height: 56.0,
    padding: const EdgeInsets.symmetric(horizontal: 8.0),
    decoration: new BoxDecoration(color: Colors.blue[500]),
    child: new Row(
      ...
    ),
  );
}

// В Dart 2:
Widget build(BuildContext context) =>
  Container(
    height: 56.0,
    padding: EdgeInsets.symmetric(horizontal: 8.0),
    decoration: BoxDecoration(color: Colors.blue[500]),
    child: Row(
      ...
    ),
);

Для создания мобильных приложений предлагается использовать фреймворк Flutter, на основе которого также построена пользовательская оболочка развиваемой в Google новой микроядерной операционной системы Fuchsia. Для разработки для Web реализован набор специфичных библиотек, таких как dart:html, а также web-фреймворк Angular. Также продвигается возможность создавать однородные системы, использующие единую общую кодовую базу, при разработке приложений для Android, iOS и Web. Например, в мобильных приложениях и Web-интерфейсах AdWords Express и AppTree совместно используется от 50% до 70% общего кода.

Особенности языка Dart:

  • Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
  • Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
  • Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
  • Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
  • Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих типов;
  • Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
  • Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;
  • Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");
  • Для упрощения разработки на языке Dart поставляется SDK, пакетный менеджер pub, статический анализатор кода dart_analyzer, набор библиотек, интегрированная среда разработки DartPad и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 и Vim;
  • Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает более 3 тысяч пакетов.


  1. Главная ссылка к новости (https://medium.com/dartlang/da...)
Лицензия: CC-BY
Ключевые слова: dart, lang
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.2, Аноним (2), 23:16, 07/08/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    А потом оно сдохнет и весь код придётся переписывать?
     
     
  • 2.3, zo0M (?), 23:18, 07/08/2018 [^] [ответить]    [к модератору]
  • –1 +/
    оно еще взлетать не начало (и неизвестно начнет ли вообще), а ты уже хоронишь, осади коней.
     
     
  • 3.20, Аноним (20), 13:00, 08/08/2018 [^] [ответить]    [к модератору]
  • +2 +/
    Практика показывает, что если сразу не взлетело, то и не взлетит (к примеру сравни C# и D)
     
     
  • 4.27, Питекантроп (?), 16:03, 08/08/2018 [^] [ответить]    [к модератору]
  • +/
    Руби с тобой не согласен.
     
     
  • 5.44, Аноним (20), 08:53, 10/08/2018 [^] [ответить]    [к модератору]
  • +1 +/
    Что это?
     
  • 2.26, Аноним (26), 15:53, 08/08/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Оно уже сдохло Точнее сейчас нет практического смысле его применять Когда Dart... весь текст скрыт [показать]
     
     
  • 3.33, Аноним (33), 13:10, 09/08/2018 [^] [ответить]    [к модератору]  
  • +/
    В JS нет нормальных миксинов из коробки. Из-за этого приходится делать всякое http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/ .
     
     
  • 4.34, Аноним (34), 14:30, 09/08/2018 [^] [ответить]    [к модератору]  
  • +/
    И не нужно. В js используется композиция вместо этого.
     
  • 1.4, vaider (?), 00:44, 08/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    всё также, для того, чтобы хоть что-то с ним делать, нужно ставить левую сборку хромиума? это если не любитель как хипстера "компилить" на каждое изменение?
     
     
  • 2.8, Аноним (8), 02:28, 08/08/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    > как хипстера "компилить" на каждое изменение?

    C++/C/Java-прогеры у вас внезапно все хипстеры. Ибо компилят каждое изменение

     
     
  • 3.12, Аноним (12), 09:57, 08/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Так все верно. А ненавистники хипстеров пишут портянки на баше.
     
     
  • 4.13, Ан (??), 10:23, 08/08/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Который(баш) написан на C хипстерами. :D
     
     
  • 5.31, Аноним (12), 02:58, 09/08/2018 [^] [ответить]     [к модератору]  
  • +/
    Ты фотографии хакеров из семидесятых видел В особенности всяких там столлманов ... весь текст скрыт [показать]
     
     
  • 6.39, vaider (?), 01:28, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Хипстеры рулят

    в кювет

     
  • 6.40, vaider (?), 01:31, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Хиппари и хипстеры
    > хипстеры

    чё прям с айфонами, молескинами, смузями и иконой джобса на груди? а гироскутеры тоже есть на фото?

     
  • 3.29, vaider (?), 18:18, 08/08/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    а тема эта конечно про C++/C/Java

    заметил, что хипстеры не умеют в контекст. у них или а или б. или чёрное или белое. ну вобщем туповаты

     
     
  • 4.30, Аноним (30), 19:03, 08/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Причём здесь контекст? Вы отнесли к хипстерсту компиляцию на каждое изменение, хотя ничего плохого в этом нет
     
     
  • 5.38, vaider (?), 01:28, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    лол. говорю же: туповаты
     
     
  • 6.41, Аноним (41), 03:56, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Просто тут различий нет, что такая компиляция, что другая. Ну в разные языки, а так разницы нет. Так что вот вы необоснованно сейчас бочку катите
     
     
  • 7.46, vaider (?), 23:30, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    погромист на html в треде! все в w3c!
     
  • 3.42, Аноним (42), 06:01, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну необязательно, для них есть REPL)
     
  • 2.23, Аноним (23), 14:39, 08/08/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Нет, в новости же написано.
    >Вместо Dartium, сборки браузера Chromium с Dart VM, для тестирования приложений отныне предлагается использовать компиляцию в JavaScript и любые штатные браузеры.
     
  • 1.14, Аноним (14), 10:49, 08/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    неужели у языка есть фанбои и они сюда набежали?
     
  • 1.15, Аноним (15), 11:21, 08/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    В чем преимущество Dart перед TypeScript?
     
     
  • 2.18, Аноним (18), 12:20, 08/08/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Ни в чем. Даже есть проблемы. Dart в отличие от TS не совместим с библиотеками на js. А это значит что у него экосистема сильно меньше.
     
     
  • 3.21, Аноним (21), 13:22, 08/08/2018 [^] [ответить]     [к модератору]  
  • +5 +/
    ИМХО, но это как раз преимущество В Dart 2 0 судя по все это как раз не так, то... весь текст скрыт [показать]
     
     
  • 4.47, Аноним (47), 08:06, 12/08/2018 [^] [ответить]    [к модератору]  
  • +/
    C каких пор наличие доп.библиотек и ресурсов стало недостатоком? Акстись дурень!
     
  • 1.19, Аноним (20), 12:59, 08/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Этак они и с++ изобретут
     
     
  • 2.22, IB (?), 14:24, 08/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Компиляторов из C++ в JS/web.asm есть.
    Как минимум LLVM - изобретать не нужно.
     
     
  • 3.28, J.L. (?), 16:28, 08/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Компиляторов из C++ в JS/web.asm есть.
    > Как минимум LLVM - изобретать не нужно.

    расскажите, пожалуйста, всё, что имеет фронтенд в LLVM, можно скомпилить в JS/web.asm с использованием бекенда LLVM->js ?

     
     
  • 4.35, Аноним (34), 14:47, 09/08/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Гугли Emscripten
     
  • 1.32, Аноним (32), 11:43, 09/08/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    Google сделал Dart для всех, но он оказался практически никому не нужен Сейчас ... весь текст скрыт [показать]
     
  • 1.36, Попугай Кеша (?), 16:14, 09/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Я пишу на Kesha++. Но всем пофиг. То же самое и с Dart )
     
     
  • 2.43, Аноним (43), 08:45, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Я пишу на Kesha++. Но всем пофиг. То же самое и с
    > Dart )

    Да, на тебя всем пофиг.

     
     
  • 3.45, Попугай Кеша (?), 14:29, 10/08/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Я пишу на Kesha++. Но всем пофиг. То же самое и с
    >> Dart )
    > Да, на тебя всем пофиг.

    Аааа! О нет! Как же я проживу без твоего мнения? Да пофиг )

     
  • 1.37, Аноним (37), 19:54, 09/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Этот Dart имеет отношение к syndicate?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor