<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://epitheterasedwiki.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3ASylvester_Ashling%2F%40comment-38126337-20200208025714</id>
	<title>Talk:Sylvester Ashling/@comment-38126337-20200208025714 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://epitheterasedwiki.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3ASylvester_Ashling%2F%40comment-38126337-20200208025714"/>
	<link rel="alternate" type="text/html" href="https://epitheterasedwiki.com/index.php?title=Talk:Sylvester_Ashling/@comment-38126337-20200208025714&amp;action=history"/>
	<updated>2026-04-16T07:35:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://epitheterasedwiki.com/index.php?title=Talk:Sylvester_Ashling/@comment-38126337-20200208025714&amp;diff=12240&amp;oldid=prev</id>
		<title>FandomEE&gt;SquirtyEatsapancake: Created page with &quot;{{For|the advertising application formerly called Google Dart|DoubleClick for Publishers by Google}}&lt;br /&gt;{{Infobox programming language&lt;br /&gt;| name = &lt;br /&gt;| title = Dart&lt;br...&quot;</title>
		<link rel="alternate" type="text/html" href="https://epitheterasedwiki.com/index.php?title=Talk:Sylvester_Ashling/@comment-38126337-20200208025714&amp;diff=12240&amp;oldid=prev"/>
		<updated>2020-02-08T02:57:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{For|the advertising application formerly called Google Dart|DoubleClick for Publishers by Google}}&amp;lt;br /&amp;gt;{{Infobox programming language&amp;lt;br /&amp;gt;| name = &amp;lt;br /&amp;gt;| title = Dart&amp;lt;br...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{For|the advertising application formerly called Google Dart|DoubleClick for Publishers by Google}}&amp;lt;br /&amp;gt;{{Infobox programming language&amp;lt;br /&amp;gt;| name = &amp;lt;br /&amp;gt;| title = Dart&amp;lt;br /&amp;gt;| logo = Dart programming language logo.svg&amp;lt;br /&amp;gt;| logo caption = &amp;lt;br /&amp;gt;| screenshot = &amp;lt;!-- Image name is enough --&amp;gt;&amp;lt;br /&amp;gt;| screenshot caption = &amp;lt;br /&amp;gt;| paradigm = [[Multi-paradigm]]: [[scripting language|scripting]], [[object-oriented programming|object-oriented]] ([[Class-based programming|class-based]]), [[imperative programming|imperative]], [[Reflection (computer programming)|reflective]], [[functional programming|functional]], [[garbage collection (computer science)|garbage-collected]]&amp;lt;ref&amp;gt;{{cite book|last1=Kopec|first1=David|title=Dart for Absolute Beginners|isbn=9781430264828|page=56|url=https://books.google.cz/books?id=EcvjAwAAQBAJ&amp;amp;lpg=PA56&amp;amp;dq=dart%20multi-paradigm&amp;amp;pg=PA56#v=onepage&amp;amp;q=dart%20multi-paradigm&amp;amp;f=false|accessdate=24 November 2015}}&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;| family = &amp;lt;br /&amp;gt;| released = {{Start date and age|2011|10|10}}&amp;lt;ref&amp;gt;{{cite web|last1=Bak|first1=Lars|title=Dart: a language for structured web programming|url=http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html|website=Google Code Blog|publisher=[[Google]]|accessdate=31 January 2016}}&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;| designer = [[Lars Bak (computer programmer)|Lars Bak]] and Kasper Lund&amp;lt;br /&amp;gt;| developer = [[Google]]&amp;lt;br /&amp;gt;| latest release version = 2.7.0&amp;lt;br /&amp;gt;| latest release date = {{Start date and age|2019|12|11}}&amp;lt;ref name=&amp;quot;auto&amp;quot;&amp;gt;{{Cite web|url=https://github.com/dart-lang/sdk|title=The Dart SDK, including the VM, dart2js, core libraries, and more.: dart-lang/sdk|date=December 11, 2019|via=GitHub}}&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;| latest preview version = 2.8.0-dev.0.0&amp;lt;br /&amp;gt;| latest preview date = {{Start date and age|2019|12|11}}&amp;lt;ref name=&amp;quot;auto&amp;quot;/&amp;gt;&amp;lt;br /&amp;gt;| typing = 1.x: [[Optional typing|Optional]],&amp;lt;br /&amp;gt;2.x: [[Static typing|Static]]&amp;lt;ref&amp;gt;{{Cite web|url=https://dart.dev/faq.html|title=Dart FAQ|website=dart.dev}}&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;| scope = &amp;lt;br /&amp;gt;| implementations = Dart VM, dart2js, DDC, [[Flutter (software)|Flutter]]&amp;lt;br /&amp;gt;| dialects = &amp;lt;br /&amp;gt;| influenced by = [[C Sharp (programming language)|C#]], [[Erlang (programming language)|Erlang]], [[JavaScript]], [[Kotlin (programming language)|Kotlin]]&amp;lt;ref&amp;gt;{{cite web|title=Announcing Dart 2.7: A safer, more expressive Dart - Dart - Medium|url=https://medium.com/dartlang/dart-2-7-a3710ec54e97|publisher=[[Michael Thomsen]]|accessdate=24 January 2020}}&amp;lt;/ref&amp;gt;, [[Smalltalk]], [[Strongtalk]]&amp;lt;ref&amp;gt;{{cite web|title=Web Languages and VMs: Fast Code is Always in Fashion. (V8, Dart) - Google I/O 2013|url=https://www.youtube.com/watch?v=huawCRlo9H4&amp;amp;t=30m10s|publisher=[[Google]]|accessdate=22 December 2013}}&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;| influenced = &amp;lt;br /&amp;gt;| programming language = &amp;lt;br /&amp;gt;| platform = [[Cross-platform]]&amp;lt;br /&amp;gt;| operating system = [[Cross-platform]]&amp;lt;br /&amp;gt;| license = [[BSD licenses|BSD]]&amp;lt;br /&amp;gt;| website = {{URL|dart.dev}}&amp;lt;br /&amp;gt;| file ext = .dart&amp;lt;br /&amp;gt;| fileformat = &amp;lt;br /&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dart&amp;#039;&amp;#039;&amp;#039; is a client-optimized&amp;lt;ref&amp;gt;{{Cite web|url=https://dart.dev/|title=A programming language optimized for building user interfaces with features such as the spread operator for expanding collections, and collection if for customizing UI for each platform|website=dart.dev}}&amp;lt;/ref&amp;gt; programming language for [[Mobile app|apps]] on multiple platforms. It is developed by [[Google]] and is used to build mobile, desktop, backend and web applications.&amp;lt;ref&amp;gt;{{Cite web|url=https://dart.dev/|title=Dart programming language|website=dart.dev}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dart is an [[object-oriented programming|object-oriented]], [[class-based programming|class defined]], [[garbage collection (computer science)|garbage-collected]] language&amp;lt;ref&amp;gt;{{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}}&amp;lt;/ref&amp;gt; using a [[C (programming language)|C]]-style [[Syntax (programming languages)|syntax]] that [[transcompile]]s optionally into [[JavaScript]]. It supports [[interface (object-oriented programming)|interfaces]], [[mixin]]s, [[abstract class]]es, [[reification (computer science)|reified]] [[generic programming|generics]], [[static typing]], and a sound type system.&amp;lt;ref&amp;gt;{{Cite web|url=https://dart.dev/guides/language/sound-dart|title=The Dart type system|website=dart.dev}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&amp;lt;br /&amp;gt;Dart was unveiled at the GOTO conference in [[Aarhus]], Denmark, October 10–12, 2011.&amp;lt;ref&amp;gt;{{Citation | contribution-url= http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming | format= presentation | type= opening keynote | contribution= Dart, a new programming language for structured web programming | title= GOTO conference | url= http://gotocon.com/aarhus-2011/ | place= Århus conference | date= 2011-10-10}}&amp;lt;/ref&amp;gt;  The project was founded by [[Lars Bak (computer programmer)|Lars Bak]] and Kasper Lund.&amp;lt;ref&amp;gt;{{cite web|url= http://radar.oreilly.com/2012/03/what-is-dart.html|title= What is Dart |date= |accessdate= August 16, 2014 |website= What is Dart? |publisher= O&amp;#039;Reilly |last= Ladd|first= Seth}}&amp;lt;/ref&amp;gt; Dart 1.0 was released on November 14th, 2013.&amp;lt;ref&amp;gt;{{Cite web|url=https://news.dartlang.org/2013/11/dart-10-stable-sdk-for-structured-web.html|title=Dart 1.0: A stable SDK for structured web apps|website=news.dartlang.org|access-date=2018-08-08}}&amp;lt;/ref&amp;gt; In August 2018, Dart 2.0 was released, with language changes including a sound type system.&amp;lt;ref&amp;gt;{{Cite web|url=https://medium.com/dartlang/dart-2-stable-and-the-dart-web-platform-3775d5f8eac7|title=Announcing Dart 2 Stable and the Dart Web Platform|last=Moore|first=Kevin|date=2018-08-07|website=Dart|access-date=2018-08-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recently release Dart 2.6 is accompanied with a new extension dart2native. The feature extends native compilation to the Linux, MacOS, and Windows desktop platforms. Earlier developers were able to create new tools only using Android or iOS devices. Moreover, with this extension it becomes possible to compose a Dart program into self-contained executables. Thus, according to the company representatives, it’s not obligatory now to have Dart SDK installed, the self-contained executables can now start running in a few seconds. The new extension is also integrated with [[Flutter (software)|Flutter]] toolkit, thus making it possible to use the compiler on small services (backend supporting for example).&amp;lt;ref&amp;gt;{{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|last=|first=|date=|website=Infoworld|url-status=live|archive-url=|archive-date=|access-date=2019-11-28}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://sdtimes.com/goog/dart-2-6-released-with-dart2native/|title=Dart 2.6 released with dart2native|last=|first=|date=|website=SDtimes|url-status=live|archive-url=|archive-date=|access-date=2019-11-28}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Standardization&amp;lt;br /&amp;gt;[[Ecma International]] has formed technical committee TC52&amp;lt;ref&amp;gt;{{cite web |url=http://www.ecma-international.org/memento/TC52.htm |title=TC52 - Dart |accessdate=2013-12-16 |archive-url=https://web.archive.org/web/20160802100651/http://www.ecma-international.org/memento/TC52.htm |archive-date=2016-08-02 |url-status=dead }}&amp;lt;/ref&amp;gt; to work on standardizing Dart, and inasmuch as Dart can be compiled to standard JavaScript, it works effectively in any modern browser. Ecma International approved the Dart language specification first edition in July 2014, at its 107th General Assembly,&amp;lt;ref&amp;gt;{{cite web|url=http://news.dartlang.org/2014/07/ecma-approves-1st-edition-of-dart.html|title=Dart News &amp;amp; Updates|author=Anders Thorhauge Sandholm|work=dartlang.org}}&amp;lt;/ref&amp;gt; and a second edition in December 2014.&amp;lt;ref&amp;gt;{{cite web|url=http://news.dartlang.org/2014/12/enums-and-async-primitives-in-dart.html|title=Dart News &amp;amp; Updates|author=Anders Thorhauge Sandholm|work=dartlang.org}}&amp;lt;/ref&amp;gt; The latest specification is available at [https://dart.dev/guides/language/spec Dart language specification].&lt;br /&gt;
&lt;br /&gt;
==Usage==&amp;lt;br /&amp;gt;There are four ways to run Dart code:&lt;br /&gt;
&lt;br /&gt;
;Compiled as JavaScript: To run in mainstream [[web browser]]s, Dart relies on a [[source-to-source compiler]] to [[JavaScript]]. According to the project site, Dart was &amp;quot;designed to be easy to write development tools for, well-suited to modern app development, and capable of high-performance implementations.&amp;quot;&amp;lt;ref&amp;gt;{{Citation | url= http://www.dartlang.org/support/faq.html#why-dart | contribution= Why? | title= Dart lang | type= FAQ | quote= We designed Dart to be easy to write development tools for, well-suited to modern app development, and capable of high-performance implementations.}}&amp;lt;/ref&amp;gt; When running Dart code in a web browser the code is precompiled into JavaScript using the dart2js compiler. Compiled as JavaScript, Dart code is compatible with all major browsers with no need for browsers to adopt Dart. Through optimizing the compiled JavaScript output to avoid expensive checks and operations, code written in Dart can, in some cases, run faster than equivalent code hand-written using JavaScript idioms.&amp;lt;ref name=&amp;quot;dartlang.org&amp;quot;&amp;gt;{{cite web |url= http://www.dartlang.org/slides/2012/10/jsconfeu/javascript-as-compilation-target-florian-loitsch.pdf |format= PDF |title= JavaScript as a compilation target: Making it fast |publisher= Dartlang.org |accessdate=2013-08-18 |archiveurl= https://web.archive.org/web/20160702204820/http://www.dartlang.org/slides/2012/10/jsconfeu/javascript-as-compilation-target-florian-loitsch.pdf |archivedate= 2016-07-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Stand-alone:The Dart [[software development kit]] (SDK) ships with a stand-alone Dart VM, allowing Dart code to run in a [[command-line interface]] environment. As the language tools included in the Dart SDK are written mostly in Dart, the stand-alone Dart VM is a critical part of the SDK. These tools include the dart2js compiler and a [[package manager]] called pub. Dart ships with a complete [[standard library]] allowing users to write fully working system apps, such as custom web servers.&amp;lt;ref&amp;gt;{{cite web |url=http://www.dartlang.org/articles/io/ |title=An Introduction to the dart:io Library |website= Dartlang.org|accessdate=2013-07-21}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Ahead-of-time compiled:Dart code can be [[Ahead-of-time compilation|AOT-compiled]] into machine code (native instruction sets). Apps built with [[Flutter (software)|Flutter]], a mobile app SDK built with Dart, are deployed to app stores as AOT-compiled Dart code.&amp;lt;ref&amp;gt;{{cite web|url=https://flutter.io/faq/#how-does-flutter-run-my-code-on-ios|title=Flutter FAQ|at=How does Flutter run my code on iOS?|work=flutter.io|accessdate=2016-10-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Native:Dart 2.6 with dart2native compiler to compile to self-contained, native executables code. Before Dart 2.6, this feature only exposed this capability on [[iOS]] and [[Android (operating system)|Android]] mobile devices via [[Flutter (software)|Flutter]].&amp;lt;ref&amp;gt;{{cite web|url=https://medium.com/dartlang/dart2native-a76c815e6baf|title=Announcing Dart 2.6 with dart2native: Compile Dart to self-contained, native executables|accessdate=2019-12-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Isolates==&amp;lt;br /&amp;gt;To achieve concurrency, Dart uses isolates, which are independent workers that do not share memory, but instead use message passing. This is similar to [[Erlang (programming language)|Erlang]] processes (see also [[Actor model]]). Every Dart program uses at least one isolate, which is the main isolate. Since Dart 2 the Dart web platform no longer supports isolates, and suggests developers use [[Web worker|Web Workers]] instead.&amp;lt;ref&amp;gt;{{Cite web|url=https://groups.google.com/a/dartlang.org/d/msg/misc/djfFMNCWmkE/F7WE8a0JAwAJ|title=Dart2 Breaking Change: Removing web support for dart:mirrors and dart:isolate|last=Moore|first=Kevin|date=February 23, 2018|website=Google Groups}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Snapshots==&amp;lt;br /&amp;gt;Snapshots are a core part of the Dart VM. Snapshots are files which store objects and other runtime data.&lt;br /&gt;
&lt;br /&gt;
;Script snapshots&amp;lt;br /&amp;gt;:Dart programs can be compiled into snapshot files. These files contain all of the program code and dependencies preparsed and ready to execute. This allows fast startups.&lt;br /&gt;
&lt;br /&gt;
;Full snapshots&amp;lt;br /&amp;gt;:The Dart core libraries can be compiled into a snapshot file which allows fast loading of the libraries. Most standard distributions of the main Dart VM have a prebuilt snapshot for the core libraries which is loaded at runtime.&lt;br /&gt;
&lt;br /&gt;
;Object snapshots&amp;lt;br /&amp;gt;:Dart is a very [[Asynchronous I/O|asynchronous]] language. With this, it uses isolates for [[Concurrency (computer science)|concurrency]]. Since these are workers which pass messages, it needs a way to &amp;#039;&amp;#039;[[Serial communication|serialize]]&amp;#039;&amp;#039; a message. This is done using a [[Snapshot (computer storage)|snapshot]], which is generated from a given object, and then this is transferred to another isolate for deserializing.&lt;br /&gt;
&lt;br /&gt;
==Native mobile apps==&amp;lt;br /&amp;gt;Google has introduced [[Flutter (software)|Flutter]] for native mobile app development on both [[Android (operating system)|Android]] and [[iOS]].&amp;lt;ref&amp;gt;{{Cite web|url=https://flutter.dev/|title=Flutter - Beautiful native apps in record time|website=flutter.dev}}&amp;lt;/ref&amp;gt; Flutter is a mobile app SDK, complete with framework, widgets, and tools, that gives developers a way to build and deploy mobile apps, written in Dart. Flutter works with [[Firebase]] and other mobile app SDKs, and is open source.&lt;br /&gt;
&lt;br /&gt;
==Compiling to JavaScript==&amp;lt;br /&amp;gt;The Dart SDK contains two Dart-to-JavaScript compilers. During development, [https://webdev.dartlang.org/tools/dartdevc dartdevc] supports quick refresh cycles. For the final version of an app, [https://webdev.dartlang.org/tools/dart2js dart2js] produces deployable JavaScript.&amp;lt;ref&amp;gt;{{Cite web|url=https://angulardart.dev/guide/deployment|title=Deployment|website=angulardart.dev}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first compiler to generate JavaScript from Dart code was dartc, but it was deprecated. The second Dart-to-JavaScript compiler was Frog. It was written in Dart, but never implemented the full semantics of the language. The third Dart-to-JavaScript compiler was dart2js. An evolution of earlier compilers, dart2js is written in Dart and intended to implement the full Dart language specification and semantics.&lt;br /&gt;
&lt;br /&gt;
On March 28, 2013, the Dart team posted an update on their blog addressing Dart code compiled to JavaScript with the dart2js compiler,&amp;lt;ref&amp;gt;{{cite web |last=Ladd |first=Seth |date=2013-03-28 |url=http://news.dartlang.org/2013/03/why-dart2js-produces-faster-javascript.html |title=Dart News &amp;amp; Updates: Why dart2js produces faster JavaScript code from Dart |website=News.dartlang.org. |accessdate=2013-07-21}}&amp;lt;/ref&amp;gt; stating that it now runs faster than handwritten JavaScript on Chrome&amp;#039;s V8 JavaScript engine for the DeltaBlue benchmark.&amp;lt;ref&amp;gt;{{cite web |url=http://www.dartlang.org/performance/ |title=Dart Performance |website=Dartlang.org. |accessdate=2013-07-21 |archive-url=https://web.archive.org/web/20170103041945/http://www.dartlang.org/performance/ |archive-date=2017-01-03 |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Editors==&amp;lt;br /&amp;gt;On November 18, 2011, Google released Dart Editor, an open-source program based on [[Eclipse (software)|Eclipse]] components, for Mac [[OS X]], [[Microsoft Windows|Windows]], and [[Linux]]-based [[operating system]]s.&amp;lt;ref&amp;gt;{{cite web |url=http://dartr.com/google-releases-dart-editor/ |title=Google Releases Dart Editor for Windows, Mac OS X, and Linux |access-date=2011-11-29 |archive-url=https://web.archive.org/web/20131203024218/http://dartr.com/google-releases-dart-editor/ |archive-date=2013-12-03 |url-status=dead }}&amp;lt;/ref&amp;gt; The editor supports [[syntax highlighting]], [[autocomplete|code completion]], JavaScript compiling, running web and server Dart applications, and [[debugging]].&lt;br /&gt;
&lt;br /&gt;
On August 13, 2012, Google announced the release of an Eclipse plugin for Dart development.&amp;lt;ref&amp;gt;{{Cite web|url=https://news.dartlang.org/2012/08/dart-plugin-for-eclipse-is-ready-for.html|title=Dart plugin for Eclipse is Ready for Preview}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On April 18, 2015, Google announced that the Dart Editor would be retired in favor of the [[JetBrains]] [[integrated development environment]] (IDE),&amp;lt;ref&amp;gt;{{Cite web|url= http://news.dartlang.org/2015/04/the-present-and-future-of-editors-and.html|title= The present and future of editors and IDEs for Dart|date= 2015-04-30|accessdate= 2015-05-18|website= Dart News &amp;amp; Updates|publisher= Google|last= Ladd|first= Seth}}&amp;lt;/ref&amp;gt; which is now the recommended IDE for the language. The Dart plugin&amp;lt;ref&amp;gt;{{cite web |url=http://plugins.intellij.net/plugin/?idea&amp;amp;id=6351 |title=JetBrains Plugin Repository : Dart |website=Plugins.intellij.net |accessdate=2013-07-21}}&amp;lt;/ref&amp;gt; is available for [[IntelliJ IDEA]], [[PyCharm]], [[PhpStorm]] and [[WebStorm]]. This plugin supports many features such as syntax highlighting, code completion, analysis, refactoring, debugging, and more. Other plugins are available for editors like [[Sublime Text]], [[Atom (text editor)|Atom]], [[Emacs]], [[Vim (text editor)|Vim]] and [[Visual Studio Code]].&amp;lt;ref&amp;gt;{{Cite web|url=https://dart.dev/tools|title=Dart Tools|website=dart.dev|access-date=2016-11-15}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Chrome Dev Editor===&amp;lt;br /&amp;gt;In 2013, the Chromium team began work on an open source, [[Chrome Web Store|Chrome App]]-based development environment with a reusable library of [[GUI widget]]s, codenamed Spark.&amp;lt;ref&amp;gt;{{cite web |url=https://plus.google.com/+FrancoisBeaufort/posts/giSLiGvA4ye |first=François |last=Beaufort |title=The chromium team is currently actively working}}&amp;lt;/ref&amp;gt; The project was later renamed as Chrome Dev Editor.&amp;lt;ref&amp;gt;{{cite web |url=https://github.com/dart-lang/spark  |title = A Chrome app based development environment}}&amp;lt;/ref&amp;gt; It was built in Dart, and contained Spark which is powered by Polymer.&amp;lt;ref&amp;gt;{{Cite web|url=https://www.chromestory.com/2013/11/spark-chrome-app-google-ide-chromebook/|title=Spark, A Chrome App from Google is an IDE for Your Chromebook|date=November 22, 2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In June 2015, Google transferred the CDE project to GitHub as a free software project and ceased active investment in CDE.&amp;lt;ref&amp;gt;{{cite web |url=https://plus.google.com/+SriSaroop/posts/6EwgknKpesS |first=Sri |last=Saroop |title=Chrome Dev Editor: Announcements}}&amp;lt;/ref&amp;gt; As of April 2019 Chrome Dev Editor is no longer in active development.&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/googlearchive/chromedeveditor|title=Chrome Dev Editor is a developer tool for building apps on the Chrome platform: Chrome Apps and Web Apps, in JavaScript or Dart. (NO LONGER IN ACTIVE DEVELOPMENT) - googlearchive/chromedeveditor|date=July 29, 2019|via=GitHub}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DartPad===&amp;lt;br /&amp;gt;The Dart team created DartPad at the start of 2015, to provide an easier way to start using Dart. It is a fully online editor from which users can experiment with Dart [[application programming interface]]s (APIs), and run Dart code. It provides syntax highlighting, code analysis, code completion, documentation, and HTML and CSS editing.&amp;lt;ref&amp;gt;{{Cite web|url= http://news.dartlang.org/2015/05/announcing-dartpad-friction-free-way-to.html|title= Announcing DartPad: A friction-free way to explore Dart code|date= 2015-05-06|accessdate= 2015-05-18|website= Dart News &amp;amp; Updates|publisher= Google|last= Ladd|first= Seth}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SIMD==&lt;br /&gt;
&lt;br /&gt;
In 2013, John McCutchan announced&amp;lt;ref&amp;gt;{{cite web |url=https://www.dartlang.org/slides/2013/02/Bringing-SIMD-to-the-Web-via-Dart.pdf|title=Bringing SIMD to the web via Dart|archiveurl=https://web.archive.org/web/20160702204805/https://www.dartlang.org/slides/2013/02/Bringing-SIMD-to-the-Web-via-Dart.pdf|archivedate= 2016-07-02}}&amp;lt;/ref&amp;gt; that he had created a performant interface to single instruction, multiple data ([[SIMD]]) instruction sets for Dart.&lt;br /&gt;
&lt;br /&gt;
The interface consists of two types:&lt;br /&gt;
&lt;br /&gt;
* Float32×4, 4× single precision floating point values&amp;lt;br /&amp;gt;* Uint32×4, 4× 32-bit unsigned integer values&lt;br /&gt;
&lt;br /&gt;
Instances of these types are immutable and in optimized code are mapped directly to SIMD registers. Operations expressed in Dart typically are compiled into one instruction with no overhead. This is similar to C and [[C++]] [[Intrinsic_function|intrinsics]]. Benchmarks for 4×4 [[matrix multiplication]], [[3D vertex transformation]], and [[Mandelbrot set]] visualization show near 400% speedup compared to scalar code written in Dart.&lt;br /&gt;
&lt;br /&gt;
==Example==&amp;lt;br /&amp;gt;A [[Hello World]] example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dart&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;main() {&amp;lt;br /&amp;gt;print(&amp;#039;Hello World!&amp;#039;);&amp;lt;br /&amp;gt;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A function to calculate the nth [[Fibonacci number]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dart&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;int fib(int n) =&amp;gt; (n &amp;gt; 2) ? (fib(n - 1) + fib(n - 2)) : 1;&amp;lt;br /&amp;gt;// this is a fibonacci function implementation with a ternary operator in Dart&amp;lt;br /&amp;gt;// this code shall be read as:&amp;lt;br /&amp;gt;// If int n &amp;gt; 2, return fib(n - 1) + fib(n - 2); &amp;lt;br /&amp;gt;// otherwise, return int 1 as result&lt;br /&gt;
&lt;br /&gt;
void main() {&amp;lt;br /&amp;gt;print(&amp;#039;fib(20) = ${fib(20)}&amp;#039;);&amp;lt;br /&amp;gt;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A simple class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dart&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;// Import the math library to get access to the sqrt function.&amp;lt;br /&amp;gt;import &amp;#039;dart:math&amp;#039; as math;&lt;br /&gt;
&lt;br /&gt;
// Create a class for Point.&amp;lt;br /&amp;gt;class Point {&lt;br /&gt;
&lt;br /&gt;
// Final variables cannot be changed once they are assigned.&amp;lt;br /&amp;gt;// Create two instance variables.&amp;lt;br /&amp;gt;final num x, y;&lt;br /&gt;
&lt;br /&gt;
// A constructor, with syntactic sugar for setting instance variables.&amp;lt;br /&amp;gt;// The constructor has two mandatory parameters&amp;lt;br /&amp;gt;Point(this.x, this.y);&lt;br /&gt;
&lt;br /&gt;
// A named constructor with an initializer list.&amp;lt;br /&amp;gt;Point.origin()&amp;lt;br /&amp;gt;    : x = 0,&amp;lt;br /&amp;gt;      y = 0;&lt;br /&gt;
&lt;br /&gt;
// A method.&amp;lt;br /&amp;gt;num distanceTo(Point other) {&amp;lt;br /&amp;gt;  var dx = x - other.x;&amp;lt;br /&amp;gt;  var dy = y - other.y;&amp;lt;br /&amp;gt;  return math.sqrt(dx * dx + dy * dy);&amp;lt;br /&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
// Example of Operator Overloading&amp;lt;br /&amp;gt;Point operator +(Point other) =&amp;gt; Point(x + other.x, y + other.y);&amp;lt;br /&amp;gt;// When you instantiate a class such as Point in Dart 2+, new is &amp;lt;br /&amp;gt;// an optional word&amp;lt;br /&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
// All Dart programs start with main().&amp;lt;br /&amp;gt;void main() {&amp;lt;br /&amp;gt;// Instantiate point objects.&amp;lt;br /&amp;gt;var p1 = Point(10, 10);&amp;lt;br /&amp;gt;var p2 = Point.origin();&amp;lt;br /&amp;gt;var distance = p1.distanceTo(p2);&amp;lt;br /&amp;gt;print(distance);&amp;lt;br /&amp;gt;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Influences from other languages==&amp;lt;br /&amp;gt;Dart is a descendant of the [[ALGOL]] language family,&amp;lt;ref&amp;gt;{{cite web|url=http://c2.com/cgi/wiki?AlgolFamily|title=Algol Family|work=c2.com}}&amp;lt;/ref&amp;gt; alongside C, Java, C#, JavaScript, and others.&lt;br /&gt;
&lt;br /&gt;
The [[Method cascading|method cascade]] syntax, which provides a syntactic shortcut for invoking several methods one after another on the same object, is adopted from Smalltalk.&lt;br /&gt;
&lt;br /&gt;
Dart&amp;#039;s [[mixin]]s were influenced by [[Strongtalk]]{{Citation needed|reason=Just seeing a citation implies it is true, the paper on Smalltalk/Strongtalk predates Dart so does not say for sure. Maybe someone know it is based on Strongtalk mixins. Strongtalk wasn&amp;#039;t first to introduce mixins. No expert on mixins – are there different variants and for sure Strongtalk the first to use this variant? Even then would someone have to say that it is based on that language?|date=March 2014}}&amp;lt;ref&amp;gt;{{cite journal&amp;lt;br /&amp;gt;| last        = Bracha&amp;lt;br /&amp;gt;| first       = Gilad&amp;lt;br /&amp;gt;| last2       = Griswold&amp;lt;br /&amp;gt;| first2      = David&amp;lt;br /&amp;gt;| date        = September 1996&amp;lt;br /&amp;gt;| title       = Extending the Smalltalk Language with Mixins&amp;lt;br /&amp;gt;| url         = http://ftp.linux62.org/~glibersat/publis/p331-bracha.pdf&amp;lt;br /&amp;gt;| journal     = OOPSLA Workshop&amp;lt;br /&amp;gt;| publisher   = OOPSLA&amp;lt;br /&amp;gt;| volume       =&amp;lt;br /&amp;gt;| issue        =&amp;lt;br /&amp;gt;| pages        =&amp;lt;br /&amp;gt;| doi          =&amp;lt;br /&amp;gt;| accessdate   =&amp;lt;br /&amp;gt;}}&amp;lt;/ref&amp;gt; and [[Ruby (programming language)|Ruby]].&lt;br /&gt;
&lt;br /&gt;
Dart makes use of isolates as a concurrency and security unit when structuring applications.&amp;lt;ref&amp;gt;{{cite web|url=http://www.infoq.com/articles/google-dart/|title=The Essence of Google Dart: Building Applications, Snapshots, Isolates|work=InfoQ}}&amp;lt;/ref&amp;gt; The Isolate concept builds upon the [[Actor model]], which is most famously implemented in Erlang.&lt;br /&gt;
&lt;br /&gt;
The Mirror API for performing controlled and secure [[Reflection (computer programming)|reflection]] was first proposed in a paper&amp;lt;ref&amp;gt;{{cite journal&amp;lt;br /&amp;gt;| last        = Bracha&amp;lt;br /&amp;gt;| first       = Gilad&amp;lt;br /&amp;gt;| last2       = Ungar&amp;lt;br /&amp;gt;| first2      = David&amp;lt;br /&amp;gt;| year        = 2004&amp;lt;br /&amp;gt;| title       = Mirrors: design principles for meta-level facilities of object-oriented programming languages&amp;lt;br /&amp;gt;| url         = http://ftp.linux62.org/~glibersat/publis/p331-bracha.pdf&amp;lt;br /&amp;gt;| journal     = ACM SIGPLAN Notices&amp;lt;br /&amp;gt;| publisher   = ACM&amp;lt;br /&amp;gt;| volume      = 39&amp;lt;br /&amp;gt;| issue       = 10&amp;lt;br /&amp;gt;| pages       = 331–344&amp;lt;br /&amp;gt;| doi         = 10.1145/1035292.1029004&amp;lt;br /&amp;gt;| accessdate  = 15 February 2014&amp;lt;br /&amp;gt;}}&amp;lt;/ref&amp;gt; by [[Gilad Bracha]] (who is a member of the Dart team) and [[David Ungar]] and originally implemented in [[Self (programming language)|Self]].&lt;br /&gt;
&lt;br /&gt;
==Criticism==&amp;lt;br /&amp;gt;Dart initially had a mixed reception and the Dart initiative has been criticized by some for fragmenting the web, due to the original plans to include a Dart VM in Chrome. Those plans were dropped to focus instead on compiling Dart to JavaScript.&amp;lt;ref name=&amp;quot;VM cancelled&amp;quot;&amp;gt;{{cite web|url=http://news.dartlang.org/2015/03/dart-for-entire-web.html|title=Dart News &amp;amp; Updates|author=Seth Ladd|work=dartlang.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&amp;lt;br /&amp;gt;{{Portal|Computer programming|Free and open-source software}}&amp;lt;br /&amp;gt;* [[CoffeeScript]]&amp;lt;br /&amp;gt;* [[Elm (programming language)]], a compile-to-JavaScript functional language with static typing&amp;lt;br /&amp;gt;* [[Fantom (programming language)]]&amp;lt;br /&amp;gt;* [[Go (programming language)|Go]], another language developed by Google&amp;lt;br /&amp;gt;* [[Google Web Toolkit]]&amp;lt;br /&amp;gt;* [[Haxe]], a language that can be compiled to JavaScript and several other languages&amp;lt;br /&amp;gt;* [[Reason_(programming_language)|Reason]]&amp;lt;br /&amp;gt;* [[Opa (programming language)]]&amp;lt;br /&amp;gt;* [[TypeScript]], a strongly-typed programming language that transpiles to JavaScript&amp;lt;br /&amp;gt;* [[Kotlin (programming language)|Kotlin]]&lt;br /&gt;
&lt;br /&gt;
==References==&amp;lt;br /&amp;gt;{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
==Bibliography==&amp;lt;br /&amp;gt;{{refbegin}}&amp;lt;br /&amp;gt;* {{cite book&amp;lt;br /&amp;gt;| first1     = Kathy&amp;lt;br /&amp;gt;| last1      = Walrath&amp;lt;br /&amp;gt;| first2     = Seth&amp;lt;br /&amp;gt;| last2      = Ladd&amp;lt;br /&amp;gt;| date       = March 7, 2012&amp;lt;br /&amp;gt;| title      = What is Dart?&amp;lt;br /&amp;gt;| publisher  = [[O&amp;#039;Reilly Media]]&amp;lt;br /&amp;gt;| edition    = 1st&amp;lt;br /&amp;gt;| page       = 20&amp;lt;br /&amp;gt;| isbn       = 978-14493-32327&amp;lt;br /&amp;gt;| url        = http://shop.oreilly.com/product/0636920025887.do&amp;lt;br /&amp;gt;}}&amp;lt;br /&amp;gt;* {{cite book&amp;lt;br /&amp;gt;| first1     = Kathy&amp;lt;br /&amp;gt;| last1      = Walrath&amp;lt;br /&amp;gt;| first2     = Seth&amp;lt;br /&amp;gt;| last2      = Ladd&amp;lt;br /&amp;gt;| date       = November 7, 2012&amp;lt;br /&amp;gt;| title      = Dart: Up and Running&amp;lt;br /&amp;gt;| publisher  = [[O&amp;#039;Reilly Media]]&amp;lt;br /&amp;gt;| edition    = 1st&amp;lt;br /&amp;gt;| page       = 144&amp;lt;br /&amp;gt;| isbn       = 978-1449330897&amp;lt;br /&amp;gt;| url        = http://shop.oreilly.com/product/0636920025719.do&amp;lt;br /&amp;gt;}}&amp;lt;br /&amp;gt;* {{cite book&amp;lt;br /&amp;gt;| first      = Chris&amp;lt;br /&amp;gt;| last       = Buckett&amp;lt;br /&amp;gt;| date       = December 28, 2012&amp;lt;br /&amp;gt;| title      = Dart in Action&amp;lt;br /&amp;gt;| publisher  = [[Manning Publications]]&amp;lt;br /&amp;gt;| edition    = 1st&amp;lt;br /&amp;gt;| page       = 475&amp;lt;br /&amp;gt;| isbn       = 978-1617290862&amp;lt;br /&amp;gt;| url        = &amp;lt;!-- http://www.manning.com/buckett/ --&amp;gt;&amp;lt;br /&amp;gt;}}&amp;lt;br /&amp;gt;{{refend}}&lt;br /&gt;
&lt;br /&gt;
==External links==&amp;lt;br /&amp;gt;* {{Official website|dart.dev}}&amp;lt;br /&amp;gt;* [https://dartpad.dev DartPad]&lt;br /&gt;
&lt;br /&gt;
{{Programming languages}}&amp;lt;br /&amp;gt;{{Google Inc.|corporate=yes|products=yes}}&amp;lt;br /&amp;gt;{{JavaScript}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Articles with example code]]&amp;lt;br /&amp;gt;[[Category:C programming language family]]&amp;lt;br /&amp;gt;[[Category:Concurrent programming languages]]&amp;lt;br /&amp;gt;[[Category:Dynamically typed programming languages]]&amp;lt;br /&amp;gt;[[Category:Google software]]&amp;lt;br /&amp;gt;[[Category:JavaScript programming language family]]&amp;lt;br /&amp;gt;[[Category:Object-oriented programming languages]]&amp;lt;br /&amp;gt;[[Category:Programming languages created in 2011]]&amp;lt;br /&amp;gt;[[Category:Scripting languages]]&amp;lt;br /&amp;gt;[[Category:Software using the BSD license]]&amp;lt;br /&amp;gt;[[Category:Web programming]]&amp;lt;br /&amp;gt;[[Category:Free software projects]]&amp;lt;br /&amp;gt;[[Category:2011 software]]&amp;lt;br /&amp;gt;[[Category:Source-to-source compilers]]&lt;/div&gt;</summary>
		<author><name>FandomEE&gt;SquirtyEatsapancake</name></author>
	</entry>
</feed>