Оглавление
Время чтения: 10 минут
Dart - ООП сценарный язык программирования, предназначенный для создания веб-приложений и мобильного ПО. Синтаксис Dart напоминает С и JavaScript. Одной из целей разработчиков языка было создание, по сути, улучшенной версии JS, которая эффективнее решала бы практические задачи программирования.
История создания
Корпорация Google впервые представила публике новую платформу разработки в сентябре 2011 года. Создатели задумывали Дарт как гибкий и производительный язык программирования общего назначения, который легко освоить при знании JavaScript.
Первая официальная стабильная сборка Dart вышла только в 2013 году. На данный момент язык активно обновляется. Актуальная версия платформы под номером 2.18.5 вышла в ноябре 2022. Сообщество Dart и в целом влияние сейчас растет как внутри, так и вне Google.
Сферы применения
Наибольшую известность Dart приобрел, став частью Flutter - фреймворка для мультиплатформенной разработки. Чаще всего на Flutter пишут мобильные приложения, но также на нем можно создавать веб-приложения и десктопное ПО. Но Дарт не ограничивается Flutter. На этом языке можно написать:
- серверные приложения;
- приложения командной строки (CLI);
- десктопное и мобильное программное обеспечение:
- ПО для интернета вещей.
В Google, к примеру, Dart используется для управления платформой Google Ads.
По своей сути Дарт - универсальная платформа. Ее применение ограничено лишь логикой и удобством в каждом конкретном случае.
Особенности и преимущества
- Just-in-time (JIT) и Ahead-of-time (AOT) компиляция.
Обычно исполняющее устройство обрабатывает программный код одним из двух способов. В первом случае компилятор переводит байт-код (промежуточный код) непосредственно в машинный код “на лету” (just-in-time). Во втором программа компилируется полностью от начала до конца. JIT ускоряет процесс разработки ПО, так как необходимые правки в код можно вносить фактически сразу. Правда, при непосредственном выполнении программы могут возникать “провисания” и лаги. AOT занимает достаточно времени на компиляцию, но при этом уже скомпилированная программа работает более плавно и предсказуемо, и запускается быстрее.
Dart совмещает оба вида обработки кода, пользуясь их преимуществами во время разработки и при выпуске готового продукта. - Промежуточная компиляция.
Программу на Dart с помощью виртуальной машины без труда можно скомпилировать в JavaScript для выполнения в браузере. Это повышает кроссплатформенность кода. - Продвинутый сборщик мусора.
Удаление мусора и эффективное распределение памяти особенно важно для приложений с быстро меняющимся пользовательским интерфейсом. Сборщик мусора, работающий на основе поколений объектов и избегающий излишних блокировок при выполнении кода, обеспечивает высокую частоту обновления экрана и плавность анимации. - Опциональные типы.
В Dart можно как строго указывать типы, так и отдавать их определение на усмотрение компилятора. Такое совмещение строгой и динамической типизации позволяет, с одной стороны, ускорить написание кода, а с другой - избежать лишних ошибок там, где они действительно могли бы возникнуть. - Асинхронность.
По своему устройству Dart - однопоточный язык. Если какая-то операция в потоке будет выполняться слишком долго, приложение может подвиснуть. Для предотвращения таких ситуаций в Дарт предусмотрено асинхронное выполнение операций. Благодаря фиче Event Loop обработка “тяжелой” части кода временно откладывается, и блокировки потока не происходит. - Быстрота и плавность работы конечного продукта.
Приложения на Dart отлично работают при частоте обновления экрана в 60 FPS. Множество функций (в том числе упоминавшийся сборщик мусора) направлены на плавность переходов и отсутствие зависаний. Фреймворк Flutter считается лучшим кроссплатформенным решением в этом плане, не уступая по всем показателям большинству нативных разработок. - Открытый код.
Дарт - продукт с открытым исходным кодом. Такой подход способствует развитию языка и заинтересованности сообщества в его улучшении. Владелец платформы, компания Google, всегда учитывает мнение пользователей при выпуске обновлений своей платформы. - Простота освоения.
При знании JavaScript или С++ разработчик может освоить Dart за очень короткое время. Синтаксис Dart может показаться более строгим, чем в Swift или Kotlin, но не критически.
Примеры программ
Простейший алгоритм, выводящий на экран определенную надпись, в Дарт выглядит так.
void main() {
print('Hello, World!');
}
Важная особенность Dart - необязательное указание типов переменных. По сути, любой тип можно прописать просто через оператор var.
void main() {
var x = 1;
var y = 3.42;
var name = 'Andy';
print ('$x');
print ('$y');
print ('$name');
}
Работу оператора условия if можно продемонстрировать на примере нахождения n-го числа Фибоначчи.
void main() {
int fibonacci(int n) {
if (n == 0 || n == 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
print('fibonacci(10) = ${fibonacci(10)}');
}
Заключение
Dart - кроссплатформенный язык программирования с большим набором возможностей для разработки, созданный компанией Google. Основное применение Dart нашел как основа фреймворка Flutter, который используется для мобильной и веб разработки. Главные преимущества Дарт и его фреймворка - скорость и плавность работы экранных объектов, асинхронность загрузки и открытый код платформы.
В студии AppFox можно подать заявку на программирование, создание игр или заказать разработку приложений https://appfox.ru и получить бесплатную консультацию по ценам и услугам.