Dart как первый язык
Перейти к содержимому

Dart как первый язык

  • автор:

Язык программирования Dart

#

Dart — компилируемый высокоуровневый язык программирования с объектно-ориентированной парадигмой. Свой синтаксис Дарт наследует у С и JavaScript. Чаще всего Dart применяется при разработке мобильных приложений и высоконагруженных сайтов.

История развития и базовые принципы

Первые упоминания нового языка от компании Google появились в 2011 году. К ноябрю 2013 в свет вышла стабильная версия платформы, предназначенная для общего доступа. Целью разработчиков Dart было создание языка программирования, похожего на JavaScript, но лишенного его “фундаментальных недостатков”. Синтаксис должен был быть знаком практикующим разработчикам, чтобы на переобучение не уходило много времени. Дарт также изначально задумывался как инструмент, одинаково подходящий для создания ПО под разные платформы — от браузеров до мобильных ОС.

В 2018 году разработчики выпустили версию Dart 2.0. В ней была введена строгая типизация и добавлен новый компилятор. На текущий момент обновления системы выходят примерно раз в 2-3 месяца.

Особенности языка

#

  1. Совмещение JIT и AOT компиляции.
    Во всех компилируемых языках, для того чтобы устройство могло выполнить прописанные алгоритмы, программный код переводится в машинный. Провести такую операцию можно двумя способами. Just-in-time компиляция предполагает трансляцию кода “на лету”. Это дает определенные преимущества непосредственно во время разработки — тестирование и отладка происходят быстрее, правки вносятся оперативнее. Правда, при использовании готового приложения на практике оно будет загружаться слишком долго и, возможно, начнет “лагать”. Ahead-of-time компилятор сначала обрабатывает код, и только потом начинается само выполнение программы. Это замедляет разработку, но на устройстве пользователя приложение будет более “шустрым”.
    Dart успешно применяет обе концепции, сочетая их плюсы и предоставляя максимальную производительность.
  2. Промежуточная компиляция.
    Код на Дарт легко транслируется в код на JavaScript, после чего его спокойно можно запустить в браузере. За счет этого программа становится, по факту, кроссплатформенной.
  3. Использование опциональных типов.
    В Dart не обязательно прописывать тип переменной напрямую сразу при ее объявлении. Компилятор способен определить его самостоятельно.
  4. Улучшенный сборщик мусора.
    Когда объекты в интерфейсе приложения непрерывно меняются, для сглаживания анимации критично важно оперативно распределять память устройства и вовремя удалять мусор. Поэтому в Дарт предусмотрен продвинутый инструмент отладки, действующий по принципу поколений объектов. С ним система, в которой все задействованные виджеты, по сути, пересобираются заново для каждого кадра, работает без лагов.
  5. Асинхронные действия.
    В однопоточных языках, к которым относится Dart, велик риск подвисания приложения из-за перекрытия потока слишком тяжеловесной задачей. Чтобы избежать такой ошибки, в платформе предусмотрен механизм под названием Event Loop. Он позволяет выполнять действия асинхронно, временно откладывая блокирующие поток операции.
  6. Открытый код платформы.
    Сообщество активно принимает участие в развитии и совершенствовании языка. Открытый код способствует этому. Кроме того, команда разработчиков всегда остается на связи с пользователями и учитывает их мнение при формировании обновлений.
  7. Стабильная и плавная работа приложений.
    Программное обеспечение на Dart без лагов работает при частоте обновлений монитора в 60 FPS. Сглаживание анимации и работа без подвисаний — это то, за что разработчики и заказчики любят продукты на Flutter, главном фреймворке Dart.
  8. Легкость освоения.
    Синтаксис языка будет понятен любому разработчику, знакомому с C++, JavaScript или Python. Все используемые конструкции действуют предсказуемо, согласно общепринятым правилам ООП.

Где применяется Dart

#

Чаще всего рассматриваемый язык программирования ассоциируется у разработчиков с Flutter — фреймворком для разработки кроссплатформенных мобильных приложений и веб-решений. Это удобный инструмент, ПО на котором работает одинаково стабильно на разных устройствах с разными операционными системами.

При этом Дарт популярен и сам по себе. На нем пишут десктопные программы, серверное программное обеспечение, CLI приложения и даже код для работы IoT устройств (интернета вещей).

Активно использует Dart в своих продуктах и его фактический владелец — Google. Например, в системе Google Ads и ОС Fuchsia.

Примеры кода

Элементарная программа “Привет, мир!” на Dart занимает всего 2 строки.

 void main()

Вот простое применение условного оператора if.

 void main() < int x = 5; int y = 4; if(x>y) < print("Первое число больше второго"); >else < print("Первое число меньше второго"); >> 

#

С помощью того же оператора можно найти значение n-го числа Фибоначчи.

 void main() < int fibonacci(int n) < if (n == 0 || n == 1) return n; return fibonacci(n - 1) + fibonacci(n - 2); >print('fibonacci(10) = $'); > 

#

Задать класс и использовать его можно по стандартным OОП методам.

 void main () < Human tom = Human(); tom.name = "Tom"; tom.age = 25; tom.display(); >class Human < String name = "undefined"; int age = 0; void display()< print("Name: $name Age: $age"); >> 

#

Заключение

Dart — универсальный язык программирования, чаще всего применяемый в мобильной разработке. Программы на нем отличаются высокой степенью сглаживания анимации и гибкими возможностями компиляции. Компания Google занимается постоянным развитием платформы и прислушивается к мнению сообщества.

Dart

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

Освойте профессию «Frontend-разработчик»

Что такое Dart

Dart считается языком общего назначения, но его создатели ориентировали его в первую очередь на фронтенд: создание интерфейсов и взаимодействие с браузером. А собственная платформа Dart VM призвана заменить Node.js — инструмент, с помощью которого пишут код на JavaScript для серверной части.

Это высокоуровневый язык: он оперирует абстрактными понятиями, далекими от «железа», но близкими к человеку. Поэтому код на Dart лаконичный и понятный, а синтаксис легко освоить. Особенно удобным Dart считается для людей, которые до этого уже изучали другие языки программирования.

Создатели Dart — компания Google, которая также придумала язык Go. У Dart открытый исходный код, язык полностью бесплатный и свободно распространяется.

Профессия / 9 месяцев
Frontend-разработчик

Создавайте интерфейсы сервисов, которыми пользуются все

Group 1321314347 (1)

Для чего применяется язык Dart

Так как основная идея создания Dart — заменить JavaScript, сам по себе язык ориентирован на веб-разработку. Во встроенных инструментах языка много средств для работы с браузером и интерфейсами, веб-страницами — словом, фронтенд-частью разработки. В то же время в нем есть и инструменты для бэкенда и серверного программирования.

Но пока в веб-программировании, по крайней мере в России, Dart не прижился. В основном разработчиков на этом языке ищут в проектах по мобильной разработке. Дело в том, что на основе Dart написан Flutter — популярный фреймворк для создания мобильных приложений. Поэтому большинство вакансий по Dart — это работа с Flutter и с приложениями под iOS или Android.

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

Кроме того, на Dart написана надстройка CSS под названием SASS. Ею пользуются фронтенд-разработчики для более удобной верстки.

Особенности Dart

Ориентированность на создание интерфейсов. Dart создавался как язык для интерфейсов, поэтому в нем есть много фишек для их разработки. Сейчас эта особенность нашла применение в программировании мобильных приложений: создавать визуальный интерфейс с помощью Dart довольно удобно. Идея создателей языка была в том, чтобы уменьшить количество переключений между разметкой и кодом — чтобы разработчик не терял времени и не отвлекался. На это и направлены некоторые фишки языка. Например, при компилировании в JavaScript автоматически создается шаблонная HTML-страница с разметкой. Ее сразу можно открыть в браузере и посмотреть, что получилось.

Наследие C и C++. Dart испытал сильное влияние системных языков C и C++, и это нашло отражение в его синтаксисе. Он C-подобный: это значит, что правила написания кода и его структура похожи на C. Хотя Dart проще в освоении и ориентирован на другие цели, он унаследовал некоторые важные элементы: например, основной блок программы заключается в функцию main().

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

В Dart объединили эти подходы — типизация там факультативная. Это значит, что разработчик может указать тип при создании переменной, а может не указывать — допустимы оба подхода. Какой из них лучше использовать, зависит от задачи.

Компилируемость. В отличие от интерпретируемого JavaScript, Dart — компилируемый язык. Это значит, что код на нем проходит через специальную программу-переводчик — компилятор. Она переводит написанное в машинные коды, которые понимает операционная система, поэтому язык работает быстро и может активнее взаимодействовать с ОС.

Два вида компиляции.

  • AOT (ahead of time, «прежде времени») — статическая, или опережающая компиляция. Написанная программа целиком переводится в машинные коды, и только после этого ее можно запустить. Это классический вариант компиляции, именно он используется в C++ и большинстве компилируемых языков.
  • JIT (just in time, «точно вовремя») — динамическая компиляция. Программа компилируется по частям, и скомпилированные части тут же выполняются. Это роднит идею с интерпретацией — другим подходом к исполнению, когда специальная программа-интерпретатор исполняет код построчно. Обычно JIT используется в языках с байт-кодом, таких как Java.

Программа, скомпилированная AOT, быстрее запускается и работает, но такая компиляция замедляет разработку. После каждого изменения разработчик должен перекомпилировать код полностью — а это лишнее время. JIT, наоборот, ускоряет цикл разработки, но сама по себе программа запускается медленнее и требует больше ресурсов.

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

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все

Классическое ООП. В Dart реализован классический подход к объектно-ориентированному программированию, которое сейчас считается одной из наиболее популярных парадигм. В нем есть классы, в том числе абстрактные, реализовано наследование — все это без нововведений и экспериментов, так, как предписывает парадигма. Поэтому писать ООП-код в Dart довольно удобно: не приходится придумывать «костыли» и бороться с особенностями языка.

Изоляторы. Dart — однопоточный язык. Это значит, что все программы на нем выполняются в едином потоке действий, а не в нескольких. Однопоточность тоже роднит его с JavaScript. Но иногда процессы нужно распараллеливать, чтобы несколько действий могли выполняться одновременно. Для этого в Dart реализован механизм изоляторов (isolate). Иногда их еще переводят как изоляты.

Изолятор — это сущность, которая выполняет какие-то действия. У каждого изолятора своя область памяти, он может выполняться одновременно с другими и обмениваться с ними данными. Это своеобразные виртуальные потоки, созданные на более высоком уровне абстракции, чем настоящие.

Управляет ими Event Loop — процесс, который работает, пока открыта программа, и поочередно выполняет код внутри разных изоляторов. Он работает с очередью, действующей по принципу FIFO: «первый вошел, первый вышел». То есть тот процесс, который «пришел» в очередь раньше, и выполнится раньше других. Очередей две: для простых коротких действий и для блоков кода, которые должны выполниться в ответ на какое-то внешнее событие.

Горячая перезагрузка. Удобная особенность Dart — горячая перезагрузка, или hot reload. Термин означает, что код программы можно откорректировать, пока она запущена — и изменения внесутся «на ходу». Для этого не понадобится открывать и снова закрывать программу. В JavaScript и похожих языках тоже есть инструменты для hot reload, но там приходится использовать внешние решения, а в Dart эта возможность встроена изначально. Поэтому горячая перезагрузка в этом языке работает быстрее и эффективнее.

Dart и Dart 2

Современная версия языка называется Dart 2. Она вышла в 2018 году и отличается от более старой версии: в ней улучшили систему типов, сделали синтаксис лаконичнее, добавили новые возможности для создания клиентской части приложений. Инструменты новой версии позволяют реже переключаться между разметкой и кодом, а сущности можно описывать короче.

С выходом Dart 2 язык снова испытал взлет популярности. Сейчас новая версия считается более актуальной, поэтому если разработчики говорят про Dart, чаще всего они имеют в виду Dart 2.

Что такое Flutter и как он связан с Dart

Flutter — один из наиболее популярных фреймворков на Dart. Обычно именно с ним связаны вакансии разработчиков на этом языке. Фреймворк и SDK (набор средств разработки) предназначены для создания приложений под iOS и Android.

Особенность Flutter в том, что он позволяет имитировать нативную разработку под мобильные ОС. Это значит, что с помощью этого фреймворка и SDK можно создавать приложения, использующие системные элементы iOS и Android — они будут быстрыми, удобными и фактически неотличимыми от по-настоящему нативных программ.

Во Flutter легко создавать интерфейсы — в SDK есть визуальные компоненты, с помощью которых можно «собрать» дизайн. Код пишется на Dart, хотя движок Flutter написан на C++.

Пока что Flutter не так часто используется для создания приложений, как Java, Kotlin и Swift, но это интересный и перспективный вариант для мобильной разработки.

Dart и JavaScript

В отличие от других языков, созданных как альтернатива JS, Dart не разрабатывался на его основе. Это полностью самостоятельный язык программирования, независимый от JavaScript. Несмотря на схожесть синтаксиса и назначения, языки не связаны.

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

Сможет ли Dart заменить JavaScript

Несмотря на то что Dart позиционировался как аналог JavaScript, пока что JS остается лидером в веб-разработке и самым используемым языком в мире. Дело в том, что заменить его не так просто. Веб-браузеры умеют обрабатывать только JS, а чтобы «научить» их понимать другие языки, понадобится серьезно их переписывать. Dart пока не настолько популярен, чтобы браузеры пошли на такие масштабные нововведения ради него.

Поэтому, даже если написать клиентскую часть сайта на Dart, код все равно понадобится компилировать в JavaScript. Поэтому же преимущественная область использования Dart сейчас — мобильная разработка, а не веб.

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

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все

Перспективы Dart

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

  • Он удобен для разработки интерфейсов и в принципе для веб-программирования, при этом лишен части недостатков более популярного JavaScript.
  • Сам по себе язык простой и понятный, его легко изучить и начать применять в проектах.
  • Язык активно продвигает Google, а поддержка крупной корпорации — хороший стимул для развития технологии.

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

Преимущества Dart

  • Удобство. На языке просто писать, у него лаконичный синтаксис, понятный разработчикам.
  • Простота освоения. Разработчики говорят, что освоить Dart легко, в особенности если до этого у человека был опыт программирования.
  • Широкие возможности. В языке много особенностей и фишек, расширяющих возможности и облегчающих разработку.
  • Высокая производительность. Dart компилируемый, поэтому быстрый и мощный. Он нормально работает и на клиенте, и на сервере.
  • Поддержка Google. Корпорация поддерживает и рекламирует язык, стремится повысить его популярность. Поэтому у Dart отличная документация и туториалы.

Недостатки Dart

  • Низкая популярность. К сожалению, вакансий на Dart все еще немного: в России их всего несколько десятков, и в основном они включают в себя разработку на Flutter. Но, возможно, в ближайшие годы язык станет популярнее, и разработчики на нем будут нужны в большем количестве.
  • Небольшое комьюнити. Эта проблема — следствие предыдущей: разработчиков на Dart мало, поэтому сообщество у языка небольшое. Людей в нем мало, и со стороны комьюнити язык развивается не так активно, как мог бы.
  • Неспособность полностью заменить JS. Dart все еще не может стать аналогом JavaScript и вряд ли сможет в ближайшие годы. Он не выполняется в популярных браузерах, а фреймворков и библиотек для него пока слишком мало, чтобы покрыть все возможности экосистемы JS.

Стоит ли изучать язык Dart

Считается, что в большинстве случаев изучение Dart — идея чисто факультативная, если вы не пишете на Flutter. Но мобильным разработчикам этот язык будет полезен: на Flutter можно создавать мощные приложения, а работает он на Dart. Веб-разработчикам же советуют изучать Dart по собственному желанию — на случай если язык действительно начнет активно использоваться в веб-разработке.

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

Хотите узнать больше про IT? Записывайтесь на курсы: мы поможем выбрать и освоить новую профессию!

Frontend-разработчик

Научитесь создавать удобные и эффектные сайты, сервисы и приложения, которые нужны всем. Сегодня профессия на пике актуальности: в России 9000+ вакансий, где требуется знание JavaScript.

картинка (70)

Статьи по теме:

«Убить JavaScript не получилось»: за что мы любим Dart — язык создания приложений на Flutter (и кому он подходит)

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

Ефективний курс від laba: HR Business Partner.
Ставайте ключовим гравцем у розвитку бізнесу.

Но сегодня мы хотели бы поговорить о Dart — языке программирования, который делает Flutter таким, каким он есть. Кратко и без воды расскажем об особенностях и преимуществах Dart, поделимся опытом работы и полезными для джунов материалами.

Немного контекста

Технически Dart появился в 2011 году в дебрях Google. В те времена СМИ любили писать, что Google намерена «убить» JavaScript, да и сами разработчики Dart любили говорить на презентациях о «фундаментальных недостатках» JS.

Что ж, убить JavaScript не получилось, но сегодня Dart позиционируется как универсальный client-side-язык, который может как работать как с собственной виртуальной машиной на нативных платформах, так и компилироваться в JS.

Это очень удобный язык для мира, где параллельно существует множество платформ: десктоп, мобайл, веб. Веб-разработчики могут легко ее изучить и повторно использовать большую часть кода под разные системы — Android, IOS и MacOS, Windows, Ubuntu.

Високорівневий курс від laba: Фінансовий аналіз.
Оцінюйте фінансову стабільність та перспективи.

Сегодня о Dart говорят и как о языке для IoT-устройств, и как о языке для бэкенда, хотя там и без него высока конкуренция.

Принципи Dart

Мы говорим о типизированном C-образном языке программирования, а значит, синтаксис Dart очень похож на JS. Но при этом система типов у Dart не слишком разветвленная и сначала может показаться «бедной».

На самом деле Dart входит в относительно редкую категорию soundness-языков: речь идет здесь не о звуках, а о приоритете здравого смысла в работе с типами, то есть отсутствии внутренних противоречий. К примеру, если у вас есть переменная типа int , то она гарантированно будет оставаться с типом int . Это существенное отличие от JS, где типы можно приводить друг к другу.

На официальном сайте Dart эту модель называют sound type system, и приводят следующие преимущества:

  1. Своевременное выявление связанных с типами багов при компиляции.
  2. Лучше читаемый код (ведь типы не могут вам «лгать»).
  3. Удобство поддержки кода — если вы изменяете один фрагмент, система типов может предупредить вас о других фрагментах, которые только что сломались из-за вашей правки.
  4. Улучшенная AOT-компиляция. Хотя AOT можно производить и без типов, сгенерированный таким образом код будет менее эффективным.

Отдельно можем выделить также реализуемый в Dart null-safety: переменная не может быть нулем, если только разработчик собственными руками не определил обратное.

Професійний курс від robotdreams: Алгоритми та структури даних.
Знаходьте нестандартні рішення у складних робочих задачах.

Dart воспринимается интуитивно и не нуждается в такой разветвленной системе типов, которая есть, например, в TypeScript. Можно воспринимать это как предохранитель, мешающий вам выстрелить себе в ногу ��

Как работает Dart

Dart может работать нативно через собственную виртуальную машину DartVM, которая хорошо сочетает преимущества компиляции JIT (Just in time) и AOT (Ahead of time).

JIT — это компиляция кода на лету, тогда как AOT — это работа на опережение с уже скомпилированным кодом.

При разработке на Flutter Dart предоставляет характерную для JIT опцию hot reload, что ускоряет всю работу и помогает отлавливать баги. Но при развертывании продукта он также предоставляет возможности AOT-компиляции (например, под ARM или x64), чтобы конечный продукт был стабильным и работал быстро. При этом Flutter предоставляет в скомпилированный код определенный рантайм, чтобы обеспечить сбор мусора и избежать проблем с типами.

В то же время Dart может с легкостью интерпретироваться и в JavaScript, то есть превращаться в код, который можно открыть в любом браузере. Компиляция под веб происходит по пайплайнам V8 или любому другому движущему устройству.

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

За что мы любим Dart?

  • Легкий в изучении. Если у вас есть определенный опыт с JS или Rust, изучение Dart не составит для вас никакой проблемы. Синтаксис будет интуитивно понятен и очевиден. Следовательно, на адаптацию понадобится буквально две-три недели.
  • Делает возможным Hot Reload. Это некая магия, полностью меняющая ваш опыт разработки. Ведь вы можете вживую видеть, как изменения в коде влияют на визуал и функционал того, что вы создаете.
  • Есть документация и инструменты. Разработчики сделали все, чтобы вам не пришлось проводить шаманские ритуалы и искать ответы в дебрях Stack Overflow и Github. Это не значит, что вы не будете этого делать, но в целом ваши поиски будут безболезненными.
  • Доступный. Никакой проприетарности: инструменты для разработки доступны практически на всех десктопных системах — Windows, MacOS, Ubuntu. Почти всюду доступны эмуляторы Android и IOS. Для работы подойдет большинство распространенных IDE — Visual Studio Code или Android Studio.

Потужний курс від skvot: blender.
Відкрийте для себе світ 3D-графіки.

Какие сложности возникают из Dart?

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

Dart = Flutter

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

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

Однопоточность

Это немаловажная особенность, чем недостаток, но Dart — номинально однопоточная речь. Многопоточные языки в теории позволяют использовать ресурсы железа гораздо эффективнее, но требуют от разработчиков мастерства. Одновременные языки просты и лаконичны, что играет на пользу в циклах разработки.

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

Кроссплатформенность

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

Где искать информацию и ответы

Итак, вы решили изучить Dart/Flutter, нужно ли вам быстро овладеть его. С чего начать:

  1. В арто пойти на официальные сайты — Dart.dev и Flutter.dev . Документация закрывает 90% всех вопросов работы в экосистеме.
  2. Если английский позволяет, то стоит пойти на самые крупные англоязычные веб-ячейки комьюнити — Awesome Flutter и Awesome Dart на Github.
  3. Можно посетить крупнейшие Discord-сообщества, посвященные Dart и Flutter .
  4. Украинский чат на тему Dart/Flutter в Telegram — для поиска ответов, вакансий и единомышленников.

Будущее Dart

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

Стремительное распространение Flutter работает на комьюнити и стимулирует развитие Dart. Поэтому мы верим, что проектов на нем будет становиться все больше — и не только в мобайле, но и в интернете. Уверены: в дальнейшем он может заполучить себе место и в бэкенде, и на десктопных системах.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Хочу всё знать: язык Dart

Вы не найдёте Dart даже в двадцатке самых популярных языков программирования. Вы едва ли найдёте вакансию Dart-программиста, во всяком случае на территории России. А если вы только вчера попали в мир программирования, то возможно полагаете, что этот текст будет посвящён одному из персонажей киносаги «Звёздные войны» (хоть он и Darth).

Тем не менее, Dart – именно тот язык, знание которого может завтра стать обязательном пунктом в резюме любого уважающего себя веб-разработчика. Причина тому проста: он был создан и активно продвигается Google.

Краткая справка

В 2011 году официально началась разработка языка Google Dart, который по замыслу авторов, должен полностью заменить JavaScript. Причиной тому послужили «фундаментальные изъяны» последнего (со слов Марка Миллера, одного из разработчиков Dart), которые оказалось просто невозможно исправить эволюционным путем. В 2013 была представлена первая официальная стабильная версия.

Сегодня, несмотря на позицию в третьем десятке наиболее популярных языков, Dart, тем не менее, удалось обойти такие ценные экземпляры, как Rust, VHDL и Scala. Что касается практического применения, то на Dart написан всем известный Google AdWords.

Кому учить

Как уже было сказано, несмотря на то, что Dart относительно популярен и завтра может стать обязательным условием приёма на работу, сегодня его изучение носит исключительно факультативный характер. Теоретически, знание TypeScript совместно с JavaScript практически полностью покрывает возможности Dart. С другой стороны, потенциал Dart куда выше и его стоит рассматривать скорее, как этап развития, а не как конкурента JavaScript.

Преимущества

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

Удобство разработки
Если вы посвятите хотя бы 10 минут изучению Dart, то убедитесь на личном примере — работать с ним по-настоящему удобно. Вы просто посмотрите на код приветственного “Hello, World!”:

void main()

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

Увеличение скорости
Помимо синтаксиса, есть масса удобств ускоряющих, как разработку кода, так и его дальнейшее исполнение на машине. Например, статическая типизация со всеми вытекающими преимуществами по быстродействию и возможностью отловить подавляющее число ошибок ещё на стадии компиляции.

Среда разработки
Dart поддерживается всеми популярными IDE: IDEA, WebStorm, Atom, Emacs, Visual Studio, Sublime Text, Vim. Кроме того, для удобства использования Dart Google специально выпустил браузер Dartium, на основе Chromium, со встроенной виртуальной машиной.

Развитие
Google очень активно занимается разработкой и продвижением Dart, что отражается хотя бы в регулярности обновлений — каждые 2-3 месяца. И это не просто косметические исправления, а реальные апгрейды, сказывающиеся в том числе на оптимизации и возможностях.

Хорошая стандартная библиотека
Как итог всех предыдущих пунктов, стоит отметить библиотеку Dart, предоставляющую веб-разработчику практически безграничные возможности.

Хотите стать веб-разработчиком? Рады пригласить вас на бесплатный интенсив по основам веб-разработки.

Недостатки

Если бы язык Dart был таким совершенным, как о нём говорят его разработчики, то о JavaScript и TypeScript мы бы стали быстро забывать. Но пока это не так. Вот главные претензии:

Малое сообщество
При всех плюсах самого языка, Google каким-то непостижимым образом не уделил должного внимания простым разработчикам. Нет, формально всё хорошо: недавно в Мюнхене прошла крупная конференция «Dart Dev Summit», а официальный сайт располагает всей необходимой информацией, как для новичка, так и для профессионала.

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

Проблемы JavaScript преувеличены
Если покопаться в интернет-истории, то можно найти немало адептов JavaScript, которые изначально были настроены негативно по отношению к детищу Google. Как тогда, так и сейчас, основная претензия сводится к тому, что будь JavaScript настолько ограниченным языком, то он не сыскал бы славу универсального инструмента, как для простых скриптов, так и для сложных приложений.

Более того, в прошлом году даже в Google перестали видеть в JavaScript конкурента и всерьёз занялись улучшением компилятора кода, но, как оказалось, лишь на время: «Dart Dev Summit 2016» ознаменовал возвращение Dart как полноценного игрока.

Полезные ссылки

Для тех, кто решил познакомиться с Dart поближе, вот несколько полезных ссылок:

Официальный сайт – здесь вы найдёте всю необходимую информацию о языке, инструментах, библиотеках, а также актуальные новости об обновлениях и грядущих конференциях. Ссылки на скачивание всевозможного дистрибутива прилагаются;

Dart на русском – несмотря на то, что сайт не обновлялся с начала 2013 года (то есть он умер фактически до официального рождения Dart), здесь по-прежнему можно найти много полезной информации;

Видеоуроки по Dart – к сожалению, толковых русскоязычных видеоресурсов найти не удалось, поэтому при просмотре придётся держать под рукой англо-русский словарь;

Презентация Евгения Гусева на Frontend DevConf 2016 – в этом материале вы узнаете в чём конкретно Dart превосходит привычный JavaScript, а также как эти преимущества использовать на практике;

Dart в действии, Крис Бакетт – пожалуй, главная книга по языку Dart.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *