Skip to content

Dart: история создания и применение

Работа с числами — одна из базовых концепций программирования. Именно поэтому у меня это обычно первый, максимум второй урок. Ну что может быть сложнее, чем повторить урок математики из второго класса: 2 + 2 = 4.

Но здесь я должен сделать отступление.

В 1994 году, будучи студентом-первокурсником и изучая Java, я постоянно слышал от профессора: "Это мы знаем из языка C". Позже, изучая Kotlin или JavaScript, постоянно слышал: "Это мы знаем из Java".

Как бы я ни хотел, мы не сможем избавиться от выражений типа: "потому что так в JavaScript" или "это досталось нам от Java". Что бы объяснить почему начнём с истории.

Как появился Dart?

Все началось в 2011 году. В то время Google столкнулся с проблемой: JavaScript уже не справлялся с задачами сложных веб-приложений. Из-за особенностей проектирования, динамической природы и слабой типизации JavaScript, код становился громоздким, а ошибки часто обнаруживались только во время выполнения.

Google решил: нужен новый язык, который сочетал бы простоту JavaScript и производительность компилируемых языков. Так появился Dart.

Dart разрабатывали Ларс Бак и Каспер Лунд – ребята, которые раньше работали над виртуальной машиной V8 для Chrome. Их цель: создать язык, который будет быстрым, удобным и понятным для разработчиков, привыкших к Java, C# и JavaScript.

Первая версия Dart вызвала скепсис. Google пытался продвинуть его как замену JavaScript, но разработчики не были готовы. Поэтому стратегия поменялась: Dart стал языком не для браузеров, а для приложений – мобильных, десктопных и серверных.

Dart против других языков

Тут неизбежно возникает вопрос: чем Dart отличается от других языков?

📌 Dart vs JavaScript – в отличие от JS, у Dart строгая типизация, что снижает количество ошибок. 📌 Dart vs Java – Dart проще и не требует компиляции в байт-код, но поддерживает ООП. 📌 Dart vs Kotlin – Kotlin ближе к Java, но Dart изначально создавался для кроссплатформенности.

Можно сказать, что Dart – это быстрый, безопасный и удобный язык, ориентированный на разработку клиентских приложений.

Как Google использует Dart?

Один из главных пользователей Dart – сам Google. На нём написаны: ✅ Flutter – главный кроссплатформенный фреймворк для мобильных, веб- и десктопных приложений. ✅ Google Ads – интерфейс рекламной платформы Google работает на Dart. ✅ Fuchsia OS – новая операционная система Google частично использует Dart.

Dart и Flutter

Что бы создать приложение для Windows, надо было знать C, для создания Android-приложения – Java или Kotlin, для macOS или iPhone – Swift, а для веба – JavaScript. Даже для опытного программиста это сложно. Нельзя всё знать хорошо. А бизнес требует решения проблем для всех экосистем. Например, приложение доставки цветов должно быть и в вебе, и на мобильных устройствах.

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

Важно понимать: Dart – это язык, а Flutter – это фреймворк на этом языке. Но пока мы вернёмся к Dart и будем обсуждать только его.

В связи с тем, что приложения должны портироваться на разные платформы, у нас появляются вещи, которые мы должны понимать. Например, что в Java числа ограничены 2^63, а в JavaScript – 2^52. И что нам придётся часто слышать, что так сделано "потому что в Java было так".

Итак, что такое Dart?

Google определяет его так:

📌 "A client-optimized language for fast apps on any platform" – Язык, оптимизированный для клиентских приложений (основной упор на фронтенд-разработку, включая мобильные и веб-приложения).

📌 "Dart is an object-oriented, class-based language with C-style syntax" – Классовый ООП-язык с синтаксисом, похожим на C.

Таким образом, Dart – это объектно-ориентированный язык, предназначенный в первую очередь для клиентской разработки (мобильные и веб-приложения).

Мы подробно рассмотрим, как в Dart реализован ООП, немного позже. В первых главах мы просто будем пользоваться тем, что нам предлагают, как дети, которые берут ложку в руку, не выясняя, деревянная она или пластиковая, и на каком заводе её изготовили. Ложка – просто ложка.

Итог

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

Домашнее задание и дополнительные ссылки

Почитай для общего развития статьи на википедии о:

  1. Языке C, java, javascript, c#, kotlin, swift, objective c,
  2. Об операционных системах unix, linux, windows, android, iOS.
  3. И конечно же почитай о Dart и Flutter.
  4. Высокоуровневый язык программирования
  5. Низкоуровневый язык программирования
  6. Подкасты:
  7. Сборник информации по Flutter
  8. Официальная документация по Dart