diff options
Diffstat (limited to 'doc/docs.html')
-rw-r--r-- | doc/docs.html | 312 |
1 files changed, 117 insertions, 195 deletions
diff --git a/doc/docs.html b/doc/docs.html index a86d1714e..f88e930fb 100644 --- a/doc/docs.html +++ b/doc/docs.html @@ -1,204 +1,145 @@ -<!-- title Documentation --> +<!--{ + "Title": "Documentation", + "Path": "/doc/" +}--> -<div class="left-column"> - -<h2 id="learning">Learning Go</h2> +<p> +The Go programming language is an open source project to make programmers more +productive. +</p> <p> -If you're new to Go, we recommend you work through the -<a href="go_tutorial.html">tutorial</a>. The -<a href="go_spec.html">language specification</a> has all the details should -you want to explore. +Go is expressive, concise, clean, and efficient. Its concurrency +mechanisms make it easy to write programs that get the most out of multicore +and networked machines, while its novel type system enables flexible and +modular program construction. Go compiles quickly to machine code yet has the +convenience of garbage collection and the power of run-time reflection. It's a +fast, statically typed, compiled language that feels like a dynamically typed, +interpreted language. </p> + +<div id="manual-nav"></div> + +<h2>Installing Go</h2> + +<h3><a href="/doc/install">Getting Started</a></h3> <p> -Once you've learned a little about the language, -<a href="effective_go.html">Effective Go</a> will help you learn the style and -idioms of programming in Go. +Instructions for downloading and installing the Go compilers, tools, and +libraries. </p> -<h3 id="go_tour"><a href="http://go-tour.appspot.com/">A Tour of Go</a></h3> + +<h2 id="learning">Learning Go</h2> + +<img class="gopher" src="/doc/gopher/doc.png"/> + +<h3 id="go_tour"><a href="http://tour.golang.org/">A Tour of Go</a></h3> <p> An interactive introduction to Go in three sections. The first section covers basic syntax and data structures; the second discusses methods and interfaces; and the third introduces Go's concurrency primitives. Each section concludes with a few exercises so you can practice what you've -learned. You can <a href="http://go-tour.appspot.com/">take the tour online</a> or +learned. You can <a href="http://tour.golang.org/">take the tour online</a> or <a href="http://code.google.com/p/go-tour/">install it locally</a>. </p> -<h3 id="orig_tutorial"><a href="go_tutorial.html">A Tutorial for the Go Programming Language</a></h3> -<p> -The first tutorial. An introductory text that touches upon several core -concepts: syntax, types, allocation, constants, I/O, sorting, printing, -goroutines, and channels. -</p> - -<h3 id="course_notes">Course Notes</h3> +<h3 id="code"><a href="code.html">How to write Go code</a></h3> <p> -Slides from a 3-day course about the Go programming language. -A more thorough introduction than the tutorial. +How to use the <a href="/cmd/go/">go command</a> to fetch, build, and install +packages, commands, and run tests. </p> -<ul> -<li><a href="GoCourseDay1.pdf">Day 1: Basics</a> <small>[270KB PDF]</small></li> -<li><a href="GoCourseDay2.pdf">Day 2: Types, Methods, Interfaces</a> <small>[270KB PDF]</small></li> -<li><a href="GoCourseDay3.pdf">Day 3: Concurrency and Communication</a> <small>[180KB PDF]</small></li> -</ul> <h3 id="effective_go"><a href="effective_go.html">Effective Go</a></h3> <p> A document that gives tips for writing clear, idiomatic Go code. -A must read for any new Go programmer. It augments the tutorial and +A must read for any new Go programmer. It augments the tour and the language specification, both of which should be read first. </p> +<h3 id="appengine"><a href="http://code.google.com/appengine/docs/go/gettingstarted/">Getting Started with Go on App Engine</a></h3> +<p> +How to develop and deploy a simple Go project with +<a href="http://code.google.com/appengine/">Google App Engine</a>. +</p> + <h3 id="go_faq"><a href="go_faq.html">Frequently Asked Questions (FAQ)</a></h3> <p> Answers to common questions about Go. </p> -<h3 id="code"><a href="code.html">How to write Go code</a></h3> +<h3 id="wiki"><a href="http://code.google.com/p/go-wiki/wiki">Go Language Community Wiki</a></h3> +<p>A wiki maintained by the Go community.</p> + +<h2 id="go1">Go version 1</h2> + +<h3 id="go1notes"><a href="/doc/go1.html">Go 1 Release Notes</a></h3> <p> -How to write a new package and how to test code. +A guide for updating your code to work with Go 1. </p> -<h3 id="codelab_wiki"><a href="codelab/wiki/">Codelab: Writing Web Applications</a></h3> +<h3 id="go1compat"><a href="/doc/go1compat.html">Go 1 and the Future of Go Programs</a></h3> <p> -This codelab takes the reader through the creation of a simple wiki web -application. It touches on structs, methods, file I/O, http, regular expressions, -and closures. +What Go 1 defines and the backwards-compatibility guarantees one can expect as +Go 1 matures. </p> -<h3 id="codewalks"><a href="codewalk/">Codewalks</a></h3> +<h2 id="articles">Go Articles</h2> + +<h3 id="blog"><a href="http://blog.golang.org/">The Go Blog</a></h3> +<p>The official blog of the Go project, featuring news and in-depth articles by +the Go team and guests.</p> + +<h4>Codewalks</h4> <p> -Guided tours of Go programs. +Guided tours of Go programs. </p> <ul> <li><a href="/doc/codewalk/functions">First-Class Functions in Go</a></li> <li><a href="/doc/codewalk/markov">Generating arbitrary text: a Markov chain algorithm</a></li> <li><a href="/doc/codewalk/sharemem">Share Memory by Communicating</a></li> +<li><a href="/doc/articles/wiki/">Writing Web Applications</a> - building a simple web application.</li> </ul> -<h3 id="go_for_cpp_programmers"><a href="go_for_cpp_programmers.html">Go for C++ Programmers</a></h3> -<p> -An introduction to Go for C++ programmers. -</p> - -<h2 id="articles">Go Articles</h2> - -<p> -Notable articles from the <a href="http://blog.golang.org/">Go Blog</a>. -</p> - -<h3>Language</h3> - +<h4>Language</h4> <ul> -<li><a href="http://blog.golang.org/2010/04/json-rpc-tale-of-interfaces.html">JSON-RPC: a tale of interfaces</a></li> -<li><a href="http://blog.golang.org/2010/07/gos-declaration-syntax.html">Go's Declaration Syntax</a></li> -<li><a href="http://blog.golang.org/2010/08/defer-panic-and-recover.html">Defer, Panic, and Recover</a></li> -<li><a href="http://blog.golang.org/2010/09/go-concurrency-patterns-timing-out-and.html">Go Concurrency Patterns: Timing out, moving on</a></li> -<li><a href="http://blog.golang.org/2011/01/go-slices-usage-and-internals.html">Go Slices: usage and internals</a></li> +<li><a href="/doc/articles/json_rpc_tale_of_interfaces.html">JSON-RPC: a tale of interfaces</a></li> +<li><a href="/doc/articles/gos_declaration_syntax.html">Go's Declaration Syntax</a></li> +<li><a href="/doc/articles/defer_panic_recover.html">Defer, Panic, and Recover</a></li> +<li><a href="/doc/articles/concurrency_patterns.html">Go Concurrency Patterns: Timing out, moving on</a></li> +<li><a href="/doc/articles/slices_usage_and_internals.html">Go Slices: usage and internals</a></li> <li><a href="http://blog.golang.org/2011/05/gif-decoder-exercise-in-go-interfaces.html">A GIF decoder: an exercise in Go interfaces</a></li> -<li><a href="http://blog.golang.org/2011/07/error-handling-and-go.html">Error Handling and Go</a></li> +<li><a href="/doc/articles/error_handling.html">Error Handling and Go</a></li> </ul> -<h3>Packages</h3> - +<h4>Packages</h4> <ul> -<li><a href="http://blog.golang.org/2011/01/json-and-go.html">JSON and Go</a> - using the <a href="/pkg/json/">json</a> package.</li> -<li><a href="http://blog.golang.org/2011/03/gobs-of-data.html">Gobs of data</a> - the design and use of the <a href="/pkg/gob/">gob</a> package.</li> -<li><a href="http://blog.golang.org/2011/09/laws-of-reflection.html">The Laws of Reflection</a> - the fundamentals of the <a href="/pkg/reflect/">reflect</a> package.</li> -<li><a href="http://blog.golang.org/2011/09/go-image-package.html">The Go image package</a> - the fundamentals of the <a href="/pkg/image/">image</a> package.</li> -<li><a href="http://blog.golang.org/2011/09/go-imagedraw-package.html">The Go image/draw package</a> - the fundamentals of the <a href="/pkg/image/draw/">image/draw</a> package.</li> +<li><a href="/doc/articles/json_and_go.html">JSON and Go</a> - using the <a href="/pkg/encoding/json/">json</a> package.</li> +<li><a href="/doc/articles/gobs_of_data.html">Gobs of data</a> - the design and use of the <a href="/pkg/encoding/gob/">gob</a> package.</li> +<li><a href="/doc/articles/laws_of_reflection.html">The Laws of Reflection</a> - the fundamentals of the <a href="/pkg/reflect/">reflect</a> package.</li> +<li><a href="/doc/articles/image_package.html">The Go image package</a> - the fundamentals of the <a href="/pkg/image/">image</a> package.</li> +<li><a href="/doc/articles/image_draw.html">The Go image/draw package</a> - the fundamentals of the <a href="/pkg/image/draw/">image/draw</a> package.</li> </ul> -<h3>Tools</h3> - +<h4>Tools</h4> <ul> -<li><a href="http://blog.golang.org/2011/03/c-go-cgo.html">C? Go? Cgo!</a> - linking against C code with <a href="/cmd/cgo/">cgo</a>.</li> -<li><a href="http://blog.golang.org/2011/03/godoc-documenting-go-code.html">Godoc: documenting Go code</a> - writing good documentation for <a href="/cmd/godoc/">godoc</a>.</li> +<li><a href="/doc/articles/go_command.html">About the Go command</a> - why we wrote it, what it is, what it's not, and how to use it.</li> +<li><a href="/doc/articles/c_go_cgo.html">C? Go? Cgo!</a> - linking against C code with <a href="/cmd/cgo/">cgo</a>.</li> +<li><a href="/doc/gdb">Debugging Go Code with GDB</a></li> +<li><a href="/doc/articles/godoc_documenting_go_code.html">Godoc: documenting Go code</a> - writing good documentation for <a href="/cmd/godoc/">godoc</a>.</li> <li><a href="http://blog.golang.org/2011/06/profiling-go-programs.html">Profiling Go Programs</a></li> </ul> -<h2 id="tutorials_nonenglish">Non-English Documentation</h2> - -<h3 id="docs_be">Belarusian — Беларуская</h3> - -<ul> -<li><a href="http://www.designcontest.com/show/faq-be">faq-be</a> - Frequently Asked Questions.</li> -</ul> - -<h3 id="docs_cn">Chinese — 中文</h3> +<h2 id="talks">Talks</h2> -<ul> -<li><a href="http://code.google.com/p/golang-china/">golang-china</a> - a broad range of Go documentation.</li> -<li><a href="http://code.google.com/p/ac-me/downloads/detail?name=fango.pdf">Effective Go and Tutorial</a></li> -</ul> - -<h3 id="docs_de">German — Deutsch</h3> - -<ul> -<li><a href="http://bitloeffel.de/DOC/golang/go_tutorial_de.html">Eine Anleitung zum Programmieren in Go</a> - the Go Tutorial.</li> -<li><a href="http://bitloeffel.de/DOC/golang/effective_go_de.html">Wirkungsvoll Go programmieren</a> - Effective Go.</li> -<li><a href="http://bitloeffel.de/DOC/golang/code_de.html">Wie man Go-Kode schreibt</a> - How to Write Go Code.</li> -</ul> +<img class="gopher" src="/doc/gopher/talks.png"/> -<h3 id="docs_jp">Japanese — 日本語</h3> -<ul> -<li><a href="http://golang.jp/">golang.jp</a> - Go documentation and news. -</ul> - -<h3 id="docs_kr">Korean — 한국어</h3> -<ul> -<li><a href="http://code.google.com/p/golang-korea">golang-korea</a> - Go documentation and news. -</ul> - -<h3 id="docs_ru">Russian — Русский</h3> -<ul> -<li><a href="http://golanguage.ru/">golanguage.ru</a> - Go documentation. -</ul> - -</div> - - -<div class="right-column"> - -<h2 id="References">References</h2> - -<p>Keep these under your pillow.</p> - -<h3 id="pkg"><a href="/pkg/">Package Documentation</a></h3> -<p> -The built-in documentation for the Go standard library. -</p> - -<h3 id="cmd"><a href="/cmd/">Command Documentation</a></h3> -<p> -The built-in documentation for the Go tools. -</p> - -<h3 id="spec"><a href="go_spec.html">Language Specification</a></h3> -<p> -The official Go Language specification. -</p> - -<h3 id="release"><a href="devel/release.html">Release History</a></h3> -<p>A summary of the changes between Go releases.</p> - -<h3 id="go_mem"><a href="go_mem.html">The Go Memory Model</a></h3> <p> -A document that specifies the conditions under which reads of a variable in -one goroutine can be guaranteed to observe values produced by writes to the -same variable in a different goroutine. +The talks marked with a red asterisk (<font color="red">*</font>) were written +before Go 1 and contain some examples that are no longer correct, but they are +still of value. </p> -<h3 id="debugging_with_gdb"><a href="debugging_with_gdb.html">Debugging Go Code with GDB</a></h3> -<p> -Using GDB to debug Go programs. -</p> - -<h2 id="videos_talks">Videos and Talks</h2> - -<h3 id="writing_web_apps"><a href="http://www.youtube.com/watch?v=-i0hat7pdpk">Writing Web Apps in Go</a></h3> +<h3 id="writing_web_apps"><a href="http://www.youtube.com/watch?v=-i0hat7pdpk">Writing Web Apps in Go</a><font color="red">*</font></h3> <p> A talk by Rob Pike and Andrew Gerrand presented at Google I/O 2011. It walks through the construction and deployment of a simple web application @@ -206,7 +147,7 @@ and unveils the <a href="http://blog.golang.org/2011/05/go-and-google-app-engine See the <a href="/doc/talks/io2011/Writing_Web_Apps_in_Go.pdf">presentation slides</a>. </p> -<h3 id="real_world_go"><a href="http://www.youtube.com/watch?v=7QDVRowyUQA">Real World Go</a></h3> +<h3 id="real_world_go"><a href="http://www.youtube.com/watch?v=7QDVRowyUQA">Real World Go</a><font color="red">*</font></h3> <p> A talk by Andrew Gerrand presented at Google I/O Bootcamp 2011. It gives a broad overview of Go's type system and concurrency model @@ -214,15 +155,22 @@ and provides four examples of Go programs that solve real problems. See the <a href="/doc/talks/io2011/Real_World_Go.pdf">presentation slides</a>. </p> -<h3 id="go_programming"><a href="http://www.youtube.com/watch?v=jgVhBThJdXc">Go Programming</a></h3> +<h3 id="integrated_apps"><a href="http://www.youtube.com/watch?v=Mo1YKpIF1PQ">Building Integrated Apps on Google's Cloud Platform</a></h3> +<p> +A talk by Andrew Gerrand presented at Google Developer Day Japan 2011. +It discusses the development of a web application that runs on Google +App Engine and renders images that it stores on Google Cloud Storage. +</p> + +<h3 id="go_programming"><a href="http://www.youtube.com/watch?v=jgVhBThJdXc">Go Programming</a><font color="red">*</font></h3> <p> A presentation delivered by Rob Pike and Russ Cox at Google I/O 2010. It illustrates how programming in Go differs from other languages through a set of examples demonstrating features particular to Go. These include concurrency, -embedded types, methods on any type, and program construction using interfaces. +embedded types, methods on any type, and program construction using interfaces. </p> -<h3 id="practical_go_programming"><a href="http://osdc.blip.tv/file/4432146/">Practical Go Programming</a></h3> +<h3 id="practical_go_programming"><a href="http://www.youtube.com/watch?v=2-pPAvqyluI">Practical Go Programming</a><font color="red">*</font></h3> <p> This talk presents the development of a complete web application in Go. It looks at design, storage, concurrency, and scaling issues in detail, using @@ -230,63 +178,37 @@ the simple example of an URL shortening service. See the <a href="http://wh3rd.net/practical-go/">presentation slides</a>. </p> -<h3 id="techtalk"><a href="http://www.youtube.com/watch?v=rKnDgT73v8s">The Go Tech Talk</a></h3> +<h4 id="talks_more">More</h4> <p> -An hour-long talk delivered by Rob Pike at Google in October 2009. -The language's first public introduction. (See the <a href="talks/go_talk-20091030.pdf">slides in PDF format</a>.) The language has changed since it was made, -but it's still a good introduction. +See the <a href="http://code.google.com/p/go-wiki/wiki/GoTalks">GoTalks +page</a> at the <a href="http://code.google.com/p/go-wiki/wiki">Go Wiki</a> for +more Go talks. </p> -<h3 id="gocoding_channel"><a href="http://www.youtube.com/gocoding">gocoding YouTube Channel</a></h3> -<p> -A YouTube channel that includes screencasts and other Go-related videos: -</p> -<ul> -<li><a href="http://www.youtube.com/gocoding#p/u/0/jDWBJOXs_iI">Screencast: Writing Go Packages</a> - writing, building, and distributing Go packages.</li> -<li><a href="http://www.youtube.com/watch?v=3brH0zOqm0w">Screencast: Testing Go Packages</a> - writing unit tests and benchmarking Go packages.</li> -</ul> +<h2 id="nonenglish">Non-English Documentation</h2> -<h3 id="jaoo_go"><a href="/doc/ExpressivenessOfGo.pdf">The Expressiveness Of Go</a></h3> <p> -A discussion of the qualities that make Go an expressive and comprehensible -language. The talk was presented by Rob Pike at JAOO 2010. -The recording of the event was lost due to a hardware error. +See the <a href="http://code.google.com/p/go-wiki/wiki/NonEnglish">NonEnglish</a> page +at the <a href="http://code.google.com/p/go-wiki/wiki">Go Wiki</a> for localized +documentation. </p> -<h3 id="oscon_go"><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14760">Another Go at Language Design</a></h3> -<p> -A tour, with some background, of the major features of Go, intended for -an audience new to the language. The talk was presented at OSCON 2010. -See the <a href="http://assets.en.oreilly.com/1/event/45/Another%20Go%20at%20Language%20Design%20Presentation.pdf">presentation slides</a>. -</p> -<p> -This talk was also delivered at Sydney University in September 2010. A video -of the lecture is available -<a href="http://sydney.edu.au/engineering/it/videos/seminar_pike">here</a>. -</p> +<h2 id="community">The Go Community</h2> -<h3 id="emerging_go"><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15464">Go Emerging Languages Conference Talk</a></h3> -<p> -Rob Pike's Emerging Languages Conference presentation delivered in July 2010. See the <a href="http://assets.en.oreilly.com/1/event/45/Go%20Presentation.pdf">presentation slides</a>. Abstract: -</p> -<p><i> -Go’s approach to concurrency differs from that of many languages, even those -(such as Erlang) that make concurrency central, yet it has deep roots. The path -from Hoare’s 1978 paper to Go provides insight into how and why Go works as it -does. -</i></p> - -<h3 id="go_frontend_gcc"><a href="talks/gofrontend-gcc-summit-2010.pdf">The Go frontend for GCC</a></h3> -<p> -A description of the Go language frontend for gcc. -Ian Lance Taylor's paper delivered at the GCC Summit 2010. -</p> +<img class="gopher" src="/doc/gopher/project.png"/> -<h3 id="promo_video"><a href="http://www.youtube.com/watch?v=wwoWei-GAPo">The Go Promo Video</a></h3> -<p> -A short promotional video featuring Russ Cox demonstrating Go's fast compiler. -</p> +<h3 id="mailinglist"><a href="http://groups.google.com/group/golang-nuts">Go Nuts Mailing List</a></h3> +<p>The <a href="http://groups.google.com/group/golang-nuts">golang-nuts</a> +mailing list is for general Go discussion.</p> + +<h3 id="projects"><a href="http://godashboard.appspot.com/project">Go Project Dashboard</a></h3> +<p>A list of external Go projects including programs and libraries.</p> + +<h3 id="irc"><a href="irc:irc.freenode.net/go-nuts">Go IRC Channel</a></h3> +<p><b>#go-nuts</b> on <b>irc.freenode.net</b> is the official Go IRC channel.</p> -</div> +<h3 id="plus"><a href="https://plus.google.com/101406623878176903605/posts">The Go Programming Language at Google+</a></h3> +<p>The Go project's Google+ page.</p> -<div class="end-columns"></div> +<h3 id="twitter"><a href="http://twitter.com/go_nuts">@go_nuts at Twitter</a></h3> +<p>The Go project's official Twitter account.</p> |