The OpenNET Project / Index page

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

Доступны язык Dart 2.14 и фреймворк Flutter 2.5

10.09.2021 14:49

Компания Google опубликовала релиз языка программирования Dart 2.14, продолживший развитие кардинально переработанной ветки Dart 2, которая отличается от изначального варианта языка Dart применением сильной статической типизации (типы могут выводиться автоматически, поэтому указание типов не является обязательным, но динамическая типизация больше не используется и вычисленный изначально тип закрепляется за переменной и в дальнейшем применяется строгая проверка типа).

Особенности языка 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, который насчитывает более 20 тысяч пакетов.

Основные изменения в выпуске Dart 2.14:

  • Добавлен новый оператор тройного сдвига (>>>), который в отличие от оператора ">>" выполняет не арифметический, а логический сдвиг, работающий без учёта знакового бита (сдвиг совершается без разделения на положительные и отрицательные числа).
  • Снято ограничение на аргументы типа, не позволявшие использовать общие типы функций в качестве аргумента с типом. Например, сейчас можно указывать:
    
       late List<T Function<T>(T)> idFunctions;
       var callback = [<T>(T value) => value];
       late S Function<S extends T Function<T>(T)>(S) f;
    
  • Разрешено указание аргументов с типами в аннотациях, таких как @Deprecated. Например, теперь можно указывать:
    
       @TypeHelper<int>(42, "The meaning")
    
  • В стандартную библиотеку (core) в класс Object добавлены статические методы hash, hashAll и hashAllUnordered. В классе DateTime улучшена обработка локального времени при переводе часов между летним и зимним временем не кратным одному часу (например, в Австралии используется смещение на 30 минут). В пакет ffi добавлена поддержка механизма выделения памяти arena, автоматически высвобождающего ресурсы. В пакет ffigen добавлена возможность генерации typedef-определений типов Dart из языка C.
  • 250 самых популярных пакетов из репозитория pub.dev и 94% из top-1000 переведены на применение режима безопасного использования значения "Null" (null safety), который позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в "Null". Режим подразумевает, что переменные не могут иметь неопределённые значения, если им явно не присваивается значение null. В режиме строго учитываются типы переменных, что позволяет компилятору применять дополнительные оптимизации. Соответствие типов проверяется на этапе компиляции, например, в случае попытки присвоения значения "Null" переменной с типом, не подразумевающим неопределённое состояние, таким как "int", будет выведена ошибка.
  • Предложены унифицированные наборы правил для анализатора кода (linter), обеспечивающие одновременную поддержку проверки следования рекомендациям по стилю оформления кода для Dart и фреймворка Flutter. По историческим причинам правила оформления кода для Flutter и Dart отличались, кроме того для Dart в обиходе находилось два набора правил - педантичные от Google и правила от сообщества разработчиков Dart. В Dart 2.14 представлен новый общий набор правил для linter, который решено применять по умолчанию в новых проектах Dart и во Flutter SDK. Набор включает в себя базовые правила (пакет lints/core.yaml), рекомендованные дополнительные правила (lints/recommended.yaml) и специфичные для Flutter рекомендации (flutter_lints/flutter.yaml). Пользователям педантичных правил рекомендовано перейти на использование нового стиля кодирования, основанного на рекомендациях из документации Dart.
  • В formatter внесены оптимизации в форматирование каскадных блоков кода, позволяющие заметно повысить производительность форматирования и избежать неоднозначной трактовки принадлежности элементов выражения. Например, вызов "..doIt" в выражении "var result = errorState ? foo : bad..doIt()" касается не условной части блока "bad" а всего выражения, поэтому при форматировании теперь разделяется:
    
       var result = errorState ? foo : bad
         ..doIt();
    
  • В SDK добавлена поддержка процессоров Apple M1 (Silicon), подразумевающая как возможность запуска Dart VM, утилит и компонентов SDK на системах с процессором Apple Silicon, так и поддержку компиляции исполняемых файлов для указанных чипов.
  • В команду "dart pub" добавлена поддержка нового служебного файла ".pubignore", позволяющего определить список файлов, которые будут пропущены при публикации пакета в репозитории pub.dev. Указанные настройки не пересекаются со списком игнорирования ".gitignore" (в некоторых ситуациях в pub.dev требуется не передавать файлы, которые нужны в Git, например, внутренние скрипты, применяемые при разработке).
  • Проведена работа по повышению производительности команды "dart test", которая теперь не требует повторной компиляции тестов после изменения pubspec, если номер версии не поменялся.
  • Прекращена поддержка компиляции в режиме совместимости с ECMAScript 5 (изменение приведёт к потере совместимости с браузером IE11).
  • Объявлены устаревшими отдельные утилиты stagehand, dartfmt и dart2native, на смену которым пришли встроенные команды, вызываемые через утилиту dart.
  • Переведён в разряд устаревших механизм VM Native Extensions. Для вызова нативного кода из кода на языке Dart рекомендовано использовать новый интерфейс Dart FFI (Foreign Function Interface).



Одновременно представлен значительный релиз фреймворка построения интерфейса пользователя Flutter 2.5, который рассматривается как альтернатива React Native и позволяет на основе одной кодовой базы выпускать приложения для платформ iOS, Android, Windows, macOS и Linux, а также создавать приложения для запуска в браузерах. На основе Flutter построена пользовательская оболочка развиваемой в Google микроядерной операционной системы Fuchsia.

Основная часть кода Flutter реализована на языке Dart, а runtime-движок для выполнения приложений написан на C++. При разработке приложений, помимо родного для Flutter языка Dart, можно использовать интерфейс Dart Foreign Function для вызова кода на C/C++. Высокая производительность выполнения достигается благодаря компиляции приложений в машинный код для целевых платформ. При этом программу не нужно перекомпилировать после каждого изменения - Dart предоставляет режим горячей перезагрузки, позволяющий вносить изменения в работающее приложение и сразу оценивать результат.

Основные изменения во Flutter 2.5:

  • Внесены значительные оптимизации производительности. На платформах iOS и macOS реализована предкомпиляция шейдеров для графического API Metal. Повышена эффективность обработки асинхронных событий. Решена проблема с задержками во время высвобождения сборщиком мусора памяти от неиспользуемых изображений (например, во время воспроизведения 20-секундного анимированного GIF число операций сборки мусора снижено с 400 до 4. До 50% cнижены задержки при передаче сообщений между Dart и Objective-C/Swift (iOS) или Java/Kotlin (Android). Добавлена поддержка родной сборки для систем на базе чипа Apple Silicon.
  • Для платформы Android налажена поддержка работы приложений в полноэкранном режиме. Продолжена реализация концепции оформления "Material You", преподносимой как вариант Material Design следующего поколения. Добавлено новое состояние MaterialState.scrolledUnder, реализовано динамическое отображение полос прокрутки при изменении размера и предложен новый интерфейс для отображения баннеров с уведомлениями.
  • Значительно расширены возможности плагина для работы с камерой, в котором появились средства для управления автофокусом, экспозицией, вспышкой, увеличением, подавлением шумов и разрешением.
  • Улучшены инструменты для разработчиков (DevTools), в которых появился обновлённый режим инспектирования виджетов, а также предоставлены средства для выявления задержек при отрисовке и отслеживания компиляции шейдеров.
  • Улучшены плагины для Visual Studio Code и IntelliJ/Android Studio.


  1. Главная ссылка к новости (https://medium.com/dartlang/an...)
  2. OpenNews: Google представил фреймворк Flutter 2 и язык Dart 2.12
  3. OpenNews: Выпуск языка программирования Dart 2.8
  4. OpenNews: Компания Google анонсировала язык программирования Dart 2
  5. OpenNews: Релиз языка программирования Go 1.17
  6. OpenNews: Google и Canonical реализовали во Flutter возможность создания десктоп-приложений для Linux
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/55778-dart
Ключевые слова: dart, flutter
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (96) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:52, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    единственная крупная компания в России (Wrike), использовавшая дарт и как-то взаимодействующая с гуглом, закрывает офисы в стране и уходит на другой стек. Кажется, что дарт в вебе без флаттера всё-таки не прижился.
     
     
  • 2.8, 334455 (?), 15:34, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они уж Citrix чуть ли не год как, так что не факт что именно в дарте дело.
     
     
  • 3.31, Аноним (31), 19:49, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Причина в том, что гугл похоронил AngularDart.
     
  • 3.43, Аноним (1), 00:08, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Официально сделку закрыли только в этом году, но кроме того, что цитрикс не хотел видеть русских, имеющих доступ к данным из России, цитриксу нужно ещё и нанимать в том числе фронтенд разработчиков. Хайринг в Праге шёл совсем плохо, а в Россию уже не хайрили.

    Хотя варианты других технологий рассматривали как минимум с прошлого года. Но и с дартом у Райка всё не гладко шло, огромная куча js-легаси со своими велосипедами живёт и здравствует. Что тоже говорит не в пользу дарта.

     
  • 2.82, Gogi (??), 18:18, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ни Дарт, ни Флаттер нафиг не нужны. Есть промышленные языки типа С, С++, C# и к ним зарекомендовавшие себя ГУИ. Любой, кто полезет в эту нишу с языком, который ничего из себя не представляет, кроме как "другой синтаксис", обречён.
    В этом плане есть прорывной язык Nemerle, который МОЖЕТ выстрелить в нише .NET, но пока что его разработка затухла.
     
     
  • 3.95, Сашок (??), 07:52, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Боже, как же вы не правы =). Флаттер/ReactNative вполне себе живут, вполне удобны для разработки мобильного дерьма. Стоимость разработки намного ниже чем нейтив Swift/Kotlin/Java....
     
  • 3.99, Степан (?), 14:39, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    C# из списка можно выбросить, потому что не получиться одну кодовую базу скомпилировать под все платформы.

    Если рассматривать C/C++, то подумайте о стоимости разработки в сравнении с react native и flatter. Для бизнеса выбор очевиден

     

  • 1.2, Ненавижу SJW (?), 14:56, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Подскажите как запустить скомпилированый .dart файл на Linux, где нет Dart окружения?
     
     
  • 2.38, Анончик (?), 21:47, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    так же как любой другой, ./run_me
     
  • 2.53, Аноним (31), 04:26, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Имей в виду, дарт как современный язык не поддерживает x32
     
     
  • 3.92, Аноним (92), 22:49, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А где x32 вообще поддерживают? Из ядра собирались выпилить, не взлетело.
     
  • 2.65, Аноним (65), 14:01, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это ж интерпретируемый язык.
     
     
  • 3.94, funny.falcon (?), 00:55, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Таки нет. Во-первых, есть jit компиляция (внезапно). Во-вторых, особенно для flutter была запилена полная AOT компиляция. Т.е. релизная сборка flutter приложения - это бинарь без намёка на интерпретатор.
     

  • 1.3, Аноним (3), 14:57, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем нужны эти nih языки?
     
     
  • 2.9, danonimous (?), 15:34, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Надо было просто JavaScript закомпилировать в native Android/iOS. Но решили и новый синтаксис замутить.
     
  • 2.23, Stax (ok), 18:07, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Кроссплатформенные приложения win-linux-macos-ios-android, например. Смотрю типичный такой проект: весь код и логика на Dart, под винду 400 строк на C++, под ios 13 строк на Swift, под android 30 строк на Kotlin - во всех случаях нативный код сводится к инициализации flutter.

    Это же всяко приятнее, чем писать двойной код на Java или Kotlin под андроид и дублирующий вариант на ObjC или Swift под iOS, и вдобавок добавляется нативное исполнение под десктопными платформами без кучи лишних телодвижений.

     
     
  • 3.70, Козявка (?), 17:04, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    RN
     
  • 3.83, Gogi (??), 18:28, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    двойной код - это не случайная трудность , которую вы преодолели каким-то туn... большой текст свёрнут, показать
     
     
  • 4.90, Stax (ok), 21:33, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть различные ниши Софт типа инстаграмма или вотсаппа пусть будет нативным, ни... большой текст свёрнут, показать
     
  • 4.101, Степан (?), 23:45, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если не ошибаюсь, инстаграм полностью или частично - react native. И ничего работает на миллионах устройств
     
  • 2.66, Аноним (65), 14:03, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаете дальше "любить" треклятый JS?
     

  • 1.4, Аноним (4), 14:59, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    О, почтисовсемнетормозит обновилось, язык одного фреймворка. На фоне котла, который действительно язык общего назначения с адекватным интерропом в целевую платформу, дарт выглядит как высер, мол рыночек займем, а дальше как пойдет, пока серьезные пасаны вылизывают компоуз до мелочей, эта штука и продолжает жить, единственная цель которой, показать как не стоит развивать язык и фреймворк.
     
     
  • 2.5, Ненавижу SJW (?), 15:20, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как я понял он готовится для Фуксии, а сейчас обкатывается. На Фуксии он будет маст хэв, ИМХО.
     
     
  • 3.12, Аноним (12), 15:45, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ненужно-язык для ненужно-фреймворка для ненужно-оси? Ну это вин ящитаю, так победим!
     
     
  • 4.14, псевдонимус (?), 15:53, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему это фуксия не нужна?
     
     
  • 5.15, Аноним (12), 15:57, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Потому что сырая поделка в знаменитой "экосистеме гугла" без драйверов и реального применения. И не надо писать про ту фоторамку которую купили полтора умственных инвалида - это даже на троллинг не тянет.
     
     
  • 6.36, псевдонимус (?), 21:31, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Линукс тоже был сырой поделкой без реального применения.
     
     
  • 7.40, Анончик (?), 21:52, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Жду вас через 30 лет.
     
  • 7.59, Аноним (12), 09:28, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Линукс с первых дней своего существования запускался, работал и выполнял реальные задачи на реальном железе.
     
  • 2.7, danonimous (?), 15:33, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Котлин провоцирует нечитабельный синтаксис, если тупо не писать как на Java. На практике он кому-то нужен только для Андройда - тому, кто хочет современные фишки, так как Джаву там больше не обновляют.
     
     
  • 3.18, Аноним (12), 16:09, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    По сравнению с хрустом или каким-нибудь objective-c там синтаксис уровня питона - проще некуда.
     
  • 2.10, lockywolf (ok), 15:34, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это вы про Руби?
     
     
  • 3.24, funny.falcon (?), 18:14, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть я и люблю руби, но да, смешно.
     
  • 2.85, Gogi (??), 18:30, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Солидарен!
     

  • 1.6, danonimous (?), 15:26, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > ветки Dart 2, которая отличается от изначального варианта языка Dart применением сильной статической типизации

    Как раз читаю книгу одного из авторов Дарта - Bracha G., 2015 года издания. Там он восхваляет динамическую типизацию, как будто это чуть ли не главное достоинство языка. Ха-ха!

     
     
  • 2.19, Аноним (19), 16:16, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А какое главное достоинство языка?
     
     
  • 3.25, funny.falcon (?), 18:15, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Внятная работа с async, как по мне.
     
  • 3.74, danonimous (?), 00:05, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Flutter. И всё, наверно.
     
  • 2.62, worldmind (?), 13:25, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У гугла это традиция видать, когда го вышёл кричали что дженерики не нужны, мол лишнее усложнение, а теперь хотят выкрутить.
     
     
  • 3.91, xgen (?), 22:15, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У языка нет мин/макс функций, так как нет элементарной перегрузки функций, к тому же. Если бы не инфантильный максимализм авторов, это был бы действительно не язык, а сказка, т.к. параллелизм там действительно сделал очень достойно. Но если транспорт на нем писать нормально, то логику - ну его нафиг.
     

  • 1.11, barmaley (??), 15:38, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Один вопрос - нахуа?
     
  • 1.13, Ананоним (?), 15:52, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вангую потерю десятка миллионов человекочасов во всём мире на ознакомление с этим "нужным" языком!
     
  • 1.20, Ыноним (?), 16:36, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Для полноты картины: к SDK прибита гвоздями телеметрия и выдернуть ее не получается:

    https://github.com/flutter/flutter/issues/73657

     
     
  • 2.21, Аноним (21), 16:52, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я помню был очень удивлён, когда Vista рещила отправить crash-логи в интернет без запроса (XP сначала спрашивала)... Почему-то операционка отправила избирательно, но в том числе и логм project1.exe (что-то там в билдере пробовал и этот project1.exe раз 5 уже падал).

    Интересно, кто-нибудь делал нормальную DDoS атаку на эти системы сбора телеметрии? 100500 крешей helloworld'ов заставят призадуматься любой ИИ. А если оно ещё и с одного хоста придёт, то будет непонятно какую рекламу этому хосту рекламировать...

     
     
  • 3.39, Хру (?), 21:51, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > непонятно какую рекламу этому хосту рекламировать...

    Get your free copy of Rust today! :)

     
  • 3.96, Аноним (96), 12:22, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > 100500 крешей helloworld'ов заставят призадуматься любой ИИ.

    Вангую анализ отчетов происходит отдельно от загрузки.

     
  • 2.29, proninyaroslav (ok), 19:35, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Её можно отключить сразу после установки.
     

  • 1.22, Аноним (22), 17:17, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Язык недалёкого будущего!
     
     
  • 2.73, Led (ok), 23:26, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >Язык недалёкого

    /fixed

     

  • 1.27, Аноним (-), 18:40, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    единственный конкурент для раст
     
     
  • 2.102, Аноним (92), 01:21, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О, вот пусть они друг с другом и конкурируют.
     

  • 1.28, Da (?), 19:17, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Вот как раз сейчас изучаю и походу делаю приложение на Dart2+Flutter. До этого были C++/Java/C#. Впечатления пока самые положительные.
    Dart2+Flutter = Классный язык (очень простой, безопасный, современный, выразительный) и классная современная платформа (универсальная, быстрая, удобная, логичная, продуманная), работающие в единой связке = отличный инструментарий для разработки моб.приложений на любой вкус.
     
     
  • 2.33, Аноним (31), 20:05, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Современный язык без деструктурирующего присваивания? Хм...
    Кстати, а много ли либ/фреймворков для gamedev? Всё ещё около нуля?
     
     
  • 3.50, Da (?), 03:52, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё-таки деструктирующее присваивание - это синтаксический сахар, причём не самы... большой текст свёрнут, показать
     
     
  • 4.55, lockywolf (ok), 07:44, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > больше сахара в язык пихают (с целью упростить), тем сложнее он
    > становится. В результате из удобного инструмента для решения практических задач он
    > превращается в нечто сложное и бесформенное.
    > имхо, главное в ЯП (без учёта библиотек) - это не наличие мешка
    > сахара, а структурная и функциональная достаточность, стройность и надёжность: средства
    > для описания бизнес-логики (типы, классы, интерфейсы, строгая типизация, null safety,
    > дженерики), средства для разделения программы на модули, поддержка асинхронности, обработка
    > ошибок
    > По второму вопросу - есть https://flame-engine.org/ для 2d-игр, но я не могу
    > его оценить по возможностям, поскольку не занимался геймдевом.

    Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

     
  • 4.87, Gogi (??), 18:35, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Чудик, сахар не усложняет язык, чо ты мелешь?? Суть сахара в том и состоит, чтобы УПРОСТИТЬ громоздкие конструкции синтаксиса более короткими. В чём усложнение?? Парсер стал на 100 строк длиньше? Низлежащие конструкции всё равно остались те же!
     
  • 2.34, Аноним (34), 20:13, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как использовать SVG? Особенно как часть компонента, чтобы он был динамическим (зависел от состояния приложения)?

    И как анимировать этот SVG?

     
     
  • 3.52, Da (?), 04:05, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А как использовать SVG? Особенно как часть компонента, чтобы он был динамическим
    > (зависел от состояния приложения)?

    Управление состояние с помощью пакета flutter_bloc, поддержка SVG с помощью  flutter_svg

    > И как анимировать этот SVG?

    Поддерживает ли flutter_svg анимированные SVG - не проверял пока.


     
     
  • 4.56, Аноним (34), 08:22, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я проверил - вроде не поддерживает. Чтобы не просто play / stop, а полноценно управлять.

    В React Native я беру SVG из Figma, натравливаю SVGR утилиту, которая копирует в React (то же самое, но все теги с большой буквы) и мой компонент готов (это код, а не файл)

    Теперь я могу что угодно менять в коде, менять цвета, анимировать и т.д. и т.п.

     
  • 2.47, Хан (?), 02:56, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Dart это то ли C# то ли Java, но зачем? Типа ради Flutter? А ниче что сколько нибудь сложные GUI-приложения на JIT-языках адски тормозят?

    Именно по этому на связке C#/WPF или Java/Swing ничего сложнее полей для ввода текста нельзя написать, чтобы это дело не тормозило

    Тогда вопрос, на Flutter собираются писать десктопные клиенты веб-сервисов, но зачем? Тип есть же на десктопе нормальная веб-версия, в отличии от урезанных версий для мобилок, что решается для последних отдельным приложением

     
     
  • 3.48, Аноним (34), 03:02, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, React Native на JavaScript не просто не тормозит, а летает. Хотя там, конечно, JIT нет.

    Можно посмотреть демки с новой архитектурой (JSI, TurboModules) которую Facebook уже выкатил на своих приложениях.

    Там такие вещи можно делать, никакому Flutter и не снится. При этом GUI летает.

     
  • 3.51, Da (?), 04:03, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Flutter по сути сейчас паравоз, который тащит за собой Dart. Насчёт сложных приложений и их тормозов: если судить по бенчмаркам, то приложения на Flutter весьма неплохи в плане производительности.

    Писать UI на Flutter очень удобно. В сочетании с тулингом VS Code - просто сказочно. Приложения работают сразу на куче платформ: Android, iOS, Web, ... Причём это могут быть весьма добротные и большие приложения, а не поделки "приветмир". Вот тут, например, индийский парень подготовил целый видео-курс на примере реализации довольно крутого моб. приложения с очень стройной архитектурой: https://www.techieblossom.dev/flutter/movieapp/pilot_episode/

     

  • 1.30, Аноним (34), 19:37, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Интересный язык и фреймворк. Будущее безусловно за кросс-платформенными приложениями.

    Потому что и по фичам, и по стеку всё очень похоже. Как минимум концептуально.

    Однако будущее за React Native.

     
     
  • 2.46, Хан (?), 02:49, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Будущее наступило... Qt/C++... неблагодари
     
     
  • 3.49, Аноним (34), 03:05, 11/09/2021 Скрыто модератором
  • –2 +/
     
  • 2.57, ppp (??), 08:46, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    по количеству вакнсий Flutter уже обогнал React native, по крайней мере в нашей локации
     

  • 1.32, Аноним (32), 19:58, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Заколебался с этими нул сейф,  постоянными апгрейдами ради апргрейдов
     
  • 1.35, B (?), 21:12, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    на нем какой GUI можно сделать? десктопный можно?
     
     
  • 2.37, Аноним (37), 21:35, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно, но тебя будут обзывать макакой в комментариях
     
     
  • 3.41, Анончик (?), 21:59, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну Sass же как то скушали и не подавились
     
  • 3.44, Enamel (ok), 01:09, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это же не Электрон
     
  • 2.97, Аноним (96), 12:26, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Новый инсталлятор убунты как раз на нем делают. Но лучше бы не делали.
     

  • 1.45, Хан (?), 02:48, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пока Microsoft переносит на Github обсуждение с сообществом развития C# как открытой технологии и СТАНДАРТИЗИРУЕТ стабильные версии C# и .NET в ECMA, в это время гугл ложит болт на какое-то там компьюнити и хреначит апдейты языка как разрабы раста раз в месяц....

    Неудивительно что Dart компьюнити ноль

     
     
  • 2.67, Аноним (65), 14:08, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.ecma-international.org/publications-and-standards/standards/ecma-4
    Ещё в 2015 году
     
     
  • 3.69, Хан (?), 16:05, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Dart первой версии в том ECMA, после чего Google забил на стандартизацию

    C# 5 стандартизирован, сейчас идет работа по стандартизации 6-7 версии

     
     
  • 4.76, мое правило (?), 07:55, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Честное слово, от стандартов net последнее время как то не легче, если вспомнить путь от net framework к текущему состоянию. Просто корыто а не инфраструктура.
     
     
  • 5.78, Хан (?), 15:06, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    NET Framework никогда не был стандартом ECMA

    Стандарт ECMA опреляет
    - Синтаксис языка C#
    - API BCL и формат байткода NET

     

  • 1.54, Аноним (54), 04:50, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А для TV так и не завезли
     
  • 1.58, ppp (??), 08:49, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что бы там не говорили а Dart Flutter победит все (условно конечно), ибо они реально кросплатформенные, а это очень нравится бизнесу и с этим ничего не сделаешь
     
     
  • 2.63, worldmind (?), 13:28, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Веб версии вроде же нет, реально кроссплатформенный это haxeui
     
     
  • 3.104, dev (??), 06:51, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А если внимательно прочитать новость?
    > Одновременно представлен значительный релиз Flutter 2.5, который ... позволяет ... создавать приложения для запуска в браузерах.
     

  • 1.60, Аноним (60), 10:42, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    очередное тормозное дермище, по уровню электрона, те же яйки только с боку.
     
     
  • 2.61, Аноним (61), 10:55, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каким бы дерьмом это не было, это всё равно лучше чем писать проект одновременно для разных платформ на 4-5 языках сразу.
     
     
  • 3.68, Хан (?), 15:54, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Swing уже был
     
  • 3.77, Аноним (77), 08:34, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Mем про стандарты N+1. Все мы понимаем, как то что земля крутится вокруг солнца, что будущее только за Rust.
     

  • 1.79, Хан (?), 15:08, 12/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если Microsoft таки выпустит кроссплатформенный MAUI для дотнета, то Dart можно выносить вперед ногами
     
     
  • 2.81, Аноним (34), 16:31, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Microsoft целуется взасос с React Native. У них сейчас многие приложения на нём написаны. И они говорят что ооочень довольны.

    Это они добавили поддержку Windows в React Native, да ещё и поддерживают MacOS

     
     
  • 3.88, Хан (?), 18:48, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    NET не отменяет Java
    MAUI(Xamarin.Forms) не отменяет React

    Просто это конкурирующие технологии, но для дотнета кроссплатформенный гуй из коробки это однозначно плюс

     
     
  • 4.93, Аноним (34), 23:49, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Безусловно. Хорошая конкуренция всегда полезна.
     
  • 3.89, Хан (?), 21:03, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    React Native хорош спору нет, но не всем по кайфу JS, ну и про скорость не стоит забывать, пусть React Native это не Apache Cordova, но и до нативного не дотягивает
     

  • 1.80, Хан (?), 15:18, 12/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждем NET6 с MAUI
     
  • 1.86, Док (?), 18:33, 12/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Шикарная система!  Все проекты перевожу на дарт а старперы пусть на си попробуют чето написать)
     
     
  • 2.98, Аноним (96), 12:27, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Все проекты

    Может поделитесь, что за проекты?

     

  • 1.100, Аноним (100), 16:17, 13/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это тот на котором пользовательский интерфейс выглядит как куча экскриментов?
     
  • 1.103, Аноним (103), 03:41, 14/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разработчики на flutter сейчас самые высокооплачиваемые.
     
     
  • 2.105, Ага (?), 16:29, 19/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И жёны у них самые красивые
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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