| <!-- 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; |
| console.log(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 --> |
| |
| <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> |
| |
| <div id="fp-videos"> |
| <h1>Go videos</h1> |
| <div class="video"> |
| <a href="http://www.youtube.com/watch?v=jgVhBThJdXc"><img src="/doc/video-snap-io.jpg"></a> |
| <div class="title">"Go Programming"</div> |
| <div class="subtitle">Google I/O Tech Talk</div> |
| </div> |
| <div class="video"> |
| <a href="http://www.youtube.com/watch?v=wwoWei-GAPo"><img src="/doc/video-snap-fastcompiles.jpg"></a> |
| <div class="title">"Fast Compiles"</div> |
| <div class="subtitle">Go Promotional Video</div> |
| </div> |
| <div class="video"> |
| <a href="http://www.youtube.com/gocoding"><img src="/doc/video-snap-gocoding.jpg"></a> |
| <div class="title">Go Youtube Channel</div> |
| <div class="subtitle">Screencasts and more</div> |
| </div> |
| <a class="more" href="/doc/go_learning.html#videos_talks">More videos and talks.</a> |
| </div> |
| |
| <div id="frontpage"> |
| |
| <div id="blog"> |
| <h1>From the <a href="http://blog.golang.org">Go Blog</a>:</h1> |
| <div id="blogFeed">Loading...</div> |
| </div> |
| |
| <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> |
| |
| <p>Go has a small, simple feature set, making it easy to learn.</p> |
| |
| <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>… 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>… 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>… 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> |