$30 off During Our Annual Pro Sale. View Details »

Golang Taipei #45 10th Birthday

Golang Taipei #45 10th Birthday

GoTurns10 slide by Evan Lin @ 2019/11/05 https://www.meetup.com/golang-taipei-meetup/events/264921214/

LINE Developers Taiwan
PRO

November 05, 2019
Tweet

More Decks by LINE Developers Taiwan

Other Decks in Programming

Transcript

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

    View Slide

  2. Who am I ?

    View Slide

  3. 10th birthday limited edition Gopher art!

    View Slide

  4. 10th birthday limited “TAIPEI” edition Gopher art!

    View Slide

  5. Why I Learn Go?
    SECTION ONE

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. Go is fast!

    View Slide

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

    View Slide

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

    View Slide

  13. “Godoc” save your time for documentation

    View Slide

  14. “Godoc” save your time for documentation

    View Slide

  15. The Beginning
    SECTION TWO

    View Slide

  16. ● 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

    View Slide

  17. 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

    View Slide

  18. 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.”

    View Slide

  19. 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.

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

  22. 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.

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. 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”

    View Slide

  26. 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

    View Slide

  27. - 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

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. 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)

    View Slide

  31. How to become expert
    SECTION THREE

    View Slide

  32. View Slide

  33. View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. SHARE! SHARE! Golang Taipei needs speakers

    View Slide

  39. 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

    View Slide

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

    View Slide

  41. Yes!
    GopherCon Taiwan!
    We need your help!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. View Slide

  46. Thank You
    END

    View Slide