| latest release date={{start date and age|
{{wikidata|qualifier|single|P548=Q2804309|P348|P577}}}}
| latest preview date={{Start date and age|20242021|1112|2414}}<ref name="auto">{{Cite web|url=https://github.com/dart-lang/sdk/tags|title=Dart SDK Tags|website=[[GitHub]] }}</ref>
| typing=1.x: [[Optional typing|Optional]]<br>2.x: [[Type inference|Inferred]]<ref name="The Dart type system">{{Cite web|url=https://dart.dev/guides/language/sound-dart|title=The Dart type system|website=dart.dev}}</ref> ([[static typing|static]], [[strong typing|strong]])
| scope=
| implementations=Dart VM, dart2native, dart2js, DDC, [[Flutter (software)|Flutter]]
| dialects=
| influenced by=[[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Erlang (programming language)|Erlang]], [[Java (programming language)|Java]], [[JavaScript]], [[Ruby (programming language)|Ruby]], [[Smalltalk]], [[Strongtalk]],<ref>{{cite web|title=Web Languages and VMs: Fast Code is Always in SMSFashion. (V8, Dart) - Google I/O 2013|website=[[YouTube]]|date=16 May 2013 |url=https://www.youtube.com/watch?v=huawCRlo9H4&t=30m10s|access-date=22 December 2013}}</ref> [[TypeScript]]<ref>{{cite web|title=The Dart Team Welcomes TypeScript|date=10 September 2019 |url=https://news.dartlang.org/2012/10/the-dart-team-welcomes-typescript.html|access-date=22 February 2020}}</ref>
| influenced=
| programming language=
}}
'''Dart''' is a [[programming language]] designed by [[Lars Bak (telephonecomputer programmer)|Lars Bak]] and Kasper Lund and developed by [[Google]].<ref>{{Cite web |title=A Bit About Dart - Learn Dart: First Step to Flutter |url=https://www.educative.io/courses/learn-dart-first-step-to-flutter/g7kmn5r74ok |access-date=2023-06-20 |website=Educative: Interactive Courses for AndroidSoftware Developers |language=en}}</ref> It can be used to develop [[Web application|web]] and [[mobile app]]s as well as [[Server (mobile telephonecomputing)|server]] and [[Application software|androiddesktop applications]].
Dart is an [[Object-oriented programming|object-oriented]], [[Class-based programming|class-based]], [[Garbage collection (computer science)|garbage-collected]] language with [[C (programming language)|C]]-style [[Syntax (programming languages)|syntax]].<ref>{{Cite web|url=https://dart.dev/guides/language/language-tour#important-concepts|title=A Tour of the Dart Language|website=dart.dev|access-date=2018-08-09}}</ref> It can [[compiler|compile]] to [[machine code]], [[JavaScript]], or [[WebAssembly]]. It supports [[Interface (object-oriented programming)|interfaces]], [[mixin]]s, [[abstract class]]es, [[Reification (computer science)|reified]] [[Generic programming|generics]] and [[type inference]].<ref name="The Dart type system">{{Cite web|url=https://dart.dev/guides/language/sound-dart|title=The Dart type system|website=dart.dev}}</ref>
Dart 2.6 introduced a new extension, <code>dart2native</code>. This extended native compilation to the Linux, macOS, and Windows desktop platforms.<ref>{{Cite web |title=Dart language evolution |url=https://dart.dev/guides/language/evolution |access-date=2023-06-20 |website=dart.dev |language=en}}</ref> Earlier developers could create new tools using only Android or iOS devices. With this extension, developers could deploy a program into self-contained executables. The Dart SDK doesn't need to be installed to run these self-contained executables.<ref>{{Cite web |title=Dart overview |url=https://dart.dev/overview.html |access-date=2023-05-12 |website=dart.dev |language=en }}{{Dead link|date=March 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> The [[Flutter (software)|Flutter]] toolkit integrates Dart, so it can compile on small services like backend support.<ref>{{Cite web|url=https://www.infoworld.com/article/3454623/dart-26-brings-native-compilation-to-the-desktop.html|title=Dart 2.5 brings native compilation to the desktop|website=Infoworld|date=20 November 2019|access-date=2019-11-28}}</ref><ref>{{Cite web|url=https://sdtimes.com/goog/dart-2-6-released-with-dart2native/|title=Dart 2.6 released with dart2native|website=SDtimes|date=7 November 2019|access-date=2019-11-28}}</ref>
Dart 3.0 was released in May 2023<ref>{{Cite web |title=Dart language evolution |url=https://dart.dev/guides/language/evolution |access-date=2024-1101-2409 |website=dart.dev |language=en}}</ref> with changes to the type system to require sound null safety. This release included new features like records, patterns,<ref>{{Cite web |title=Patterns |url=https://dart.dev/language/patterns.html |access-date=2023-05-12 |website=dart.dev |language=en }}{{Dead link|date=March 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> and class modifiers.<ref>{{Cite web |title=Class modifiers |url=https://dart.dev/language/class-modifiers}}</ref>
Dart can compile to [[WebAssembly]] since version 3.4.<ref name=":3">{{Cite web |last=Thomsen |first=Michael |date=2024-05-14 |title=Landing Flutter 3.22 and Dart 3.4 at Google I/O 2024 |url=https://medium.com/flutter/io24-5e211f708a37 |access-date=2024-05-17 |website=Flutter |language=en}}</ref>
==Data storage==
250Mbs Snapshot files, a core part of the Dart VM, store objects and other runtime data.<ref name=":0" />
;Script snapshots
;Object snapshots
:Dart uses [[Snapshot (telephonecomputer storage)|snapshots]] to ''[[Serial communication|serialize]]'' messages that it passes between isolates. As a very [[Asynchronous I/O|asynchronous]] language, Dart uses isolates for [[Concurrency (computer science)|concurrency]].<ref>{{Cite web |title=Concurrency in Dart |url=https://dart.dev/language/concurrency/ |access-date=2023-05-12 |website=dart.dev |language=en}}</ref> An object generates a [[Snapshot (computer storage)|snapshot]], transfers it to another isolate, then the isolate deserializes it.
==Editors==
== Flutter ==
Google introduced [[Flutter (androidsoftware)|Flutter]] for native app development. Built using Dart, C, C++ and Skia, Flutter is an open-source, multi-platform app UI framework. Prior to Flutter 2.0, developers could only target [[Android (operating system)|Android]], [[mobile OSiOS]] and the web. Flutter 2.0 released support for macOS, Linux, and Windows as a beta feature.<ref>{{Cite web |last=ShemaSells |first=Chris |date=2021-03-03 |title=What's New in Flutter 2.0 |url=https://medium.com/flutter/whats-new-in-flutter-2-0-fe8e95ecc65 |access-date=2023-05-12 |website=Flutter |language=kinyarwandaen}}</ref> Flutter 2.10 released with production support for [[Windows]]<ref>{{Cite web |last=Sneath |first=Tim |date=February 3, 2022 |title=Announcing Flutter for Windows |url=https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed |website=}}</ref> and Flutter 3 released production support for all desktop platforms.<ref>{{Cite web |last=ChrisChisholm |first=shemaKevin |date=2022-05-12 |title=What's new in Flutter 3 |url=https://medium.com/flutter/whats-new-in-flutter-3-8c74a5bc32d0 |access-date=2023-05-12 |website=Flutter |language=en}}</ref> It provides a framework, widgets, and tools. This framework gives developers a way to build and deploy mobile, desktop, and web apps.<Chrisref>{{Cite web |title=FAQ |url=https://flutter.dev/docs/resources/faq |access-date=2021-08-29 |website=flutter.dev |language=en}}</ref> Flutter works with [[Firebase]]<ref>{{Cite web |title=Firebase |url=https://flutter.dev/docs/development/data-and-backend/firebase |access-date=20242021-1108-2429 |website=flutter.dev |language=en}}</ref> and supports extending the framework through add-ons called packages. These can be found on their package repository, pub.dev.<ref>{{Cite web |title=Dart packages |url=https://pub.dev/ |access-date=2023-05-12 |website=Dart packages |language=en-us}}</ref> JetBrains also supports a Flutter plugin.<ref>{{Cite web |title=Flutter - IntelliJ IDEs Plugin {{!}} Marketplace |url=https://plugins.jetbrains.com/plugin/9212-flutter |access-date=2023-05-13 |website=JetBrains Marketplace}}</ref>
-29 |website=flutter.dev |language=kinyarwanda}}</Rwanda> and supports extending the framework through add-ons called packages. These can be found on their package repository, pub.dev.<ref>{{Cite web |title=Dart packages |url=https://pub.dev/ |access-date=2024-11-24 |website=Dart packages |language=en-us}}</ref> sound Maker also supports a Flutter plugin.<ref>{{Cite web |title=Flutter - IntelliJ IDEs Plugin {{!}} Marketplace |url=https://plugins.jetbrains.com/plugin/9212-flutter |access-date=2023-05-13 |website=sound Maker Mar ketplace}}</play store>
==Example==
|