URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 115004
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Dart 2.0"

Отправлено opennews , 07-Авг-18 23:12 
Увидел свет (https://medium.com/dartlang/dart-2-stable-and-the-dart-web-p...) релиз языка программирования Dart 2 (https://www.dartlang.org/dart-2). Dart 2 является не столько новой значительной веткой, сколько общим переосмыслением целей и задач проекта. Разработчики видят Dart 2 в качестве языка для Web и мобильных систем, оптимизированного для разработки компонентов, выполняемых на стороне клиента.


Dart 2 отличается (https://www.dartlang.org/dart-2)  от изначального варианта (https://www.opennet.ru/opennews/art.shtml?num=38432) языка 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 (https://flutter.io/), на основе которого также построена  пользовательская оболочка развиваемой в Google новой микроядерной операционной системы Fuchsia (https://www.opennet.ru/opennews/art.shtml?num=46517). Для разработки для Web реализован (https://webdev.dartlang.org/) набор специфичных библиотек, таких как dart:html, а также web-фреймворк Angular. Также продвигается возможность создавать однородные системы, использующие единую общую кодовую базу, при разработке приложений для Android, iOS и Web.  Например, в мобильных приложениях и Web-интерфейсах AdWords Express и  AppTree  совместно используется от 50% до 70% общего кода.

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

-  Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.

-  Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;

-  Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;

-   Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.

-  Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих (http://www.dartlang.org/articles/optional-types/) типов;


-  Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;


-  Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;

-  Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");

-  Для упрощения разработки на языке Dart поставляется SDK (http://www.dartlang.org/docs/sdk/), пакетный менеджер pub (http://pub.dartlang.org/),  статический анализатор кода dart_analyzer (https://www.dartlang.org/docs/dart-up-and-running/contents/c...), набор библиотек,  интегрированная среда разработки DartPad (https://dartpad.dartlang.org/) и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm (https://www.dartlang.org/tools/webstorm/), Emacs (https://github.com/nex3/dart-mode), Sublime Text 2 (https://github.com/dart-lang/dart-sublime-bundle#readme) и Vim (https://github.com/dart-lang/dart-vim-plugin);

-  Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub (https://pub.dartlang.org/packages), который насчитывает более 3 тысяч пакетов.


URL: https://medium.com/dartlang/dart-2-stable-and-the-dart-web-p...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49096


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 07-Авг-18 23:16 
А потом оно сдохнет и весь код придётся переписывать?

"Выпуск языка программирования Dart 2.0"
Отправлено zo0M , 07-Авг-18 23:18 
оно еще взлетать не начало (и неизвестно начнет ли вообще), а ты уже хоронишь, осади коней.

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 13:00 
Практика показывает, что если сразу не взлетело, то и не взлетит (к примеру сравни C# и D)

"Выпуск языка программирования Dart 2.0"
Отправлено Питекантроп , 08-Авг-18 16:03 
Руби с тобой не согласен.

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 10-Авг-18 08:53 
Что это?

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 15:53 
Оно уже сдохло. Точнее сейчас нет практического смысле его применять. Когда Dart появился лет 10 назад он был реально полезен. В него добавили много языковых конструкций, которых не хватало в JS и это было удобно. Сейчас JS 2015 поддерживается повсеместно и в нем есть все то полезное, что добавили в Dart.

В результате сейчас Dart в России используют только во Wrike, больше он никому не нужен (а за бугром он нужен только Гуглу). Если нужно реализовать веб приложение, то проще взять Vue или другой фреймворк. Его проще установить, освоить, к нему будет больше разных дополнительных библиотек, документации и людей, готовых помочь разобраться. С работодателями тоже все сильно лучше.


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 13:10 
В JS нет нормальных миксинов из коробки. Из-за этого приходится делать всякое http://justinfagnani.com/2015/12/21/real-mixins-with-javascr.../ .

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 14:30 
И не нужно. В js используется композиция вместо этого.

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 13-Дек-21 21:21 
Wrike начал заменять дарт тайпскриптом где-то в начале года.
А еще из цитрикс в тот же период за много $  купил, может быть совпало, а может быть и нет :).

"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 08-Авг-18 00:44 
всё также, для того, чтобы хоть что-то с ним делать, нужно ставить левую сборку хромиума? это если не любитель как хипстера "компилить" на каждое изменение?

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 02:28 
> как хипстера "компилить" на каждое изменение?

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


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 09:57 
Так все верно. А ненавистники хипстеров пишут портянки на баше.

"Выпуск языка программирования Dart 2.0"
Отправлено Ан , 08-Авг-18 10:23 
Который(баш) написан на C хипстерами. :D

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 02:58 
Ты фотографии хакеров из семидесятых видел? В особенности всяких там столлманов. Хиппари и хипстеры. Это сегодня из них песок сыплется, а в свое время это были огого горячие финские парни. Хипстеры рулят, а олд-пердYны пишут баш-портянки, чтобы не переходить на хипстерский системдэ.

"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 10-Авг-18 01:28 
> Хипстеры рулят

в кювет


"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 10-Авг-18 01:31 
> Хиппари и хипстеры
> хипстеры

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


"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 08-Авг-18 18:18 
а тема эта конечно про C++/C/Java

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


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 19:03 
Причём здесь контекст? Вы отнесли к хипстерсту компиляцию на каждое изменение, хотя ничего плохого в этом нет

"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 10-Авг-18 01:28 
лол. говорю же: туповаты

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 10-Авг-18 03:56 
Просто тут различий нет, что такая компиляция, что другая. Ну в разные языки, а так разницы нет. Так что вот вы необоснованно сейчас бочку катите

"Выпуск языка программирования Dart 2.0"
Отправлено vaider , 10-Авг-18 23:30 
погромист на html в треде! все в w3c!

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 10-Авг-18 06:01 
Ну необязательно, для них есть REPL)

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 14:39 
Нет, в новости же написано.
>Вместо Dartium, сборки браузера Chromium с Dart VM, для тестирования приложений отныне предлагается использовать компиляцию в JavaScript и любые штатные браузеры.

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 10:49 
неужели у языка есть фанбои и они сюда набежали?

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 11:21 
В чем преимущество Dart перед TypeScript?

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 12:20 
Ни в чем. Даже есть проблемы. Dart в отличие от TS не совместим с библиотеками на js. А это значит что у него экосистема сильно меньше.

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 13:22 
> Ни в чем. Даже есть проблемы. Dart в отличие от TS не совместим с библиотеками на js. А это значит что у него экосистема сильно меньше.

ИМХО, но это как раз преимущество.

> nikov
> нужно иметь в виду, что система типов TypeScript "deliberately unsound", т.е. гарантий того, что типы сойдутся в runtime, нет. Кроме того, она undecidable, что в компиляторе решается некоторыми произвольными ограничениями на сложность выводимых типов.

В Dart 2.0 судя по все это как раз не так,
то есть после компиляции есть некоторые гарантии.
Чем больше проект тем это важнее.


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 12-Авг-18 08:06 
C каких пор наличие доп.библиотек и ресурсов стало недостатоком? Акстись дурень!

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 08-Авг-18 12:59 
Этак они и с++ изобретут

"Выпуск языка программирования Dart 2.0"
Отправлено IB , 08-Авг-18 14:24 
Компиляторов из C++ в JS/web.asm есть.
Как минимум LLVM - изобретать не нужно.

"Выпуск языка программирования Dart 2.0"
Отправлено J.L. , 08-Авг-18 16:28 
> Компиляторов из C++ в JS/web.asm есть.
> Как минимум LLVM - изобретать не нужно.

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


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 14:47 
Гугли Emscripten

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 11:43 
Google сделал Dart для всех, но он оказался практически никому не нужен.
Сейчас (уже в который раз) Google пытается найти ему применение.
То есть, нет абсолютно никаких гарантий того, что в один прекрасный момент не будет прекращена разработка Dart.
Кто знает что будет, но Dart реально "не взлетел" из-за отношения разработчиков к членам сообщества.
Сколько раз они делали опросы?
Множество раз.
Сколько раз они получали информацию из этих опросов о потребностях сообщества?
Каждый раз.
Сколько раз они удовлетворили эти потребности (те, что были в приоритете у сообщества)?
НИ РАЗУ.
Может быть они просто издевались многократно когда просили принять участие в своих опросах?
Задайте этот вопрос разработчикам из Google, если это Вас действительно интересует.
Но ответа, мне кажется, не последует.

"Выпуск языка программирования Dart 2.0"
Отправлено Попугай Кеша , 09-Авг-18 16:14 
Я пишу на Kesha++. Но всем пофиг. То же самое и с Dart )

"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 10-Авг-18 08:45 
> Я пишу на Kesha++. Но всем пофиг. То же самое и с
> Dart )

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


"Выпуск языка программирования Dart 2.0"
Отправлено Попугай Кеша , 10-Авг-18 14:29 
>> Я пишу на Kesha++. Но всем пофиг. То же самое и с
>> Dart )
> Да, на тебя всем пофиг.

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


"Выпуск языка программирования Dart 2.0"
Отправлено Аноним , 09-Авг-18 19:54 
Этот Dart имеет отношение к syndicate?