Випуск мови програмування Dart 2.8

Відбувся реліз мови програмування Дарт 2.8, в якому продовжено розвиток кардинально переробленої гілки Dart 2, переорієнтованої на розробку для Web та мобільних систем та оптимізованої для створення компонентів, що виконуються на стороні клієнта.

Dart 2 відрізняється від початкового варіанта мови Dart застосуванням сильної статичної типізації (типи можуть виводитися автоматично, тому вказівка ​​типів не є обов'язковим, але динамічна типізація більше не використовується і обчислений тип закріплюється за змінною і надалі застосовується строга перевірка типу). Для розробки Web-додатків пропонується набір специфічних бібліотек, таких як dart:html, а також web-фреймворк Angular. Для створення мобільних програм просувається фреймворк Flutter, на основі якого в тому числі побудована оболонка користувача нової мікроядерної операційної системи, що розвивається в Google Фуксія.

У новому випуску:

  • Додані засоби для безпечного використання значення Null, що порушують зворотну сумісність. Наприклад, на етапі компіляції тепер буде виводиться помилка у разі спроби присвоєння значення "Null" змінної з типом, що не має на увазі невизначений стан, таким як "int". Також введено обмеження сумісності змінних з типами, що допускають Null і ні, такими як «int?» і "int" (змінною з типом "int? може бути присвоєна змінна з типом "int", але не навпаки). Теж стосується і змінних, які повертаються в операторі «return» — якщо в тілі функції змінної з типом, що не допускає стан «Null», не надано значення, компілятор виведе помилку. Зазначені зміни дозволять уникнути крахів, викликаних спробами використання змінних, значення яких не визначено та виставлено у «Null».
  • Репозиторій pub.dev подолав позначку 10 тисяч пакетів. У рамках циклу підготовки Dart 2.8 суттєво збільшено продуктивність отримання пакетів з pub.dev за рахунок підтримки вилучення пакетів у кілька паралельних потоків при виконанні команди pub get, а також завдяки відкладеної передкомпіляції при виконанні команди pub run. Тестування команди pub get для нового проекту на базі Flutter показало зниження часу виконання операції з 6.5 до 2.5 секунд, а для більших додатків, таких як Flutter gallery, з 15 до 3 секунд.
  • Додана нова команда pub outdated для підтримки в актуальному стані всіх залежностей до встановлених пакетів. За допомогою команди pub outdated можна без внесення змін до файлу pubspec оцінити наявність більш нових значних версій для всіх залежностей, пов'язаних із зазначеним пакетом. На відміну від «pub upgrade» нова команда виконує перевірку не тільки версій, що відповідають pubspec, а й нових гілок. Наприклад, для пакета із закріпленими залежностями «foo: ^1.3.0» та «bar: ^2.0.0» запуск «pub outdated» покаже наявність як доступних для оновлення, так і нових гілок:

    Dependencies Current Upgradable Resolvable Latest
    foo 1.3.0 1.3.1 1.3.1 1.3.1
    bar 2.0.1 2.1.0 3.0.3 3.0.3

Особливості мови Dart:

  • Звичний і простий вивчення синтаксис, природний для програмістів на JavaScript, Сі і Java.
  • Забезпечення швидкого запуску та високої продуктивності для всіх сучасних web-браузерів та різних типів оточень, від портативних пристроїв до потужних серверів;
  • Можливість визначення класів та інтерфейсів, що дозволяють використовувати інкапсуляцію та повторно використовувати існуючі методи та дані;
  • Вказівка ​​типів дозволяє спростити налагодження та виявлення помилок, робить код більш ясним та читаним, спрощує його доопрацювання та аналіз сторонніми розробниками.
  • Серед типів, що підтримуються: різні види хешів, масивів і списків, черги, числові і рядкові типи, типи для визначення дати і часу, регулярні вирази (RegExp). можливо створення своїх типів;
  • Для організації паралельного виконання пропонується використовувати класи з атрибутом isolate, код яких виконується повністю в ізольованому просторі окремої області пам'яті, взаємодіючи з основним процесом через відправлення повідомлень;
  • Підтримка використання бібліотек, що спрощують підтримку та налагодження великих веб-проектів. Сторонні реалізації функцій можуть підключатися у вигляді бібліотек, що розділяються. Програми можна розбити на частини та доручити розробку кожної з частин окремій команді програмістів;
  • Набір готових інструментів для підтримки розробки мовою Dart, включаючи реалізацію засобів динамічної розробки та налагодження з виправленням коду на льоту (edit-and-continue);
  • Для спрощення розробки мовою Dart поставляється SDK, пакетний менеджер паб, статичний аналізатор коду dart_analyzer, набір бібліотек, інтегроване середовище розробки DartPad та плагіни з підтримкою Dart для IntelliJ IDEA, WebStorm, Emacs, Витончений текст 2 и Vim;
  • Додаткові пакети з бібліотеками та утилітами розповсюджуються через репозиторій паб, що налічує понад 10 тисяч пакетів.

Джерело: opennet.ru

Додати коментар або відгук