Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GDGDevFest 2019 - 10 years of Go

GDGDevFest 2019 - 10 years of Go

By Evan Lin @GDG DevFest Taipei 2019 https://www.meetup.com/GDGTaipei/events/263142255/

LINE Developers Taiwan

December 01, 2019
Tweet

More Decks by LINE Developers Taiwan

Other Decks in Programming

Transcript

  1. • 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
  2. 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.
  3. 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.
  4. 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
  5. 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
  6. 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.
  7. 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
  8. 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
  9. 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”
  10. 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
  11. - - 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
  12. YEAR 8-9: 2017-2018 GO’S MOMENTUM - #1 language to learn

    - - 2017/02/16 Go 1.8 2017/08/24 Go 1.9 Go is in demand
  13. 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
  14. 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)
  15. Reference • Go timeline table from Google • Go version

    changes from my blog • The Why Of Go •