Russ Cox | 09fe283 | 2009-10-22 00:13:36 -0700 | [diff] [blame] | 1 | <!-- The Go Programming Language --> |
| 2 | |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 3 | <script> |
| 4 | // On the frontpage we hide the header and navigation elements that other |
| 5 | // pages have. |
| 6 | document.getElementById('generatedHeader').style.display = 'none'; |
| 7 | document.getElementById('nav').style.display = 'none'; |
| 8 | </script> |
| 9 | |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 10 | <!-- begin blog post widget JS/styles --> |
Andrew Gerrand | cd5191f | 2010-04-27 10:24:17 +1000 | [diff] [blame] | 11 | <script src="http://www.google.com/jsapi" type="text/javascript"></script> |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 12 | <script type="text/javascript"> |
Andrew Gerrand | 28c6305 | 2010-04-27 19:27:32 +1000 | [diff] [blame^] | 13 | function loadFeed() { |
| 14 | var url = "http://blog.golang.org/feeds/posts/default"; |
| 15 | var divId = "blogFeed"; |
| 16 | var feed = new google.feeds.Feed(url); |
| 17 | feed.setNumEntries(8) |
| 18 | feed.load(function (result) { |
| 19 | var container = document.getElementById(divId) |
| 20 | if (result.error) { |
| 21 | container.innerHTML = "Error loading feed."; |
| 22 | return; |
| 23 | } |
| 24 | container.innerHTML = ""; |
| 25 | var entries = result.feed.entries; |
| 26 | for (var i=0; i<entries.length; i++) { |
| 27 | var a = document.createElement("a"); |
| 28 | a.setAttribute("href", entries[i].link); |
| 29 | a.appendChild(document.createTextNode(entries[i].title)); |
| 30 | container.appendChild(a); |
| 31 | } |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 32 | }); |
| 33 | } |
| 34 | google.load("feeds", "1"); |
Andrew Gerrand | 28c6305 | 2010-04-27 19:27:32 +1000 | [diff] [blame^] | 35 | google.setOnLoadCallback(loadFeed); |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 36 | </script> |
| 37 | <!-- end blog post widget JS/styles --> |
| 38 | |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 39 | <div id="gettingStarted"> |
| 40 | <h1>Getting started</h1> |
| 41 | |
| 42 | <ol> |
| 43 | <li> |
| 44 | <span><a href="/doc/install.html">Install Go</a>.</span> |
| 45 | </li> |
| 46 | |
| 47 | <li> |
| 48 | <span>Read the <a href="/doc/go_tutorial.html">tutorial</a>.</span> |
| 49 | </li> |
| 50 | |
| 51 | <li> |
| 52 | <span>Learn the <a href="/pkg">libraries</a>.</span> |
| 53 | </li> |
| 54 | </ol> |
| 55 | |
Rob Pike | d10f154 | 2009-11-08 22:02:15 -0800 | [diff] [blame] | 56 | <h1>Slow compiles?<br>Watch this</h1> |
| 57 | <table width="100%"> |
Adam Langley | 51c1bd2 | 2009-11-05 12:18:54 -0800 | [diff] [blame] | 58 | <tr> |
Russ Cox | b94f813 | 2009-11-07 12:11:28 -0800 | [diff] [blame] | 59 | <td align=center width="100%"> |
Russ Cox | 78c47c3 | 2009-11-10 14:09:01 -0800 | [diff] [blame] | 60 | <a href="http://www.youtube.com/watch?v=wwoWei-GAPo"><img src="/doc/video-snap.jpg"></a> |
Adam Langley | 51c1bd2 | 2009-11-05 12:18:54 -0800 | [diff] [blame] | 61 | </td> |
Rob Pike | d5717d2 | 2009-11-05 13:39:00 -0800 | [diff] [blame] | 62 | </tr> |
Adam Langley | 51c1bd2 | 2009-11-05 12:18:54 -0800 | [diff] [blame] | 63 | </table> |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 64 | </div> |
| 65 | |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 66 | <div id="blog"> |
| 67 | <h1>From the <a href="http://blog.golang.org">Go Blog</a>:</h1> |
Andrew Gerrand | 28c6305 | 2010-04-27 19:27:32 +1000 | [diff] [blame^] | 68 | <div id="blogFeed">Loading...</div> |
Andrew Gerrand | 7190fdd | 2010-03-20 11:42:57 +1100 | [diff] [blame] | 69 | </div> |
| 70 | |
| 71 | |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 72 | <div id="frontpage"> |
| 73 | |
| 74 | <table style="padding-top: 1em; padding-bottom: 2em;"> |
| 75 | <tr> |
| 76 | <td> |
Adam Langley | 51c1bd2 | 2009-11-05 12:18:54 -0800 | [diff] [blame] | 77 | <img style="padding-right: 1em;" src="/doc/go-logo-black.png"> |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 78 | </td> |
| 79 | <td> |
Robert Griesemer | 3a94e8c | 2009-11-06 12:52:04 -0800 | [diff] [blame] | 80 | <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> |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 81 | </td> |
| 82 | </tr> |
| 83 | </table> |
| 84 | |
| 85 | <p style="font-size: 1.5em; font-weight: bold;">Go is …</p> |
| 86 | |
| 87 | <h3>… simple</h3> |
| 88 | <pre class="code"> |
| 89 | package main |
| 90 | |
| 91 | import "fmt" |
| 92 | |
| 93 | func main() { |
Rob Pike | d5717d2 | 2009-11-05 13:39:00 -0800 | [diff] [blame] | 94 | fmt.Printf("Hello, 世界\n") |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 95 | }</pre> |
| 96 | |
| 97 | <h3>… fast</h3> |
| 98 | |
Rob Pike | d5717d2 | 2009-11-05 13:39:00 -0800 | [diff] [blame] | 99 | <p> |
| 100 | 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. |
| 101 | </p> |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 102 | |
| 103 | <h3>… safe</h3> |
| 104 | |
Rob Pike | d5717d2 | 2009-11-05 13:39:00 -0800 | [diff] [blame] | 105 | <p>Go is type safe and memory safe. Go has pointers but no pointer arithmetic. |
| 106 | For random access, use slices, which know their limits.</p> |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 107 | |
| 108 | <h3>… concurrent</h3> |
| 109 | |
Rob Pike | d5717d2 | 2009-11-05 13:39:00 -0800 | [diff] [blame] | 110 | <p> |
| 111 | Go promotes writing systems and servers as sets of lightweight |
| 112 | communicating processes, called goroutines, with strong support from the language. |
| 113 | Run thousands of goroutines if you want—and say good-bye to stack overflows. |
| 114 | </p> |
| 115 | |
| 116 | <h3>… fun</h3> |
| 117 | |
| 118 | <p> |
| 119 | Go has fast builds, clean syntax, garbage collection, |
| 120 | methods for any type, and run-time reflection. |
| 121 | It feels like a dynamic language but has the speed and safety of a static language. |
| 122 | It's a joy to use. |
| 123 | </p> |
| 124 | |
Rob Pike | c765c09 | 2009-11-06 22:48:05 -0800 | [diff] [blame] | 125 | <h3>… open source</h3> |
| 126 | |
| 127 | <p> |
Rob Pike | d10f154 | 2009-11-08 22:02:15 -0800 | [diff] [blame] | 128 | <a href="/doc/install.html">Go for it</a>. |
Rob Pike | c765c09 | 2009-11-06 22:48:05 -0800 | [diff] [blame] | 129 | </p> |
| 130 | |
Adam Langley | b9ec2ad | 2009-11-03 19:59:45 -0800 | [diff] [blame] | 131 | </div> |