Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: src/site/docs/technical-overview/index.html

Issue 11366023: Updated tech overview (Closed) Base URL: git@github.com:dart-lang/dartlang.org.git@master
Patch Set: incorporate review comments Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/site/docs/technical-overview/images/source-flow.png ('k') | src/site/support/index.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..575d07ba2bb82448b7f171b06b3ad33fc331385f 100644
--- a/src/site/docs/technical-overview/index.html
+++ b/src/site/docs/technical-overview/index.html
@@ -6,101 +6,87 @@ title: "Technical Overview"
<section>
<p>
- Dart is a new class-based programming language
- for creating structured web applications.
- Developed with the goals of simplicity, efficiency, and scalability,
- the Dart language combines powerful new language features
- with familiar language constructs into a clear, readable syntax.
+ Dart helps developers productively 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>
-<aside>
- <div class="alert alert-info">
- <strong>Note:</strong>
- 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.
- </div>
-</aside>
+ <p>
+ Developed with the goals of <b>simplicity</b>,
+ <b>efficiency</b>, and <b>scalability</b>,
+ 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 also includes <b>libraries</b>,
+ a <b>package manager</b>,
+ and <b>tools</b> such as a full-featured <b>editor</b>.
+ The bundled Dart libraries are still changing,
+ but we expect them to settle down soon.
+</p>
+
+<p>
+Additional Dart open-source projects and the Pub package manager
+help developers be even more productive.
+For example, developers can use Pub to get packages for
+<b>JavaScript interoperability</b>,
+a <b>web UI</b> framework,
+a <b>unit testing</b> library,
+libraries for <b>game development</b>,
+and much more.
+</p>
+
+<p>
+Now that the language has stabilized,
+the Dart team is working on <b>performance</b>.
+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>
+
+</section>
+
<h4> Contents </h4>
<ol class="toc">
- <li> <a href="#key">Key features</a> </li>
<li> <a href="#goals">Design goals</a> </li>
- <li> <a href="#code">Show me the code </a>
+ <li> <a href="#key">Language features</a>
<ol>
- <li> <a href="#classes">Classes and interfaces </a> </li>
- <li> <a href="#optional-types">Optional types </a> </li>
+ <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="#code">Examples of Dart code</a>
+ <ol>
+ <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 Pub package manager</a> </li>
+ </ol></li>
+ <li> <a href="#libraries">Libraries</a> </li>
+ <li> <a href="#get-started">Get started with Dart</a> </li>
+ <li> <a href="#involved">More information</a> </li>
</ol>
</section>
-
-<section id="key">
- <h2> Key features </h2>
-
- <p>
- Key features of the Dart language include:
- </p>
-
-
- <h3>Classes</h3>
- <p>
- Classes and interfaces provide a well understood mechanism
- for efficiently defining APIs.
- These constructs enable encapsulation and reuse of methods and data.
- </p>
-
- <h3>Optional types</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.
- </p>
-
- <h3>Libraries</h3>
- <p>
- Developers can create and use libraries
- that are guaranteed not to change during runtime.
- Independently developed pieces of code can therefore
- rely on shared libraries.
- </p>
-
- <h3>Tooling</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,
- including edit-and-continue debugging and beyond&mdash;up
- to a style where you program an application outline, run it,
- and fill in the blanks as you run.
- </p>
-</section>
-
-
<section id="goals">
<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 +100,8 @@ title: "Technical Overview"
<li>Make Dart appropriate for the
<b>full range of devices on the web</b>&mdash;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 +117,13 @@ title: "Technical Overview"
so that different teams can work on them independently.
It&rsquo;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&rsquo;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 +134,147 @@ 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="key">
+ <h2> Language features </h2>
+
+ <p>
+ 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 id="lang-classes">Classes</h3>
+ <p>
+ Classes provide a well understood mechanism
+ for efficiently defining APIs.
+ 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 id="lang-lexical-scope">Lexical scoping</h3>
+ <p>
+ 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 id="lang-libraries">Libraries</h3>
+ <p>
+ Developers can create and use libraries
+ that are guaranteed not to change during runtime.
+ Independently developed pieces of code can therefore
+ rely on shared libraries.
+ </p>
+
+ <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 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&mdash;up
+ to a style where you program an application outline, run it,
+ and fill in the blanks as you run.
+ </p>
</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&rsquo;s interfaces and classes provide you with
+Dart&rsquo;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>&mdash;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; // Function shorthand syntax.
}
class Square extends Rectangle {
@@ -197,7 +286,7 @@ class Square extends Rectangle {
<section id="optional-types">
-<h3>Optional types</h3>
+<h3>Adding types</h3>
<p>
Dart provides, at the programmer&rsquo;s option,
@@ -205,162 +294,146 @@ 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>.
+For example, here is a sample of simple, untyped code in Dart.
</p>
{% highlight dart %}
-import 'dart:math';
-
-class Point {
- var x, y;
- Point(this.x, this.y);
- scale(factor) => new Point(x*factor, y*factor);
- distance() => sqrt(x*x + y*y);
-}
-
-main() {
- var a = new Point(2,3).scale(10);
- print(a.distance());
+recalculate(origin, offset, estimate) {
+ // ...
}
{% 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 clearer.
</p>
{% highlight dart %}
-import 'dart:math';
-
-class Point {
- num x, y;
- Point(num this.x, num 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);
- print(a.distance());
+num recalculate(Point origin, num offset, {bool estimate:false}) {
+ // ...
}
{% 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:
+Besides adding types, the second sample
+refines the API by making the third parameter optional
+and giving it a default value.
</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&rsquo;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> <!-- optional types -->
-<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,
-&ldquo;application/dart&rdquo;:
+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 &lt;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 &lt;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!");
- }
+main() {
+ query('#button-text')
+ ..text = "Click me!"
+ ..on.click.add(respond);
+}
- void write(String message) {
- // the HTML library defines a global "document" variable
- document.query('#status').innerHTML = message;
- }
+respond(event) {
+ query("#msg").text = "You clicked the button!";
}
+{% endhighlight %}
+
+<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.
+ Just to give you a taste of the Web UI package,
+ here's an example of one-way data binding in an HTML file:
+</p>
+
+{% highlight html %}
+{% raw %}
+<!-- HTML code... -->
+<div>
+ The current time is: {{currentTime}}
+</div>
+<!-- more HTML code... -->
+{% endraw %}
+{% endhighlight %}
+
+<p>
+In the rendered page,
+<code>{{'{{'}}currentTime}}</code> is replaced by
+the value of the top-level <code>currentTime</code> variable
+from the following Dart code:
+</p>
+
+{% highlight dart %}
+String currentTime;
void main() {
- new SimpleDartWebApp().run();
+ Date today = new Date.now();
+ currentTime = formatTime(today.hour, today.minute, today.second);
}
+
+// ...The formatTime() function and any other code goes here...
{% endhighlight %}
-</section> <!-- howtouse -->
-</section> <!-- mimetype -->
+
+</section> <!-- browser -->
+
+</section> <!-- code -->
<section id="tools">
@@ -374,31 +447,120 @@ 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>
+ <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 the latest versions of
+Chrome, Safari, and Firefox,
+plus IE9+, mobile Safari, and Chrome for Android.
+Dart code can run directly in browsers
+that have a Dart VM,
+including Dartium and eventually Chrome.
</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" >
+ alt="Dart source -> either [Dart VM] or [dart2js -> JavaScript source -> Browser (JavaScript Engine)]">
+</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> Easy launching of both web apps and command-line apps </li>
+ <li> Interactive debugging of both web apps (with Dartium)
+ and command-line apps </li>
+ <li> Static analysis to catch errors and potential problems </li>
+ <li> Code completion </li>
+ <li> Code navigation </li>
+ <li> Refactoring </li>
+ <li> Auto-update of the editor, SDK, and Dartium </li>
+ <li> Code update help for breaking changes
+ to the language and bundled libraries </li>
+</ul>
+
+<p>
+The following screenshot shows
+Dart Editor being used to debug a web app.
+</p>
+
+<p>
+<img src="images/DartEditor-debugger.png"
+ 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 Pub package manager</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,93 +568,139 @@ 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 the following (and more):
</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>
- <dd>
- Contains interfaces for creating one-way hashes (SHA1, MD5, SHA256)
- and HMAC support.
- </dd>
-
- <dt> <a href="http://api.dartlang.org/json.html">JSON Library</a> </dt>
+ <dt> <a href="http://api.dartlang.org/dart_json.html">JSON library</a> </dt>
<dd>
- Contains the ability to parse and produce JSON-encoded text.
+ Support for parsing and producing JSON-encoded text.
</dd>
- <dt> <a href="http://api.dartlang.org/unittest.html">Unit Test Library</a> </dt>
+ <dt> <a href="http://api.dartlang.org/dart_math.html">Math 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>
<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>
+</dl>
+
</section> <!-- libraries -->
+<section id="get-started">
+<h2>Get started with Dart</h2>
+
+<p>
+You can get started with Dart in two easy steps:
+</p>
+
+<ol>
+ <li> <a href="/docs/editor/">Download Dart Editor</a> </li>
+ <li> <a href="/docs/tutorials/">Follow the tutorials</a> </li>
+</ol>
+
+<p>
+Then join the community,
+so you can get help, meet other Dart developers,
+and find out the latest news:
+</p>
+
+<ul>
+ <li>
+ <a href="https://plus.google.com/+dartlang">Dart page on Google+</a>
+ </li>
+ <li>
+ <a href="https://plus.sandbox.google.com/communities/114566943291919232850">Dartisans community on Google+</a> </li>
+ <li>
+ <a href="http://stackoverflow.com/questions/tagged/dart">Dart on Stack Overflow</a> </li>
+</ul>
+
+</section> <!-- get-started -->
+
+
<section id="involved">
-<h2>Get involved</h2>
+<h2>More info</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.
-Here are some additional links for learning more about Dart
-and providing your feedback:
+Here are some additional resources for learning about Dart
+and providing feedback:
</p>
<ul>
<li>
- Other pages in the Dart website,
- such as the <a href="/docs/dart-up-and-running/ch02.html">language tour</a>,
+ This website,
+ especially 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="/articles/">articles</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 <a href="https://groups.google.com/a/dartlang.org/group/misc/">Dart
+ discussion group</a> (misc at dartlang.org)
+ </li>
<li>
- <a href="https://groups.google.com/a/dartlang.org/group/misc/">Dart
- discussion group</a> (misc at dartlang.org) </li>
+ The Dart open-source project at
+ <a href="https://code.google.com/p/dart">code.google.com/p/dart</a>
+ </li>
<li>
- <a href="https://plus.google.com/109866369054280216564/">+Dart</a> on Google+ </li>
+ Additional open-source projects from the Dart team at
+ <a href="https://github.com/dart-lang">github.com/dart-lang</a>
+ </li>
</ul>
</section> <!-- involved -->
-
« no previous file with comments | « src/site/docs/technical-overview/images/source-flow.png ('k') | src/site/support/index.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698