Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Golang Concurrency
Search
Alex Wheeler
November 16, 2017
95
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Golang Concurrency
Alex Wheeler
November 16, 2017
More Decks by Alex Wheeler
See All by Alex Wheeler
Running Rings Around Rack
alexwheeler
0
90
Rewriting Rack: A Functional Approach
alexwheeler
2
170
Man Computer Symbiosis
alexwheeler
0
150
Flipper
alexwheeler
0
140
Transducers
alexwheeler
0
73
Character Encodings
alexwheeler
0
120
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
30 Presentation Tips
portentint
PRO
1
390
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
We Have a Design System, Now What?
morganepeng
55
8.3k
How GitHub (no longer) Works
holman
316
150k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
260
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Transcript
Golang The Future of VTS
• Yes, there will be Vim.
Background • Developed at Google • Born out of frustration
• 1. efficient compilation • 2. efficient execution • 3. ease of programming
Background • make programming fun again • feel of dynamic
language with type safety • run-time that supports GC, concurrency • lightweight flexible type system
Hello, World
Syntax
implicit typing
Concurrency
BUT FIRST… • Concurrency != Parallelism • Concurrency is about
dealing with lots of things at once. • Parallelism is about doing lots of things at once
goroutine • lightweight thread managed by the go runtime •
little memory (~2kb stack space), can spawn millions if you want • go f() starts function f in a new groutine
None
• “Don't communicate by sharing memory; share memory by communicating.”
- Golang • Communicating Sequential Processes - Tony Hoare
<- channels <- • typed structure through which you can
send/receive values using the channel operator • first class values • block by default
sending to channel
receiving from channel
Time for some code
None
None
Vim Support • https://github.com/fatih/vim-go
Further Learning • https://tour.golang.org • brew install go -- cross-compile-common
• #go-nuts on freenode • @askwheeler