구글에서 자바스크립트를 대체하기 위해 개발한 멀티 플랫폼 프로그래밍 언어이며, 크로스 플랫폼 프로그래밍 언어를 목표로 설계되었다.
타입 추론 기능, 비동기 프로그래밍 등 강력한 기능을 제공합니다.
AOT, JIT 컴파일을 통해 네이티브 크로스 플랫폼 개발에 적합합니다.
동적 타이핑 언어이기 때문에 런타임 오류가 발생하기 쉬움.
개발자가 의도 하지 않은 방식으로 데이터 타입이 인식 될 우려가 있음.
유연한 문법 구조로 가독성이 떨어짐.
같은 목적의 기능도 다양한 방식으로 작성 될 수 있어, 다른 개발자가 알아보기 어려울 수 있음.
일반적인 프로그래밍 언어보다 실행 속도가 느릴 수 있음.
인터프리터 언어라서 코드를 매번 새로 읽어야 함.
Dart와 다른 언어의 가장 중요한 차이점으로는 Null Safefy와 Hybrid Compile이라는 특성이 있음.
Null Safety는 프로그래밍 언어에서 null 값에 대한 안정성과 예외처리를 개선하는 기능.
Null은 값이 필요한 변수가 메모리에 할당조차 되지 않는 것을 의미함.
( 간단한 코드는 Null을 사용하지 않는 것만으로 해결 할 수 있으나, 코드 양이 많아 질 수록 의도치 않게 Null이 할당되는 경우가 발생 할 수 있음.)
Hybrid Compile은 Dart 코드를 다른 프로그래밍 언어로 변환하여 실행할 수 있는 기술을 말함.
상황에 따라 Javascript로 변환되어 브라우저에서 실행 될 수도 있고, Flutter를 활용하여 Dart 코드를 네이티브 코드로 변환하여 모바일 앱에서 실행 될 수 있음.