Slide 1

Slide 1 text

Go’s 10th Birthday Golang Taipei #45 November 2019 Evan Lin – @Evan_Lin This Presentation was developed by:

Slide 2

Slide 2 text

Who am I ?

Slide 3

Slide 3 text

10th birthday limited edition Gopher art!

Slide 4

Slide 4 text

10th birthday limited “TAIPEI” edition Gopher art!

Slide 5

Slide 5 text

Why I Learn Go? SECTION ONE

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Go is fast!

Slide 11

Slide 11 text

“gofmt/goimport” save your time for coding convention / style

Slide 12

Slide 12 text

“Go test” save your time for preparing and running testing

Slide 13

Slide 13 text

“Godoc” save your time for documentation

Slide 14

Slide 14 text

“Godoc” save your time for documentation

Slide 15

Slide 15 text

The Beginning SECTION TWO

Slide 16

Slide 16 text

● Rob and Robert shared same office. ● Actual swivel chairs involved. ● Just like XKCD, but with lightsabers instead of swords. 00. YEAR 0: 2007-2009 GO’S ORIGINS Rob Pike is waiting 50 minutes for a C++ Program to Compile Rob Pike Robert Griesemer inventing a new programming language

Slide 17

Slide 17 text

01. BACKGROUND THE REASON FOR GO. What changed everything for us. Goals for Go Go was designed by and for people who write—and read and debug and maintain—large software systems. Go's purpose is not research into programming language design. Go's purpose is to make its designers' programming lives better. ELIMINATE SLOWNESS ELIMINATE CLUMSINESS IMPROVE EFFECTIVENESS IMPROVE SCALE

Slide 18

Slide 18 text

BRIAN W. KERNIGHAN “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”

Slide 19

Slide 19 text

01. YEAR 0- GO 1.0: HELLO WORLD 2009 Happy Gopher Day After 15 months, Go is open sourced on November 10, 2009 2009/11/10 Go open-sourced.

Slide 20

Slide 20 text

YEAR 1 - 2010 Spreading the word 2010: The early years: The days when Rob, Russ, et. al. would travel around to conferences to talk about Go. 2010/03/18: Go Blog 2010/06/23: Go course 2010/09/15: Go Playground

Slide 21

Slide 21 text

YEAR 3- 2012 FOO March 2012 - Go reaches 1.0 Significance and importance of a compatibility promise in modern software development 2012/03/28: Go 1.0

Slide 22

Slide 22 text

YEAR 4 - 2013 Early Adoption Language Go 1.1 release. Race Detector. Performance improvements to GC. `map`. Scheduler has been re-written. ● 6-month release cycle ● 1st Go conference held (Tokyo Japan) - Docker release (written in Go) 2013/May Go 1.1 2013/Aug Docker released.

Slide 23

Slide 23 text

YEAR 5 - 2014 Getting BIG Language Go 1.3 released. Stack improvements (now allocated contiguous segments of memory), linker overhaul, 1.4 release. - Official support for Android golang.org/x/mobile. DVCS moves from mercurial to git. go generate introduced April: Gophercon, held in Denver Kuberenetes is open sourced 1st US & European conferences ● 500 contributors Kuberrnetes open-sourced in June 2014/Jun Go 1.3 2014/Jun Kubernetes open-sourced. 2014/Dec Go 1.4

Slide 24

Slide 24 text

YEAR 6 - 2015 COMMUNITY Go 1.5 ● Go compiler rewritten in Go ○ If you want to build go after 1.5, you need to install go 1.4.2 first. ● Garbage collector re-engineered concurrently ● Women Who Go & GoBridge born ● 1st Indian & Chinese conferences ● Experimental support for “vendoring” (using GO15VENDOREXPERIMENT) 2015/Aug Go 1.5

Slide 25

Slide 25 text

YEAR 7 - 2016 HTTP2 2016/02/13 Go 1.6 2016/08/15 Go 1.7 Go 1.6 ● HTTP/2 & Context introduced ● 1st Lat Am & Middle East conferences ● Top 5 most loved languages (SO) ● 1st Go user survey ● 1000 contributors ● Default “GO15VENDOREXPERIMENT” on Go 1.7 ● Context package ● Remove “GO15VENDOREXPERIMENT”

Slide 26

Slide 26 text

YEAR 8- 2017 1 MILLION 2017/02/16 Go 1.8 2017/08/24 Go 1.9 GO 1.8 ● Plugin: Package loading at runtime. ● `go fix` support context issue “golang.org/x/net/context” into standard library “context”. ● GC < ms pauses Go 1.9 ● Type aliases ● #1 language developers want to use (1st time) ● 1 million (estimated) users ● 13 conferences ● 1st contributor summit

Slide 27

Slide 27 text

- 7.1% of developers use Go in 2018 StackOverflow survey - Up from 4.2% in 2017 - 76% YoY growth of Go users - 700,000+ new users YEAR 8-9: 2017-2018 GO’S GROWTH 2017/02/16 Go 1.8 2017/08/24 Go 1.9 Go has ~1.6M users worldwide

Slide 28

Slide 28 text

YEAR 8-9: 2017-2018 GO’S MOMENTUM - #1 language to learn in 2018 on HackerRank (38% of responses) - #3 language for hiring posts on Hacker News - #1 Median Pay and #1 Future Language (23% of responses) on 2017 O’Reilly Dev Salary Survey 2017/02/16 Go 1.8 2017/08/24 Go 1.9 Go is in demand

Slide 29

Slide 29 text

YEAR 9- 2018 Modules 2018/02/16: Go 1.10 2018/08/24: Go 1.11 Go 1.10 ● Note: your need write “1.10” (not 1.10) in travis ci. ● Vgo paper, and vgo arrived. Go 1.11 ● Go modules introduced ● Port to WebAssembly ● More contributions from outside the Go team (1st time) ● 19 Go conferences ● Go new brand & logo ● Go #4 language by PR on github ● #1 lang devs intend to learn

Slide 30

Slide 30 text

YEAR 19- 2019 ARRIVAL 2019/Feb Go 1.12 2019/May Playground 3rd party import. 2019/July Go GDE 2019/Sep Go 1.13 Go 1.12 ● Go vet re-written ● TLS 1.3 support (Enable by tls13=1) ● “GO111MODULE” default auto Go 1.13 ● “GO111MODULE” default auto ● TLS 1.3 by default ● Error Warpping Others ● Go Developer network ● 28 Go conferences ● Major performance gains & memory reduction ● Go module mirror / checksum DB launched ● 2000 contributors (Double in 1 yr)

Slide 31

Slide 31 text

How to become expert SECTION THREE

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

SHARE! SHARE! Golang Taipei needs speakers

Slide 39

Slide 39 text

Map of the Go Community in 2017 Growth ● 76% YoY increase ● 700,000+ new Go developers Inclusion: “I feel welcome in the Go community” ● 400% YoY improvement for women ● 300% YoY improvement for ethnically underrepresented

Slide 40

Slide 40 text

Reference ● Go timeline table from Google ● Go version changes from my blog ● The Why Of Go ● Slide template

Slide 41

Slide 41 text

Yes! GopherCon Taiwan! We need your help!

Slide 42

Slide 42 text

Introducing LINE SPOT 商家搜尋神器LINE SPOT新登場!路痴與懶人的福音 http://official-blog.line.me/tw/archives/81291010.html

Slide 43

Slide 43 text

Introducing LINE SPOT 商家搜尋神器LINE SPOT新登場!路痴與懶人的福音 http://official-blog.line.me/tw/archives/81291010.html

Slide 44

Slide 44 text

LINE Developer Meetup #10 2019/12/04 https://linegroup.kktix.cc/events/20191204-10

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Thank You END