SlideShare a Scribd company logo
Getting started with Go
8/7/2023 #golang 2
Ben Jones
Language invented by:
Rob Pike Ken Thompson
8/7/2023 #golang 3
Rob Pike wrote books like…
8/7/2023 #golang 4
Ken Thompson wrote operating
systems like…
8/7/2023 #golang 5
All the cool new stuff is go...
8/7/2023 #golang 6
golang features
• Keep most of expressiveness of dynamic
languages, gain speed
• C-like, statically linked, garbage collected
• Fast compilation
• Nice build / compile tools
• A reaction to C++ but won converts from
python/ruby devs
8/7/2023 #golang 7
Nice dev environment
• go get libraries
$ go get github.com/mefellows/muxy
$ ls $GOPATH/src/github.com/mefellows/muxy
LICENSE README.md examples main.go
muxy scripts version.go Makefile
command log middleware protocol
symptom wercker.yml
8/7/2023 #golang 8
No unused stuff
8/7/2023 #golang 9
http://tour.golang.org
http://play.golang.org
Run everywhere
• X-Compile is trivial
$ GOOS=windows GOARCH=386 go build -o egroupexpand.exe
egroupexpand.go
$ ls -l
total 19344
-rwxr-xr-x 1 ben staff 5445348 Aug 27 10:33 egroupexpand
-rwxr-xr-x 1 ben staff 4449792 Sep 29 10:44
egroupexpand.exe
-rw-r--r-- 1 ben staff 3075 Aug 27 10:33
egroupexpand.go
• No worrying about dependency versions:
[bejones@aiadm060 ~]$ python -V
Python 2.6.6
8/7/2023 #golang 10
OO without loads of cruft
• types and values instead of classes and
objects
• methods on any user-defined type
• polymorphism with interfaces
• namespacing with exports
• no inheritance
• can extend types by embedding
8/7/2023 #golang 11
Concurrency
• concurrency not parallelism (though
GOMAXPROCS can help with latter)
• “Do not communicate by sharing memory;
instead share memory by communicating”
• Goroutines: function executing concurrently
with other goroutines in same address space
• created by prefixing func or method call with “go”
• Channels - pipes that connect goroutines
8/7/2023 #golang 12
learning resources
• http://tour.golang.org
• https://golang.org/doc/effective_go.html
• https://golang-for-python-
programmers.readthedocs.org/en/latest/
• http://blog.golang.org/concurrency-is-not-
parallelism
• http://www.youtube.com/watch?v=jgVhBThJ
dXc
• https://www.golang-book.com
8/7/2023 #golang 13

More Related Content

Similar to lightning_go.pptx

A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Golang taipei #45 10th birthday
Golang taipei #45 10th birthdayGolang taipei #45 10th birthday
Golang taipei #45 10th birthday
Evan Lin
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
Marcin Pasinski
 
Gomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidGomobile: gophers in the land of Android
Gomobile: gophers in the land of Android
Jovica Popovic
 
welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?
sangam biradar
 
Google GO
Google GOGoogle GO
Google GO
Ajay Gahlot
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
Technology Parser
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
Simon Hewitt
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
Bo-Yi Wu
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Go programing language
Go programing languageGo programing language
Go programing language
Ramakrishna kapa
 
Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017
Codemotion
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
Mayflower GmbH
 
Golang skills session1: introduction
Golang skills session1: introductionGolang skills session1: introduction
Golang skills session1: introduction
sofianinho
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
Equaleyes Solutions Ltd.
 
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Codemotion
 
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Codemotion
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
Samuel Lampa
 

Similar to lightning_go.pptx (20)

A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
Golang taipei #45 10th birthday
Golang taipei #45 10th birthdayGolang taipei #45 10th birthday
Golang taipei #45 10th birthday
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
 
Gomobile: gophers in the land of Android
Gomobile: gophers in the land of AndroidGomobile: gophers in the land of Android
Gomobile: gophers in the land of Android
 
welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?welcome to gopherlabs - why go (golang)?
welcome to gopherlabs - why go (golang)?
 
Google GO
Google GOGoogle GO
Google GO
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Go programing language
Go programing languageGo programing language
Go programing language
 
Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Golang skills session1: introduction
Golang skills session1: introductionGolang skills session1: introduction
Golang skills session1: introduction
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
 
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
 
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
 

More from ssuser4ca1eb

go.ppt
go.pptgo.ppt
go.ppt
ssuser4ca1eb
 
Von Neuman vs Harward.docx
Von Neuman vs Harward.docxVon Neuman vs Harward.docx
Von Neuman vs Harward.docx
ssuser4ca1eb
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptx
ssuser4ca1eb
 
12429908.ppt
12429908.ppt12429908.ppt
12429908.ppt
ssuser4ca1eb
 
13009690.ppt
13009690.ppt13009690.ppt
13009690.ppt
ssuser4ca1eb
 
UNIT 3.pptx
UNIT 3.pptxUNIT 3.pptx
UNIT 3.pptx
ssuser4ca1eb
 
Ch01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptxCh01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptx
ssuser4ca1eb
 
Lec01_Course_Overview.ppt
Lec01_Course_Overview.pptLec01_Course_Overview.ppt
Lec01_Course_Overview.ppt
ssuser4ca1eb
 

More from ssuser4ca1eb (8)

go.ppt
go.pptgo.ppt
go.ppt
 
Von Neuman vs Harward.docx
Von Neuman vs Harward.docxVon Neuman vs Harward.docx
Von Neuman vs Harward.docx
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptx
 
12429908.ppt
12429908.ppt12429908.ppt
12429908.ppt
 
13009690.ppt
13009690.ppt13009690.ppt
13009690.ppt
 
UNIT 3.pptx
UNIT 3.pptxUNIT 3.pptx
UNIT 3.pptx
 
Ch01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptxCh01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptx
 
Lec01_Course_Overview.ppt
Lec01_Course_Overview.pptLec01_Course_Overview.ppt
Lec01_Course_Overview.ppt
 

Recently uploaded

Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 

Recently uploaded (20)

Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 

lightning_go.pptx

  • 1.
  • 2. Getting started with Go 8/7/2023 #golang 2 Ben Jones
  • 3. Language invented by: Rob Pike Ken Thompson 8/7/2023 #golang 3
  • 4. Rob Pike wrote books like… 8/7/2023 #golang 4
  • 5. Ken Thompson wrote operating systems like… 8/7/2023 #golang 5
  • 6. All the cool new stuff is go... 8/7/2023 #golang 6
  • 7. golang features • Keep most of expressiveness of dynamic languages, gain speed • C-like, statically linked, garbage collected • Fast compilation • Nice build / compile tools • A reaction to C++ but won converts from python/ruby devs 8/7/2023 #golang 7
  • 8. Nice dev environment • go get libraries $ go get github.com/mefellows/muxy $ ls $GOPATH/src/github.com/mefellows/muxy LICENSE README.md examples main.go muxy scripts version.go Makefile command log middleware protocol symptom wercker.yml 8/7/2023 #golang 8
  • 9. No unused stuff 8/7/2023 #golang 9 http://tour.golang.org http://play.golang.org
  • 10. Run everywhere • X-Compile is trivial $ GOOS=windows GOARCH=386 go build -o egroupexpand.exe egroupexpand.go $ ls -l total 19344 -rwxr-xr-x 1 ben staff 5445348 Aug 27 10:33 egroupexpand -rwxr-xr-x 1 ben staff 4449792 Sep 29 10:44 egroupexpand.exe -rw-r--r-- 1 ben staff 3075 Aug 27 10:33 egroupexpand.go • No worrying about dependency versions: [bejones@aiadm060 ~]$ python -V Python 2.6.6 8/7/2023 #golang 10
  • 11. OO without loads of cruft • types and values instead of classes and objects • methods on any user-defined type • polymorphism with interfaces • namespacing with exports • no inheritance • can extend types by embedding 8/7/2023 #golang 11
  • 12. Concurrency • concurrency not parallelism (though GOMAXPROCS can help with latter) • “Do not communicate by sharing memory; instead share memory by communicating” • Goroutines: function executing concurrently with other goroutines in same address space • created by prefixing func or method call with “go” • Channels - pipes that connect goroutines 8/7/2023 #golang 12
  • 13. learning resources • http://tour.golang.org • https://golang.org/doc/effective_go.html • https://golang-for-python- programmers.readthedocs.org/en/latest/ • http://blog.golang.org/concurrency-is-not- parallelism • http://www.youtube.com/watch?v=jgVhBThJ dXc • https://www.golang-book.com 8/7/2023 #golang 13