Перейти к содержанию
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
Логотип бренда
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. Dart
  5. Ключевые особенности Dart: взгляд со стороны

Ключевые особенности Dart: взгляд со стороны

Запланировано Прикреплена Закрыта Перенесена Dart
1 Сообщения 1 Постеры 30 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsK Не в сети
    kirilljsK Не в сети
    kirilljs
    js
    написал в отредактировано
    #1

    Привет, народ! Хочу поделиться своими мыслями о языке программирования Dart. Начну с того, что я не пишу на Dart — я JavaScript-программист до мозга костей, и мне нравится мой выбор. Но время от времени я присматриваюсь к другим языкам, чтобы понять, какие инструменты есть у других разработчиков, и как они решают задачи. И знаете что? Dart действительно вызывает интерес!

    Dart был создан Google в 2011 году, и сейчас он активно используется для разработки мобильных приложений (Flutter), веб-приложений, серверных решений и даже десктопных программ. Давайте посмотрим, чем этот язык так привлекателен.

    Статическая типизация

    Первая вещь, которая бросается в глаза — это статическая типизация. Для меня, как JavaScript-разработчика, это было шоком. В JS мы все привыкли к динамической типизации, где можно написать что-то вроде:

    let x = "hello";
    x = 42; // Why not?
    

    А в Dart такое невозможно. Типы строго проверяются во время компиляции:

    String x = "hello";
    x = 42; // Ошибка: нельзя присвоить int переменной String
    

    Null Safety

    Вот еще одна фишка, которая заставила меня задуматься. Dart имеет встроенный механизм Null Safety — защиту от null и undefined. Если вы когда-либо сталкивались с ошибками типа Cannot read property 'foo' of null в JavaScript, то поймете, почему это важно.

    В Dart нужно явно указать, может ли переменная быть null, используя знак ?:

    String? name; // Может быть null
    name = null; // OK
    print(name?.length); // Безопасный вызов метода
    

    Это спасает от множества глупых ошибок. Хотя, честно говоря, в JavaScript мы уже можем использовать TypeScript для подобного, но в Dart это работает из коробки.

    Ориентация на производительность

    Dart был разработан с учетом производительности. Он может компилироваться как в машинный код (для Flutter-приложений), так и в JavaScript (для веба). Это позволяет создавать быстрые и эффективные приложения без необходимости жертвовать кроссплатформенностью.

    Например, если вы пишете мобильное приложение на Flutter, Dart компилируется в нативный код для Android и iOS. А если вы пишете веб-приложение, Dart преобразуется в оптимизированный JavaScript. Удобно, правда?

    Асинхронность через async/await

    Если вы знакомы с JavaScript, то знаете, как удобно работать с асинхронным кодом через async/await. В Dart эта концепция реализована практически один в один:

    Future<String> fetchData() async {
      await Future.delayed(Duration(seconds: 2)); // Симулируем задержку
      return "Data loaded!";
    }
    
    void main() async {
      print(await fetchData()); // Выведет "Data loaded!" через 2 секунды
    }
    

    Для меня это было приятным сюрпризом. Dart не пытается изобрести велосипед, а просто берет лучшие практики из других языков.

    Flutter — главный козырь Dart

    Если вы никогда не слышали о Flutter, это фреймворк для создания кроссплатформенных приложений на Dart. Он позволяет писать один код и запускать его на Android, iOS, вебе, Windows, macOS и Linux. Это огромное преимущество для команд, которые хотят экономить время и ресурсы.

    Как JavaScript-разработчик, я могу сравнить Flutter с React Native. Только Flutter использует собственный рендеринг, что делает его более производительным и гибким. Но вот проблема: для работы с Flutter нужно учить Dart. А я пока не готов отказаться от моего любимого JavaScript 😅.

    Богатая стандартная библиотека

    Dart предлагает мощную стандартную библиотеку, которая покрывает множество задач: работа с коллекциями, файлами, сетью, регулярными выражениями и т.д. Например:

    import 'dart:convert';
    
    void main() {
      Map<String, dynamic> data = jsonDecode('{"name": "John", "age": 30}');
      print(data['name']); // Выведет "John"
    }
    

    Это удобно, потому что вам не нужно искать сторонние библиотеки для базовых операций.

    Сильное сообщество и поддержка Google

    Google активно развивает Dart и Flutter, что обеспечивает язык хорошей документацией, регулярными обновлениями и большим количеством учебных материалов. Сообщество тоже растет, поэтому найти ответы на вопросы становится всё проще.

    Итоги

    Dart — это интересный язык, который предлагает много преимуществ для тех, кто хочет создавать кроссплатформенные приложения. Его статическая типизация, Null Safety и интеграция с Flutter делают его особенно привлекательным для мобильной разработки.

    Однако, как JavaScript-программист, я пока не готов полностью переключаться на Dart. Мне нравится гибкость и свобода, которую дает JavaScript, особенно в сочетании с современными фреймворками вроде React или Vue.js. Но я определенно буду следить за развитием Dart и Flutter — кто знает, может быть, однажды я решу попробовать их в реальном проекте.

    А вы уже работали с Dart? Какие ваши впечатления?
    P.S. Если хотите научиться писать на Dart — начните с официальной документации. Она отличная!

    1 ответ Последний ответ
    0

    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы