Во-первых, позвольте мне предварить мой аргумент следующим:

  1. Dart находится в середине-верхней части самых любимых/ужасных языков в опросе stackoverflow.
  2. Dart неуниверсальный язык. Основной областью программирования, которой занимается дартс, является разработка мобильных приложений, но ради аргументации я попытаюсь разделить флаттер и дартс.

Без лишних слов, давайте перейдем к статье

Недавно я прочитал статью, объясняющую, что дартс — ужасный язык. Я не согласен. За то время, что я использую dart, он действительно хорош в том, что он делает, и довольно плохо в других областях. Давайте сначала рассмотрим преимущества дартса по сравнению с другими языками:

  1. Нет ключевого слова new для создания экземпляра класса
    Поскольку dart — это интерфейсный язык, работающий с классами, удаление ключевого слова new действительно освежает, поскольку нам не нужно добавлять new каждый раз при создании экземпляра. новый виджет.
  2. Именованные аргументы спасают наши глаза
    На мой взгляд, способ, которым дротик использует именованный аргумент, почти готов. То, как это работает, отличается от javascript, где мы должны добавлять фигурные скобки перед вызовом функции. Это также отличается от kotlin, который позволяет нам либо указывать имя аргумента, либо нет. Это дает нам вариант, которого мы должны придерживаться, если хотим использовать именованный аргумент, и он работает довольно естественно, когда мы вызываем функцию с именованным аргументом.
    Единственное, что меня беспокоит, так это то, что ключевое слово required не является поведением по умолчанию, что вынуждает меня использовать это ключевое слово во многих местах.
  3. Он похож на машинописный текст
    Поскольку машинописный язык занимает 4-е место в списке самых любимых языков Stackoverflow и является одним из наиболее часто используемых языков для веб-разработки и разработки мобильных устройств, это облегчает для Dart рост популярности благодаря сходство с машинописным текстом. Некоторые похожие функции вращаются вокруг его динамически типизированного языка, использования ключевого слова const для объявления переменных (в dart final и const похожи), синтаксиса функции обратного вызова и стрелочной функции и т. д.
  4. У него нет хорошей конкуренции… по крайней мере, до тех пор, пока Kotlin Multiplatform
    React Native не станет популярен из-за своей низкой производительности, прогрессивные веб-приложения становятся все хуже, фреймворки js, такие как ionic multiplatform, список можно продолжить. Я слышал, что мультиплатформенность kotlin и kotlin compose привлекают некоторое внимание, но в обозримом будущем dart остается лучшим выбором для мультиплатформенного языка AOT.
  5. Прекрасный модуль форматирования и поддержка отладки, хорошая экосистема в целом
    У Dart один из лучших инструментов для разработки мобильных приложений, и точка. Его инструмент отладки и возможность добавить точку останова на полпути, увидеть, как быстро происходит перезагрузка в реальном времени, и т. д. Кроме того, форматировщик Dart, который критиковался в предыдущей статье, на самом деле хорош. Вам нужно поставить запятые в конце, чтобы отдельные аргументы находились в другой строке.

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

При всем при этом дартс не является безумным языком. Некоторые из зудящих моментов, о которых говорится в вышеупомянутой статье, верны, например:

  • Добавление подчеркивания для частного метода является сомнительной функцией. Это усложняет (по крайней мере для меня) разделение приватного и публичного методов, так как я привык искать ключевое слово private.
  • Отражение в дартс практически отсутствует. Пожалуйста, если что, сделайте отражение лучше для облегчения тестирования целей гугла. 💌

В остальном я бы относился к дротикам так же, как к javascript. Простой язык для использования в определенной области, который также является достойным языком для написания сценариев.