Index: src/site/docs/technical-overview/index.html |
diff --git a/src/site/docs/technical-overview/index.html b/src/site/docs/technical-overview/index.html |
index 5e02e5583aebd2901b065e93f02cb91585f8e157..c9a622a4386e9a5fcc7f3dcd91196fa0bb5f566a 100644 |
--- a/src/site/docs/technical-overview/index.html |
+++ b/src/site/docs/technical-overview/index.html |
@@ -6,74 +6,155 @@ title: "Technical Overview" |
<section> |
<p> |
- Dart is a new class-based programming language |
- for creating structured web applications. |
+ Dart helps developers build high-performance apps for the modern web. |
+ Targeting modern desktop and mobile browsers, |
+ Dart apps can run natively in a Dart virtual machine (VM) |
+ or be compiled to JavaScript. |
+ </p> |
+ |
+ <p> |
Developed with the goals of simplicity, efficiency, and scalability, |
- the Dart language combines powerful new language features |
+ the Dart language combines powerful new features |
with familiar language constructs into a clear, readable syntax. |
+ But Dart's not just a language. |
+ The Dart open-source project includes libraries, a package manager, |
sethladd
2012/12/14 17:28:14
should we add "also includes" here? otherwise, I f
Kathy Walrath
2012/12/14 22:51:41
Done.
|
+ and tools such as a full-featured editor. |
</p> |
<aside> |
<div class="alert alert-info"> |
<strong>Note:</strong> |
sethladd
2012/12/14 17:28:14
This should be a "project status" top-level sectio
Kathy Walrath
2012/12/14 22:51:41
I don't know... It seems like we ought to warn peo
|
- This document is part of an early preview of |
- the Dart language and programming environment. |
- Some elements are missing from the current release, |
- and the details are subject to change based on the feedback we receive. |
+ The M1 release (October 2012) |
+ established a stable basis for the Dart language. |
+ The language will continue to change, |
+ but we expect the changes to be backward compatible. |
+ The Dart libraries, on the other hand, |
+ are not yet stable. |
</div> |
</aside> |
+<p> |
+Additional open-source projects and the Pub package manager |
+help developers be even more productive. |
+For example, developers can use Pub to get packages for |
+JavaScript interoperability, |
+a web UI framework, |
+a unit testing library, |
+libraries for game development, |
+and much more. |
+</p> |
+ |
+<p> |
+Now that the language has stabilized, |
+the Dart team is working on performance. |
+As the following chart shows, |
+the Dart VM is already much faster than Chrome’s JavaScript engine, V8, |
+on two important benchmarks. |
+See the <a href="/performance/">performance page</a> |
+for the latest measurements of Dart and JavaScript code. |
+</p> |
+ |
+<p> |
+<a href="/performance/"> |
+<img src="images/perf-chart.png" |
sethladd
2012/12/14 17:28:14
this chart will get out of date pretty fast. let's
Kathy Walrath
2012/12/14 22:51:41
Done.
|
+ alt="a performance chart" |
+ style="border: 1px solid black"> |
+</a> |
+</p> |
+</section> |
+ |
+ |
<h4> Contents </h4> |
<ol class="toc"> |
- <li> <a href="#key">Key features</a> </li> |
+ <li> <a href="#key">Language features</a> |
+ <ol> |
+ <li> <a href="#lang-classes">Classes </a></li> |
+ <li> <a href="#lang-optional-types">Optional types</a> </li> |
+ <li> <a href="#lang-lexical-scope">Lexical scoping</a> </li> |
+ <li> <a href="#lang-libraries">Libraries</a> </li> |
+ <li> <a href="#lang-isolates">Isolates</a> </li> |
+ <li> <a href="#lang-tooling">Toolability</a> </li> |
+ </ol> </li> |
<li> <a href="#goals">Design goals</a> </li> |
sethladd
2012/12/14 17:28:14
Shouldn't Design Goals go before Language features
Kathy Walrath
2012/12/14 22:51:41
Yeah, probably. Especially since it uses bold font
|
- <li> <a href="#code">Show me the code </a> |
+ <li> <a href="#code">Examples of Dart code</a> |
<ol> |
- <li> <a href="#classes">Classes and interfaces </a> </li> |
- <li> <a href="#optional-types">Optional types </a> </li> |
+ <li> <a href="#classes">Using classes </a></li> |
+ <li> <a href="#optional-types">Adding types</a> </li> |
+ <li> <a href="#browser">Writing web apps</a> </li> |
</ol> |
</li> |
- <li> <a href="#howtouse">How can I use Dart? </a> |
+ <li> <a href="#tools">Tools</a> |
<ol> |
+ <li> <a href="#running">Dart code execution</a> </li> |
<li> <a href="#editor">Dart Editor</a> </li> |
- <li> <a href="#mimetype">New MIME type </a> </li> |
- </ol> |
- </li> |
- <li> <a href="#tools">Tools </a> </li> |
- <li> <a href="#libraries">Libraries </a> </li> |
- <li> <a href="#involved">Get involved </a> </li> |
+ <li> <a href="#pub">The Dart Package Manager: pub</a> </li> |
+ </ol></li> |
+ <li> <a href="#libraries">Libraries</a> </li> |
+ <li> <a href="#involved">Get involved</a> </li> |
</ol> |
</section> |
<section id="key"> |
- <h2> Key features </h2> |
+ <h2> Language features </h2> |
sethladd
2012/12/14 17:28:14
More cool features to pick from:
http://programme
Kathy Walrath
2012/12/14 22:51:41
There are many, but this is already a laundry list
|
<p> |
- Key features of the Dart language include: |
+ Key features of the Dart language include |
+ classes, optional types, lexical scoping, libraries, isolates, and toolability. |
</p> |
+ <p> |
+ Although Dart is designed to be familiar, |
+ we took the opportunity to fix |
+ some problematic features of common languages. |
+ We also introduced a few good features from lesser known languages. |
+ Some Dart features you might not expect include |
+ top-level functions, |
+ optional parameters, |
+ string interpolation, |
+ multi-line strings, |
+ dynamic method handling (<code>noSuchMethod</code>), |
+ a cascade operator (<code>..</code>), and |
+ a function shorthand syntax (<code>=></code>). |
+ Details are in the |
+ <a href="/docs/dart-up-and-running/ch02.html">language tour</a>. |
+ </p> |
- <h3>Classes</h3> |
+ |
+ <h3 id="lang-classes">Classes</h3> |
<p> |
- Classes and interfaces provide a well understood mechanism |
+ Classes provide a well understood mechanism |
for efficiently defining APIs. |
- These constructs enable encapsulation and reuse of methods and data. |
+ Each class implicitly defines an interface. |
+ Together, classes and interfaces |
+ enable encapsulation and reuse of methods and data. |
+ </p> |
+ |
+ <h3 id="lang-optional-types">Optional types</h3> |
+ <p> |
+ Optional types can help a Dart program scale from a quick prototype |
+ into a complex, modular application. |
+ While a small program or prototype might not have type annotations, |
+ you always have the option of adding them. |
+ Types make the code's intent clearer, |
+ which helps developers to understand the code. |
+ Types also enable more powerful tools |
+ for writing and debugging code. |
</p> |
- <h3>Optional types</h3> |
+ <h3 id="lang-lexical-scope">Lexical scoping</h3> |
<p> |
- Dart programmers can optionally add static types to their code. |
- Depending on programmer preference and stage of application development, |
- the code can migrate from a simple, untyped experimental prototype |
- to a complex, modular application with typing. |
- Because types state programmer intent, |
- less documentation is required to explain what is happening in the code, |
- and type-checking tools can be used for debugging. |
+ Scoping rules in Dart make sense. |
+ Each identifier is scoped to the block it's declared in, |
+ which means that you can tell a variable's scope |
+ by looking at the braces in your code <code>{...}</code>. |
+ Even in a closure within a loop, |
+ the value of a variable is what you intuitively expect. |
</p> |
- <h3>Libraries</h3> |
+ |
+ <h3 id="lang-libraries">Libraries</h3> |
<p> |
Developers can create and use libraries |
that are guaranteed not to change during runtime. |
@@ -81,12 +162,25 @@ title: "Technical Overview" |
rely on shared libraries. |
</p> |
- <h3>Tooling</h3> |
+ <h3 id="lang-isolates">Isolates</h3> |
+ <p> |
+ Modern web browsers, even on mobile platforms, |
+ run on multi-core CPUs. |
+ To take advantage of all those cores, |
+ developers traditionally use shared-memory threads running concurrently. |
+ However, shared-state concurrency is error prone |
+ and can lead to complicated code. |
+ Instead of threads, all Dart code runs inside of isolates. |
+ Each isolate has its own memory heap, |
+ ensuring that no isolate’s state is accessible from any other isolate. |
+ </p> |
+ |
+ <h3 id="lang-tooling">Toolability</h3> |
<p> |
- Dart will include a rich set of |
- execution environments, libraries, and development tools |
- built to support the language. |
- These tools will enable productive and dynamic development, |
+ Dart is designed to work well with tools. |
+ A rich set of execution environments, libraries, and development tools |
+ have already been built to support the language. |
+ Dart's toolability enables productive and dynamic development, |
including edit-and-continue debugging and beyond—up |
to a style where you program an application outline, run it, |
and fill in the blanks as you run. |
@@ -98,9 +192,8 @@ title: "Technical Overview" |
<h2> Design goals </h2> |
<p> |
- The Dart programming language is presented here in its early stages. |
- The following design goals will guide |
- the continued evolution and refinement of this open source project: |
+ The following design goals guide |
+ the continued evolution and refinement of this project: |
</p> |
<ul> |
@@ -114,8 +207,8 @@ title: "Technical Overview" |
<li>Make Dart appropriate for the |
<b>full range of devices on the web</b>—including |
phones, tablets, laptops, and servers.</li> |
- <li>Provide tools that make Dart run fast |
- <b>across all major modern browsers</b>. </li> |
+ <li>Provide tools that make Dart run fast across |
+ <b>all major modern browsers</b>. </li> |
</ul> |
<p> |
@@ -131,14 +224,13 @@ title: "Technical Overview" |
so that different teams can work on them independently. |
It’s difficult to be productive |
when a web application gets large.</li> |
- <li>Scripting languages are popular |
- because their lightweight nature makes it easy to write code quickly. |
- Generally, the contracts with other parts of an application |
- are conveyed in comments rather than in the language structure itself. |
- As a result, it’s difficult for someone other than the author |
+ <li> |
+ In scripting languages, the contracts with other parts of an application |
+ are usually conveyed in comments rather than in the language structure itself. |
+ As a result, it can be difficult for someone other than the author |
to read and maintain a particular piece of code.</li> |
- <li>With existing languages, |
- the developer is forced to make a choice between |
+ <li>Before Dart, |
+ the developer was forced to make a choice between |
static and dynamic languages. |
Traditional static languages require heavyweight toolchains |
and a coding style that can feel inflexible and overly constrained.</li> |
@@ -149,43 +241,54 @@ title: "Technical Overview" |
<li>Different languages and formats entail context switches |
that are cumbersome and add complexity to the coding process.</li> |
</ul> |
+ |
</section> |
<section id="code"> |
-<h2>Show me the code</h2> |
+<h2>Examples of Dart code</h2> |
<p> |
-Here are several code snippets |
+Here are some code snippets |
to give you a feel for what Dart code looks like. |
</p> |
<section id="classes"> |
-<h3>Classes and interfaces</h3> |
+<h3>Using classes</h3> |
<p> |
-Dart’s interfaces and classes provide you with |
+Dart’s classes provide |
a set of reusable and extensible building blocks. |
-An <em>interface</em> defines a basic set of methods and constants, |
-sometimes by inheriting from other interfaces. |
-A <em>class</em> can implement multiple interfaces, |
-but it only inherits from a single superclass. |
+A <em>class</em> defines methods and data |
+and can provide method implementations. |
+Every <em>object</em> is an instance of a class. |
+</p> |
+ |
+<p> |
+Each class implicitly defines an <em>interface</em>. |
+A class can implement multiple interfaces, |
+but it only <em>extends</em>—inherits implementation from—a |
+single superclass. |
</p> |
<p> |
-The following example defines an interface, |
-along with a class and subclass that implement it: |
+The following example shows the code for three classes. |
+The first class, Shape, is an <em>abstract class</em>—a |
+class that can't be instantiated. |
+The second class, Rectangle, |
+implements the interface defined by Shape. |
+The third class, Square, is a subclass of Rectangle. |
</p> |
{% highlight dart %} |
-interface Shape { |
+abstract class Shape { |
num perimeter(); |
} |
class Rectangle implements Shape { |
final num height, width; |
- Rectangle(num this.height, num this.width); // Compact constructor syntax. |
- num perimeter() => 2*height + 2*width; // Short function syntax. |
+ Rectangle(this.height, this.width); // Compact constructor syntax. |
+ num perimeter() => 2*height + 2*width; // Shorthand function syntax. |
} |
class Square extends Rectangle { |
@@ -197,7 +300,7 @@ class Square extends Rectangle { |
<section id="optional-types"> |
-<h3>Optional types</h3> |
+<h3>Adding types</h3> |
<p> |
Dart provides, at the programmer’s option, |
@@ -205,15 +308,15 @@ a mixture of static and dynamic checking. |
When experimenting, |
the programmer can write untyped code for simple prototyping. |
As the application becomes larger and more stable, |
-types can be added to aid debugging and impose structure where desired. |
+types can be added to aid debugging and impose structure. |
</p> |
<p> |
For example, here is a sample of untyped code in Dart |
-that creates a new Point class that has parameters |
-<code>x</code> and <code>y</code> |
-and two methods: |
-<code>scale()</code> and <code>distance()</code>. |
+that creates a new Point class that has two instance variables |
+(<code>x</code> and <code>y</code>) |
+and two methods |
+(<code>scale()</code> and <code>distance()</code>). |
</p> |
{% highlight dart %} |
@@ -233,12 +336,11 @@ main() { |
{% endhighlight %} |
<p> |
-Here is what this code looks like with types added |
-that ensure that |
-<code>x</code>, <code>y</code>, and <code>factor</code> |
-are of type <code>num</code>, |
-and that a <code>Point</code> contains two values |
-of type <code>num</code>: |
+Here is what this code looks like with a few types added |
+to make the API of Point clearer. |
+For example, this code specifies that |
+<code>x</code> and <code>y</code> |
+are of type <code>num</code>. |
</p> |
{% highlight dart %} |
@@ -246,121 +348,97 @@ import 'dart:math'; |
class Point { |
num x, y; |
- Point(num this.x, num this.y); |
+ Point(this.x, this.y); |
Point scale(num factor) => new Point(x*factor, y*factor); |
num distance() => sqrt(x*x + y*y); |
} |
-void main() { |
- Point a = new Point(2,3).scale(10); |
+main() { |
+ var a = new Point(2,3).scale(10); |
print(a.distance()); |
} |
{% endhighlight %} |
</section> <!-- optional types --> |
-</section> <!-- code --> |
- |
-<section id="howtouse"> |
-<h2>How can I use Dart?</h2> |
- |
-<p> |
-You can run Dart code in several ways: |
-</p> |
- |
-<ul> |
- <li> |
- <p> |
- Compile Dart code to JavaScript that can run in any modern browser:<br /> |
- Chrome, Safari 5+, and Firefox 4+ (more browser support coming shortly) |
- </p> |
- </li> |
- <li> |
- <p> |
- Execute Dart code directly in a VM on your computer |
- </p> |
- </li> |
- <li> |
- <p> |
- With a <a href="#mimetype">new MIME type</a>, |
- use Dart in a browser |
- without first compiling to JavaScript |
- </p> |
- </li> |
-</ul> |
- |
-<section id="editor"> |
-<h3>Dart Editor</h3> |
- |
-<p> |
-Dart Editor is a tool for |
-creating, modifying, and launching Dart web apps. |
-With one click, you can compile a Dart web app to JavaScript |
-and launch the app in a browser. |
-Taking advantage of Dart’s structured nature, |
-Dart Editor supports method name completion and refactoring. |
-</p> |
- |
-<p> |
-For information about downloading and using Dart Editor, see the |
-<a href="/docs/editor/getting-started/">Dart Editor tutorial</a>. |
-</p> |
-</section> |
-<section id="mimetype"> |
-<h3>New MIME type</h3> |
+<section id="browser"> |
+<h3>Writing web apps</h3> |
<p> |
-You will be able to link to a Dart program directly from an HTML page. |
-Here is the proposed new MIME type, |
-“application/dart”: |
+Dart code can be compiled to JavaScript |
+that runs in any modern browser. |
+Dart code can also run directly in browsers that have a Dart VM, |
+including Dartium and eventually Chrome. |
+Here's an example of an HTML file that loads Dart code: |
</p> |
{% highlight html %} |
<!DOCTYPE html> |
- |
<html> |
- <head> |
- <title>Simple Dart Web App</title> |
- </head> |
+ <head> <title>Simple Dart Web App</title> </head> |
<body> |
- <h1>Simple Dart Web App</h1> |
- <h2 id="status">dart is starting up...</h2> |
- <script type="application/dart" src="SimpleDartWebApp.dart"></script> |
- <script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script> |
+ <h1>Simple Dart Web App</h1> |
+ <button id="button-text"></button> |
+ <output id="msg"></output> |
+ |
+ <script type="application/dart" src="app.dart"></script> |
+ <script src="https://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script> |
+ |
</body> |
</html> |
{% endhighlight %} |
<p> |
-The dart.js file above will swap out the <code>application/dart</code> |
-tag with a <code>text/javascript</code> tag if the browser does not |
-have an embedded Dart virtual machine. |
+ The first <script> tag in this example |
+ loads the code from app.dart. |
+ If the browser has an embedded Dart VM, |
+ then the browser loads Dart code, |
+ which has the MIME type <code>application/dart</code>. |
+ Otherwise, the browser loads the code's JavaScript equivalent, |
+ thanks to the <code>dart.js</code> script |
+ in the second <script> tag. |
</p> |
<p> |
-The following is the Dart code for the page above: |
+Here is the code in app.dart: |
</p> |
{% highlight dart %} |
import 'dart:html'; |
-class SimpleDartWebApp { |
- void run() { |
- write("Hello World!"); |
- } |
- |
- void write(String message) { |
- // the HTML library defines a global "document" variable |
- document.query('#status').innerHTML = message; |
- } |
+main() { |
+ query('#button-text') |
+ ..text = "Click me!" |
+ ..on.click.add(respond); |
} |
-void main() { |
- new SimpleDartWebApp().run(); |
+respond(event) { |
+ query("#msg").text = "You clicked the button!"; |
} |
{% endhighlight %} |
-</section> <!-- howtouse --> |
-</section> <!-- mimetype --> |
+ |
+<p> |
+ The main() function's call to query() |
+ returns the HTML element that has the ID "button-text". |
+ The code then uses the cascade operator (<code>..</code>) |
+ to perform multiple operations on that element. |
+ The first operation initializes |
+ the element's <code>text</code> property, |
+ and the second adds an event handler to the element. |
+</p> |
+ |
+<p> |
+ Libraries and frameworks will |
+ ease the task of developing sophisticated web apps. |
+ For example, the libraries and tools in the |
+ <a href="http://www.dartlang.org/articles/dart-web-components/">Web UI</a> |
+ package provide web components, templates, data binding, |
+ and encapsulation. |
+</p> |
+ |
+</section> <!-- browser --> |
+ |
+</section> <!-- code --> |
<section id="tools"> |
@@ -374,31 +452,129 @@ Offerings include: |
</p> |
<ul> |
- <li>The Dart Editor</li> |
- <li>The dart2js compiler</li> |
- <li>The Dart VM</li> |
- <li>Dartium: Chromium with an embedded Dart VM</li> |
+ <li><b>Dart Editor:</b> A Dart-savvy editor that supports creating, modifying, running, and debugging Dart apps</li> |
sethladd
2012/12/14 17:28:14
savvy. I like it! :)
|
+ <li><b>pub:</b> A package manager that features libraries published on <a href="http://pub.dartlang.org/">pub.dartlang.org</a></li> |
+ <li><b>dart2js:</b> The Dart-to-JavaScript compiler</li> |
+ <li><b>dart:</b> The Dart VM</li> |
+ <li><b>Dartium:</b> Chromium with an embedded Dart VM</li> |
</ul> |
+<section id="running"> |
+<h3>Dart code execution</h3> |
+ |
<p> |
On the client side, you can deploy Dart apps in two ways. |
For browsers without an embedded Dart VM, |
you can compile the Dart code to JavaScript, |
-using the dart2js compiler. This compiler generates ECMAScript5-compatible |
-JavaScript from the Dart code. Dart code can run |
-directly in browsers that have a Dart VM, |
-including Dartium (a special build of Chromium) |
-and eventually Chrome. |
+using the <b>dart2js</b> compiler. |
+This compiler generates ECMAScript5-compatible |
+JavaScript from the Dart code. |
+This JavaScript code works in Chrome, Safari 5+, and Firefox 4+ |
sethladd
2012/12/14 17:28:14
probably more accurate to say:
latest Chrome, lat
Kathy Walrath
2012/12/14 22:51:41
Done.
|
+(with more to come). |
+<b>{PENDING: is the browser list accurate? |
+Do we want it here?}</b> |
</p> |
<p> |
On the server side, the Dart code runs directly on the command line, |
+using the <b>dart</b> tool, |
for fast iteration and for cloud-based tasks. |
</p> |
+<p> |
<img src="images/source-flow.png" |
alt="Dart source -> Dart Editor; Dart Editor -> either [Dart VM] or [JavaScript source -> Browser (JavaScript Engine)]" |
width="266" height="417" > |
+ <br> |
+ <b>{PENDING: update the above figure to remove the "Dart Editor" box; |
+ we don't want to imply that the editor is required.}</b> |
+</p> |
+ |
+<p> |
+Running an app is easy—a single click—when you use Dart Editor. |
sethladd
2012/12/14 17:28:14
I think you can remove this section
Kathy Walrath
2012/12/14 22:51:41
Done. To compensate, I added a bit more about laun
|
+For example, clicking the Run button while you're editing a web app |
+either runs it in Dartium |
+or compiles it to JavaScript |
+and runs it in the browser you've chosen. |
+</p> |
+</section> |
+ |
+<section id="editor"> |
+<h3>Dart Editor</h3> |
+ |
+<p> |
+Dart Editor is based on Eclipse components, |
+but it has a simplified user interface. |
+</p> |
+ |
+<aside> |
+ <div class="alert alert-info"> |
+ <strong>Note:</strong> |
+ You aren't limited to using Dart Editor. |
+ If you prefer Eclipse, IntelliJ, or WebStorm, |
+ you can download Dart plugins for those IDEs. |
+ Dart configurations also exist for popular text editors |
+ such as Vim, Emacs, TextMate, and Sublime. |
+ </div> |
+</aside> |
+ |
+<p> |
+Features of Dart Editor include: |
+</p> |
+ |
+<ul> |
+ <li> Static analysis to catch errors and potential problems </li> |
+ <li> Code completion </li> |
+ <li> Code navigation </li> |
+ <li> Refactoring </li> |
+ <li> Launch management </li> |
+ <li> Auto-update of the editor, SDK, and Dartium </li> |
+ <li> Code update help for breaking changes |
+ to the language and core libraries </li> |
+ <li> Interactive debugging of both web apps (with Dartium) |
+ and command-line apps </li> |
+</ul> |
+ |
+<p> |
+The following screenshot shows |
+Dart Editor being used to debug a web app. |
+</p> |
+ |
+<p> |
+<img src="images/DartEditor-debugger.png" |
sethladd
2012/12/14 17:28:14
we should take high dpi screenshots for these. I c
Kathy Walrath
2012/12/14 22:51:41
If you could, that'd be great. Then you can show m
|
+ alt="screenshot of Dart Editor debugging a web app"> |
+</p> |
+ |
+<p> |
+To get the tools and find more information, go to the |
+<a href="/downloads.html">downloads page</a>.</p> |
+ |
+</section> |
+ |
+<section id="pub"> |
+<h3>The Dart Package Manager: pub</h3> |
+ |
+<p> |
+ Pub is a package mananger for Dart. |
+ It helps developers reuse existing Dart code |
+ and bundle Dart apps and libraries |
+ for reuse and sharing with other people. |
+ Pub handles versioning and dependency management. |
+</p> |
+ |
+<p> |
+ You can use Pub either at the command line |
+ or through Dart Editor. |
+ Because Pub is part of the SDK, |
+ it's updated whenever Dart Editor or the SDK is updated. |
+</p> |
+ |
+<p> |
+ For more information, go to |
+ <a href="http://pub.dartlang.org/">pub.dartlang.org</a>. |
+</p> |
+ |
+</section> |
</section> |
@@ -406,60 +582,82 @@ for fast iteration and for cloud-based tasks. |
<h2>Libraries</h2> |
<p> |
-Dart provides the following libraries |
-to support web and web server development: |
+Dart provides several libraries |
+to support web and web server development. |
+The |
+<a href="/docs/dart-up-and-running/ch03.html">library tour</a> |
+and the |
+<a href="http://api.dartlang.org">API reference</a> |
+have details on all the bundled Dart libraries. |
+Bundled libraries include: |
</p> |
<dl> |
- <dt> <a href="http://api.dartlang.org/dart_core.html">Core Library</a> </dt> |
- <dd> Contains interfaces to support |
- common data structures and operations. |
+ <dt> <a href="http://api.dartlang.org/dart_core.html">Core library</a> </dt> |
+ <dd> Common data structures and operations. |
</dd> |
- <dt> <a href="http://api.dartlang.org/html.html">HTML Library</a> </dt> |
- <dd> Contains interfaces to the HTML5 DOM, |
+ <dt> <a href="http://api.dartlang.org/dart_html.html">HTML library</a> </dt> |
+ <dd> The interface to the HTML5 DOM, |
loosely based on the proposed HTML5 standard |
as specified by the W3C/WHATWG. |
- These interfaces will evolve in parallel with |
+ This library is evolving in parallel with |
the HTML5 standards.</dd> |
- <dt> <a href="http://api.dartlang.org/io.html">I/O Library</a> </dt> |
- <dd> Contains interfaces to read and write files, open directories, |
- open network sockets, and run HTTP servers. This library is for |
- command-line Dart programs. |
+ <dt> <a href="http://api.dartlang.org/dart_io.html">I/O library</a> </dt> |
+ <dd> Server-side support for I/O: |
+ read and write files, open directories, |
+ open network sockets, and run HTTP servers. |
</dd> |
- <dt> <a href="http://api.dartlang.org/dart_isolate.html">Isolate Library</a> </dt> |
+ <dt> <a href="http://api.dartlang.org/dart_isolate.html">Isolate library</a> </dt> |
<dd> |
- Contains interfaces for spawning and communicating with isolates, |
+ Support for spawning and communicating with isolates, |
the mechanism for concurrency and security in a Dart program. |
</dd> |
- <dt> <a href="http://api.dartlang.org/crypto.html">Crypto Library</a> </dt> |
+ <dt> <a href="http://api.dartlang.org/dart_json.html">JSON library</a> </dt> |
<dd> |
- Contains interfaces for creating one-way hashes (SHA1, MD5, SHA256) |
- and HMAC support. |
+ Support for parsing and producing JSON-encoded text. |
</dd> |
- <dt> <a href="http://api.dartlang.org/json.html">JSON Library</a> </dt> |
+ <dt> <a href="http://api.dartlang.org/dart_math.html">Math library</a> </dt> |
<dd> |
- Contains the ability to parse and produce JSON-encoded text. |
- </dd> |
- |
- <dt> <a href="http://api.dartlang.org/unittest.html">Unit Test Library</a> </dt> |
- <dd> |
- Contains functions and classes for writing unit tests in Dart. |
+ Common functionality such as sine and cosine, |
+ maximum and minimum, |
+ and constants such as <em>pi</em> and <em>e</em>. |
</dd> |
</dl> |
sethladd
2012/12/14 17:28:14
Add "and more" ? How do we convey there are more l
Kathy Walrath
2012/12/14 22:51:41
Done.
|
<p> |
- See the |
- <a href="/docs/dart-up-and-running/ch03.html">library tour</a> |
- and the |
- <a href="http://api.dartlang.org">API reference</a> docs for |
- details on all the bundled |
- Dart libraries. |
+ The <a href="http://pub.dartlang.org">pub.dartlang.org</a> site |
+ has many additional libraries and tools. |
+ Here are just a few: |
</p> |
+<dl> |
+ <dt> <a href="http://pub.dartlang.org/packages/js">JavaScript Interop</a> |
+ </dt> |
+ <dd> Use JavaScript from Dart code. </dd> |
+ |
+ <dt> <a href="http://pub.dartlang.org/packages/unittest">Unit test</a> </dt> |
+ <dd> Write unit tests for Dart code. </dd> |
+ |
+ <dt> <a href="http://pub.dartlang.org/packages/web_ui">Web UI</a> </dt> |
+ <dd> Build web apps using an API based on Web Components, |
+ with additional features inspired by model-driven views. </dd> |
+ |
+ <dt> <a href="http://pub.dartlang.org/packages/meta">Meta</a> </dt> |
+ <dd> Use annotations to give tools |
+ additional semantic information about your program. </dd> |
+ |
+ <dt> {PENDING: We could add many more, such as logging, intl, args, oauth2, |
+ benchmark_harness, vector_math, spectre, ... but should we?} </dt> |
+ <!-- |
+ <dt> <a href="http://pub.dartlang.org/packages/XYZ">XYZ</a> </dt> |
+ <dd> XYZ. </dd> |
+ --> |
+</dl> |
+ |
</section> <!-- libraries --> |
@@ -467,11 +665,7 @@ to support web and web server development: |
<h2>Get involved</h2> |
<p> |
-This project is open source |
-and will evolve with feedback and participation from the community. |
-We have released the draft language specification at an early stage |
-to gather responses from the developers |
-who will be using this new language and infrastructure for web programming. |
+This project will evolve with feedback and participation from the community. |
Here are some additional links for learning more about Dart |
and providing your feedback: |
</p> |
@@ -481,18 +675,20 @@ and providing your feedback: |
Other pages in the Dart website, |
such as the <a href="/docs/dart-up-and-running/ch02.html">language tour</a>, |
<a href="/docs/dart-up-and-running/ch03.html">library tour</a>, |
- tutorials, and <a href="/docs/spec/">language specification</a>. |
+ <a href="/docs/tutorials/">tutorials</a>, |
+ and <a href="/docs/dart-up-and-running/ch05.html">Dart Chat walkthrough</a> |
</li> |
<li> |
- <a href="https://code.google.com/p/dart/">Dart project</a> |
- with issue tracker and source code </li> |
+ The Dart open-source project at |
+ <a href="https://code.google.com/p/dart/">code.google.com/p/dart/</a>, |
+ as well as additional open-source projects from the Dart team at |
+ <a href="https://github.com/dart-lang">github.com/dart-lang</a> </li> |
<li> |
<a href="https://groups.google.com/a/dartlang.org/group/misc/">Dart |
- discussion group</a> (misc at dartlang.org) </li> |
+ discussion group</a> (misc at dartlang.org) and |
+ <a href="https://plus.google.com/+dartlang">Dart on Google+</a> </li> |
sethladd
2012/12/14 17:28:14
let's also mention the Dartisans community
https:
Kathy Walrath
2012/12/14 22:51:41
Done.
|
<li> |
- <a href="https://plus.google.com/109866369054280216564/">+Dart</a> on Google+ </li> |
+ <a href="http://stackoverflow.com/questions/tagged/dart">Dart on Stack Overflow</a> </li> |
</ul> |
</section> <!-- involved --> |
- |
- |