mirror of
https://github.com/golang/go
synced 2024-11-21 12:44:40 -07:00
28c6305a0e
R=rsc CC=golang-dev https://golang.org/cl/949043
132 lines
3.3 KiB
HTML
132 lines
3.3 KiB
HTML
<!-- The Go Programming Language -->
|
|
|
|
<script>
|
|
// On the frontpage we hide the header and navigation elements that other
|
|
// pages have.
|
|
document.getElementById('generatedHeader').style.display = 'none';
|
|
document.getElementById('nav').style.display = 'none';
|
|
</script>
|
|
|
|
<!-- begin blog post widget JS/styles -->
|
|
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
function loadFeed() {
|
|
var url = "http://blog.golang.org/feeds/posts/default";
|
|
var divId = "blogFeed";
|
|
var feed = new google.feeds.Feed(url);
|
|
feed.setNumEntries(8)
|
|
feed.load(function (result) {
|
|
var container = document.getElementById(divId)
|
|
if (result.error) {
|
|
container.innerHTML = "Error loading feed.";
|
|
return;
|
|
}
|
|
container.innerHTML = "";
|
|
var entries = result.feed.entries;
|
|
for (var i=0; i<entries.length; i++) {
|
|
var a = document.createElement("a");
|
|
a.setAttribute("href", entries[i].link);
|
|
a.appendChild(document.createTextNode(entries[i].title));
|
|
container.appendChild(a);
|
|
}
|
|
});
|
|
}
|
|
google.load("feeds", "1");
|
|
google.setOnLoadCallback(loadFeed);
|
|
</script>
|
|
<!-- end blog post widget JS/styles -->
|
|
|
|
<div id="gettingStarted">
|
|
<h1>Getting started</h1>
|
|
|
|
<ol>
|
|
<li>
|
|
<span><a href="/doc/install.html">Install Go</a>.</span>
|
|
</li>
|
|
|
|
<li>
|
|
<span>Read the <a href="/doc/go_tutorial.html">tutorial</a>.</span>
|
|
</li>
|
|
|
|
<li>
|
|
<span>Learn the <a href="/pkg">libraries</a>.</span>
|
|
</li>
|
|
</ol>
|
|
|
|
<h1>Slow compiles?<br>Watch this</h1>
|
|
<table width="100%">
|
|
<tr>
|
|
<td align=center width="100%">
|
|
<a href="http://www.youtube.com/watch?v=wwoWei-GAPo"><img src="/doc/video-snap.jpg"></a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="blog">
|
|
<h1>From the <a href="http://blog.golang.org">Go Blog</a>:</h1>
|
|
<div id="blogFeed">Loading...</div>
|
|
</div>
|
|
|
|
|
|
<div id="frontpage">
|
|
|
|
<table style="padding-top: 1em; padding-bottom: 2em;">
|
|
<tr>
|
|
<td>
|
|
<img style="padding-right: 1em;" src="/doc/go-logo-black.png">
|
|
</td>
|
|
<td>
|
|
<div><span style="font-size: 2em; font-weight: bold;">a systems programming language</span><br><span style="font-size: 1.5em;">expressive, concurrent, garbage-collected</span></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p style="font-size: 1.5em; font-weight: bold;">Go is …</p>
|
|
|
|
<h3>… simple</h3>
|
|
<pre class="code">
|
|
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
fmt.Printf("Hello, 世界\n")
|
|
}</pre>
|
|
|
|
<h3>… fast</h3>
|
|
|
|
<p>
|
|
Go compilers produce fast code fast. Typical builds take a fraction of a second yet the resulting programs run nearly as quickly as comparable C or C++ code.
|
|
</p>
|
|
|
|
<h3>… safe</h3>
|
|
|
|
<p>Go is type safe and memory safe. Go has pointers but no pointer arithmetic.
|
|
For random access, use slices, which know their limits.</p>
|
|
|
|
<h3>… concurrent</h3>
|
|
|
|
<p>
|
|
Go promotes writing systems and servers as sets of lightweight
|
|
communicating processes, called goroutines, with strong support from the language.
|
|
Run thousands of goroutines if you want—and say good-bye to stack overflows.
|
|
</p>
|
|
|
|
<h3>… fun</h3>
|
|
|
|
<p>
|
|
Go has fast builds, clean syntax, garbage collection,
|
|
methods for any type, and run-time reflection.
|
|
It feels like a dynamic language but has the speed and safety of a static language.
|
|
It's a joy to use.
|
|
</p>
|
|
|
|
<h3>… open source</h3>
|
|
|
|
<p>
|
|
<a href="/doc/install.html">Go for it</a>.
|
|
</p>
|
|
|
|
</div>
|