Slide 1

Slide 1 text

Introduction to The Go Programming Language

Slide 2

Slide 2 text

@peterhellberg

Slide 3

Slide 3 text

September 21, 2007

Slide 4

Slide 4 text

March 28, 20

Slide 5

Slide 5 text

Go 1

Slide 6

Slide 6 text

What is Go?

Slide 7

Slide 7 text

Go is about composition, concurrency, and gophers. ! Keep that in mind.

Slide 8

Slide 8 text

Composition

Slide 9

Slide 9 text

Go is Object Oriented, but: - NO classes - NO subtype inheritance - Interfaces are satisfied implicitly

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

A statically-typed language with syntax loosely derived from that ofC

Slide 12

Slide 12 text

Concise variable declaration and initialization through type inference (x := 0 not int x = 0)

Slide 13

Slide 13 text

Built-in concurrency primitives: - goroutines - channels - select

Slide 14

Slide 14 text

CSP http://en.wikipedia.org/wiki/Communicating_sequential_processes

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

A fully garbage collected language With complete control over memory layout.

Slide 17

Slide 17 text

Compilation Cross c

Slide 18

Slide 18 text

Native machine code (32-bit and 64-bit x86, ARM)

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

‘Batteries included’ standard library

Slide 22

Slide 22 text

net archive database crypto encoding unicode compress

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Hello World!

Slide 26

Slide 26 text

package main ! import “fmt" ! func main() { fmt.Println(“Hello World!”) }

Slide 27

Slide 27 text

Hello World! delivered over HTTP

Slide 28

Slide 28 text

package main ! import ( “fmt" “net/http" ) ! func main() { http.HandleFunc(“/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “Hello", r.URL.Path[1:]) }) ! http.ListenAndServe(“:8080", nil) }

Slide 29

Slide 29 text

curl http://:8080/World! go run hello_server.go

Slide 30

Slide 30 text

25 50 75 100 Oct 09 Oct 10 Oct 11 Oct 12 Oct 13 Popularity Numbers represent search interest relative to the highest point on the chart.

Slide 31

Slide 31 text

– gobyexample.com cAB Reading material BDa – learnxinyminutes.com/docs/go – golang.org/doc