summaryrefslogtreecommitdiff
path: root/doc/root.html
blob: b727f7f8a5be6c1795a788ac292179093da5aeb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!-- 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>

<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>Watch and Learn</h1>
  <table>
    <tr>
      <td>
        <a href="http://www.youtube.com/FIXME"><img src="/doc/video-snap.jpg"></a>
      </td>
      <td>
        Programming with Go. <a href="http://www.youtube.com/FIXME">Watch now</a>.
      </td>
    </tr>
  </table>
</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;">an experimental programming language.</span><br><span style="font-size: 1.5em;">Imperative, concurrent, garbage-collected.</span></div>
    </td>
  </tr>
</table>

<p style="font-size: 1.5em; font-weight: bold;">Go is &hellip;</p>

<h3>&hellip; simple</h3>
<pre class="code">
package main

import "fmt"

func main() {
  fmt.Printf("Hello, 世界\n");
}</pre>

<h3>&hellip; fast</h3>

<p>Go generates fast code and, equally importantly, does it fast. It takes too long to build software.  The tools are slow and are getting slower.  Dependencies are uncontrolled.  Machines have stopped getting faster.  Yet software still grows and grows.  If we stay as we are, before long software construction will be unbearably slow.</p>

<h3>&hellip; safe</h3>

<p>Go is type safe and memory safe. Go has pointers, but you can't perform
arithmetic on them. If you want that, you use slices, which known their
limits.</p>

<p>Clumsy type systems drive people to dynamically typed languages. Go is
object orientated without type hierarchies. Casts are checked at runtime and
types can be reflected upon.</p>

<h3>&hellip; concurrent</h3>

<p>Go provides a way to write systems and servers as concurrent,
garbage-collected processes (goroutines) with support from the language and
run-time. Growing stacks and multiplexing of goroutines onto threads is done
automatically.</p>

</div>

<!--

Commented out for now. We need to organise these resources.

<h2>Other Resources</h2>
<ul>
	<li>Mailing list: <a href="http://groups.google.com/group/NAME_TO_BE_DETERMINED">Go Nuts &lt;nuts@XXX&gt;</a>. Please don't mail group members individually.</li>
	<li><a href="http://code.google.com/p/go/source/browse/">Source code</a>
	<li><a href="http://code.google.com/p/go/issues/list">Issue Tracker</a>
	</li>
	<br />
	<li>The Google Tech Talk from October 30, 2009:
		<a href="/doc/go_talk-20091030.pdf" target="_top">PDF</a>
		<a href="https://video.google.com/XXX" target="_top">Video</a>
	</li>
	<li>Go course:
		<ul>
			<li>PDF slides:
				<a href="/doc/GoCourseDay1.pdf" target="_top">Day 1</a>,
				<a href="/doc/GoCourseDay2.pdf" target="_top">Day 2</a>,
				<a href="/doc/GoCourseDay3.pdf" target="_top">Day 3</a>
			</li>
		</ul>
	</li>
</ul>
-->