blob: 411558a2e067c9e2e60cb93581e35ef361f83d73 [file] [log] [blame] [view]
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001# Go talks
2
3Check out http://talks.golang.org for presentations for some of the talks.
4
5# Official
6
7## Introductory Talks
8
9An introduction to Go.
10
11### Russ Cox's Tour of Go
12
13[[video and discussion](http://research.swtch.com/gotour)]
14
15Three things that make Go fast, fun, and productive:interfaces, reflection, and concurrency. Builds a toy web crawler to demonstrate these.
16
17### Go: a simple programming environment
18
19[[video](http://vimeo.com/53221558)]
20[[another video](http://vimeo.com/69237265)]
21[[slides](http://talks.golang.org/2012/simple.slide)]
22
23Go is a general-purpose language that bridges the gap between efficient statically typed languages and productive dynamic language. But its not just the language that makes Go special Go has broad and consistent standard libraries and powerful but simple tools.
24
25This talk gives an introduction to Go, followed by a tour of some real programs that demonstrate the power, scope, and simplicity of the Go programming environment.
26
27### Get Started with Go
28
29[[video](http://www.youtube.com/watch?v=2KmHtgtEZ1s)]
30
31Get a feel for the language and its standard libraries and tools in thissession, where we go through installing Go and writing some simple but useful
32programs.
33
34### Go Programming
35
36[[video](http://www.youtube.com/watch?v=jgVhBThJdXc)] [[code](http://talks.golang.org/2010/io/)]
37
38A presentation delivered by Rob Pike and Russ Cox at Google I/O 2010. It
39illustrates how programming in Go differs from other languages through a set of
40examples demonstrating features particular to Go. These include concurrency,
41embedded types, methods on any type, and program construction using interfaces.
42
43### The Go Tech Talk
44
45[[video](http://www.youtube.com/watch?v=rKnDgT73v8s)]
46[[slides](http://talks.golang.org/2009/go_talk-20091030.pdf)]
47
48An hour-long talk delivered by Rob Pike at Google in October 2009.
49The language's first public introduction. The language has changed since it was made,
50but it's still a good introduction.
51
52## Development in Go
53
54### Writing Web Apps in Go
55
56[[video](http://www.youtube.com/watch?v=-i0hat7pdpk)] [[slides](http://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf)]
57
58A talk by Rob Pike and Andrew Gerrand presented at Google I/O 2011.
59It walks through the construction and deployment of a simple web application
60and unveils the [Go runtime for App Engine](http://blog.golang.org/2011/05/go-and-google-app-engine.html).
61
62### Real World Go
63
64[[video](http://www.youtube.com/watch?v=7QDVRowyUQA)] [[slides](http://talks.golang.org/2011/Real_World_Go.pdf)]
65
66A talk by Andrew Gerrand presented at Google I/O Bootcamp 2011.
67It gives a broad overview of Go's type system and concurrency model
68and provides four examples of Go programs that solve real problems.
69
70### Building Integrated Apps on Google's Cloud Platform
71
72[[video](http://www.youtube.com/watch?v=Mo1YKpIF1PQ)]
73
74A talk by Andrew Gerrand presented at Google Developer Day Japan 2011.
75It discusses the development of a web application that runs on Google
76App Engine and renders raytraced that it stores on Google Cloud Storage.
77
78### High Performance Apps with Go on App Engine
79
80Google I/O, May 2013
81
82[[video](http://www.youtube.com/watch?v=fc25ihfXhbg)] [[slides](http://talks.golang.org/2013/highperf.slide)]
83
84### Practical Go Programming
85
86[[video](http://www.youtube.com/watch?v=2-pPAvqyluI)] [[slides](http://wh3rd.net/practical-go)] [[code](http://github.com/nf/goto)]
87
88This talk presents the development of a complete web application in Go.
89It looks at design, storage, concurrency, and scaling issues in detail, using
90the simple example of an URL shortening service.
91
92### Lexical Scanning in Go
93
94[[video](http://www.youtube.com/watch?v=HxaD_trXwRE)]
95
96This GTUG talk by Rob Pike discusses the detailed design of a lexical scanner that uses Go's
97features in expressive combinations. (The discussion near the end about avoiding goroutines
98at initialization is obsolete: Go 1 allows goroutines in init functions so the extra complexity
99is unnecessary.)
100
101### Go in Production
102
103Google I/O, June 2012
104
105[[video](http://www.youtube.com/watch?v=kKQLhGZVN4A)]
106
107Since Go's release in 2009 many companies (besides Google, of course) have used the language to build cool stuff. In this session programmers from several companies will share their first-hand experience using Go in production environments.
108
109### Go: code that grows with grace
110
111[[video](http://vimeo.com/53221560)]
112[[slides](http://talks.golang.org/2012/chat.slide)]
113
114One of the Go Programming Languages key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. In this talk I describe a simple chat roulette server that matches pairs of incoming TCP connections, and then use Gos concurrency mechanisms, interfaces, and standard library to extend it with a web interface and other features. Although the function of the program changes dramatically, the inherent flexibility of Go allows the original design to remain intact as it grows.
115
116## Concurrency in Go
117
118### Go concurrency patterns
119
120Google I/O, June 2012
121
122[[video](http://www.youtube.com/watch?v=f6kdp27TYZs)]
123
124### Advanced Concurrency Patterns
125
126[[video](https://www.youtube.com/watch?v=QDDwwePbDtw)]
127[[slides](http://talks.golang.org/2013/advconc.slide)]
128
129Google I/0, May 2013
130
131Concurrency is the key to designing high performance network services. This talk expands on last year's popular Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code.
132
133## Design of Go
134
135### The Expressiveness Of Go
136
137[[slides](http://talks.golang.org/2010/ExpressivenessOfGo-2010.pdf)]
138
139A discussion of the qualities that make Go an expressive and comprehensible
140language. The talk was presented by Rob Pike at JAOO 2010.
141The recording of the event was lost due to a hardware error.
142
143### Another Go at Language Design
144
145[[video](http://sydney.edu.au/engineering/it/videos/seminar_pike) from Sydney University]
146[[slides](http://assets.en.oreilly.com/1/event/45/Another%20Go%20at%20Language%20Design%20Presentation.pdf)]
147
148A tour, with some background, of the major features of Go, intended for
149an audience new to the language. The talk was presented at OSCON 2010.
150This talk was also delivered at Sydney University in September 2010.
151
152
153
154### Go Emerging Languages Conference Talk
155
156[[slides](http://assets.en.oreilly.com/1/event/45/Go%20Presentation.pdf)] [[video](http://confreaks.com/videos/115-elcamp2010-go)]
157
158Rob Pike's Emerging Languages Conference presentation delivered in July 2010. Talk abstract:
159
160> Go’s approach to concurrency differs from that of many languages, even those
161> (such as Erlang) that make concurrency central, yet it has deep roots. The path
162> from Hoare’s 1978 paper to Go provides insight into how and why Go works as it
163> does.
164
165## Miscellaneous
166
167### The Go frontend for GCC
168
169[[paper](http://talks.golang.org/2010/gofrontend-gcc-summit-2010.pdf)]
170
171A description of the Go language frontend for gcc.
172Ian Lance Taylor's paper delivered at the GCC Summit 2010.
173
174### The Go Promo Video
175
176[[video](http://www.youtube.com/watch?v=wwoWei-GAPo)]
177
178A short promotional video featuring Russ Cox demonstrating Go's fast compiler.
179
180### Meet the Go team
181
182Google I/O, June 2012
183
184[[video](http://www.youtube.com/watch?v=sln-gJaURzk)]
185
186A panel discussion with David Symonds, Robert Griesemer, Rob Pike, Ken Thompson, Andrew Gerrand, and Brad Fitzpatrick.
187
188### Fireside Chat with Go team
189
190Google I/0, May 2013
191
192[[video](http://www.youtube.com/watch?v=p9VUCp98ay4)]
193
194A fireside chat with Andrew Gerrand, Brad Fitzpatrick, David Symonds, Ian Lance Taylor, Nigel Tao, Rob Pike, Robert Griesemer, Sameer Ajmani.
195
196# Unofficial
197
198Talks by members of the community.
199
200### Let's Go, or introduction to Go
201
202[[video (starting at 14:35)](http://live.digicast.ru/view/1582)] [[slides](http://talks.godoc.org/github.com/AlekSi/LetsGo/lets-go.slide)] [[source](https://github.com/AlekSi/LetsGo)]
203
204This talk gives an introduction to Go in Russian.