Russ Cox Profile Banner
Russ Cox Profile
Russ Cox

@_rsc

Followers
39,297
Following
71
Media
167
Statuses
3,851

Go Hacker. Mistake maker. (he/him)

Joined March 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@_rsc
Russ Cox
9 months
2024 resolution is to stop posting here. Now at . Perhaps also .
1
0
37
@_rsc
Russ Cox
4 years
Kudos to the hackers.
Tweet media one
50
1K
8K
@_rsc
Russ Cox
2 years
why do unix assembly files use a .s extension? someone asked me today, and i didn’t know, so i asked ken. the .s is for source, just like .o is for object.
41
415
2K
@_rsc
Russ Cox
3 years
I wasn’t going to say anything, but since ZDNet has republished the AWS “Sustainability with Rust” blog post, a short thread about why that post is misleading (at best) about Go. 1/
17
352
1K
@_rsc
Russ Cox
3 years
Never understood recruiters who can’t be bothered to do even cursory research about who they send mail to. “We write our backend in Go (if you know Python, Rust, C or C++ we can easily teach it to you).”
50
30
985
@_rsc
Russ Cox
3 years
Knuth is making backwards incompatible changes to fix bugs in something he wrote 54 years ago (TAOCP volume 1, 1968)!
Tweet media one
15
223
817
@_rsc
Russ Cox
6 years
I don't understand why people say git is hard to use. Look how easy it is to list all tags with their dates: $ git for-each-ref --format='%(if)%(committerdate)%(then)%(committerdate)%(else)%(*committerdate)%(end) %(refname:lstrip=2)' refs/tags/*
21
166
793
@_rsc
Russ Cox
3 years
Starting to think that making remote code execution a core feature in Java might not have been the best design choice.
13
66
734
@_rsc
Russ Cox
6 years
Wondering what's going on with Go 2, generics, and error handling? Don't have time to read 100 pages of docs? Watch this 5-minute video. #golang .
7
273
678
@_rsc
Russ Cox
3 years
Personally, instead of reading blog posts that pretend Go vs Rust is some kind of zero sum game, I would much rather focus on ways that Go and Rust complement each other and can work well together. Like this post: 14/14
10
117
655
@_rsc
Russ Cox
8 years
Intel published an open-source machine-readable (non-PDF) description of the x86 instruction set.
7
276
548
@_rsc
Russ Cox
4 years
My 7yo just looked at my computer screen - I was in the middle of a long GitHub issue reply - and asked: Are you doing work? (Yes.) Why aren't you writing programs?
11
29
546
@_rsc
Russ Cox
6 years
Our Software Dependency Problem. (Download and run code from strangers on the internet. What could go wrong?)
16
247
516
@_rsc
Russ Cox
3 years
New blog post “Hardware Memory Models”, first of a short series.
12
146
512
@_rsc
Russ Cox
1 year
“Coroutines for Go”
11
118
482
@_rsc
Russ Cox
4 years
I've just posted two new Go draft designs, one for general file system interfaces and one for embedding files into Go programs. Here's a video introducing the file system interfaces:
14
114
450
@_rsc
Russ Cox
4 years
My mask protects you. Your mask protects me. #Masks4All
Tweet media one
8
96
436
@_rsc
Russ Cox
4 years
Seeing discussion of io/ioutil deprecation in various places. To be clear: in Go, “deprecated” means only “there is a better, preferred way.” It does not mean “will break in the future.” Today’s programs using ioutil.ReadFile and friends will keep working forever. #golang
10
78
436
@_rsc
Russ Cox
2 years
The Go Programming Language and Environment, by Russ Cox, Robert Griesemer, Rob Pike, Ian Lance Taylor, Ken Thompson. #golang Communications of the ACM, May 2022, Vol. 65 No. 5, pp 70-78.
8
127
431
@_rsc
Russ Cox
7 years
Go += Package Versioning. . #golang
13
215
410
@_rsc
Russ Cox
2 years
The “QArt Coder” page is back, now using Go+WebAssembly so that pictures never leave your computer.
Tweet media one
7
62
396
@_rsc
Russ Cox
3 years
Recommended: Shift-based DFAs, by @pervognsen . Tried it out for replacing Go's utf8.Valid. Don't get to see this very often:
Tweet media one
6
70
397
@_rsc
Russ Cox
3 years
Keeping Go's git history nearly linear is one of the best decisions we made. Looking at a GH repo that's all 'merge of this pull request' and PR commits are 'merge of my work branch with my PR branch'. SNR is near zero. Branches can be a great tool, just not for every commit.
14
45
388
@_rsc
Russ Cox
4 years
Seems a bit harsh. Also Obama was president in 2009. #golang
14
17
370
@_rsc
Russ Cox
5 years
Big fan of Rust and not a zealot about language choice. Use the tool that works best for you. There are lots of situations and reasons why Rust might be the right choice for you. And this is a well-written post. But! ... 1/2
4
108
364
@_rsc
Russ Cox
7 years
One of the big secrets of big data: your data is almost always not that big.
@adriancolyer
Adrian Colyer
7 years
Unless your graph is *bigger* than Facebook's, you're probably better off just processing it on a single machine:
Tweet media one
6
205
375
6
200
340
@_rsc
Russ Cox
6 years
The Go team here in Cambridge, MA is looking to hire an engineer to work on the Go compiler. I'm particularly concerned to make sure our job postings are reaching underrepresented groups that might not otherwise see them. Please forward. Thanks! &
8
355
340
@_rsc
Russ Cox
5 years
... Don't make decisions about Go's performance based on a release from mid-2017 (Go 1.9.2). Lots has gotten better since then but especially the garbage collector's handling of very large heaps. Best way to make a #golang program faster: update to the latest version of Go! 2/2
17
74
333
@_rsc
Russ Cox
5 years
Thrilled that Go has popularized pprof, a fantastic cross-language tool! Pprof was written by Sanjay Ghemawat in 2001, in C++ for C++. Moved to Perl, then Go. Open-sourced twice, once in google-perftools (little used) and once with Go. Still language-neutral and still improving.
@PingCAP
TiDB, powered by PingCAP
5 years
Troubled by finding @rustlang programs’ performance bottlenecks online? By integrating pprof-rs in @tikvproject , #TiDB 's storage engine, we can use @golang #pprof to visualize the program’s profiling data. So easy! 😎 Here is our experience:
1
13
44
1
69
327
@_rsc
Russ Cox
4 years
@DanielMorsing Definitely. My first summer job at Bell Labs (in the lab that created Unix) I solved the problem they threw at me using Excel instead. Years later, Jon Bentley memorialized my temerity and laziness in the second edition of Programming Pearls.
Tweet media one
4
17
321
@_rsc
Russ Cox
4 years
Think back to the last 25-person video call you had. Now imagine it lasted 6+ hours, with occasional breaks. And everyone on the call is 7 years old. Welcome to second grade in 2020. It didn’t have to be this way. It shouldn’t be. Vote them all out.
5
42
317
@_rsc
Russ Cox
2 years
when ken chose .s, assembly was source, and source was assembly.
@bahelms1
Barrett Helms
2 years
@_rsc @steveklabnik Well then that begs me to ask why the assembly is considered source and the machine is an object when this whole thing started with my high level source code.
4
1
12
4
30
307
@_rsc
Russ Cox
4 years
I wonder how much easier this would have been to write in Go.
16
19
308
@_rsc
Russ Cox
6 years
Really excited about how Go modules are shaping up for Go 1.11. Last time I checked, about 93% of the ~1000 most popular go get'able packages work out of the box with conversion to modules. #golang
6
68
300
@_rsc
Russ Cox
3 years
Most obviously, if your study claims that C++ uses 34% more energy, 56% more time, and 14% more memory than C, it’s time to reexamine your assumptions. Approximately every C program is a valid C++ program, so C++ can’t lose, especially not that badly! 4/
Tweet media one
13
23
294
@_rsc
Russ Cox
5 years
New blog post: “The Principles of Versioning in Go” #golang If you didn't see my GopherCon Singapore 2018 talk and wonder why the Go modules design diverges from Cargo, Dep, and so on, this is the post for you.
8
111
291
@_rsc
Russ Cox
4 years
Microsoft really understands backward compatibility and not breaking old programs. I have old 386 binaries last compiled in 2005 that run perfectly on Windows 10 on my Surface Pro X, an ARM64 device!
10
40
292
@_rsc
Russ Cox
5 years
We can all stop with the go-prefixed package names now. There is a winner.
@golangweekly
Golang Weekly
5 years
An Introduction to `go-sundheit`: A Health Checking Library for Go -
4
48
204
2
41
288
@_rsc
Russ Cox
5 years
Wisdom on the back of the GoLab conference shirt. #golang
Tweet media one
3
45
280
@_rsc
Russ Cox
3 years
“What NPM Should Do Today To Stop A New Colors Attack Tomorrow”
8
66
282
@_rsc
Russ Cox
7 years
Very sad to discover this was not a public code review (we weren't set up for that yet). Here it is for posterity. #golang
Tweet media one
7
85
280
@_rsc
Russ Cox
7 years
, in case you think your computer is more secure than your phone.
2
71
277
@_rsc
Russ Cox
3 years
Nice frame for “unsafe”: > Go loses its memory safety guarantees if you write concurrent software. Rust loses its memory safety guarantees if you use non-trivial data structures. C++ loses its memory safety guarantees if you use pointers (or references).
4
55
276
@_rsc
Russ Cox
5 years
@golangnuts
Google Go Team
15 years
Hey! Ho! Let's Go! Open Sourcing the Go programming language http://bit.ly/1NxkxC #golang #developer #google
1
52
158
2
71
274
@_rsc
Russ Cox
8 years
My Go Resolutions for 2017 #golang
10
146
273
@_rsc
Russ Cox
4 years
If you ever see a blog post that claims Git makes perfect sense once you learn <FACT>, the author is lying.
27
17
270
@_rsc
Russ Cox
5 years
Yesterday at #Gophercon , @ianlancetaylor presented the motivation for generics in Go and a glimpse of the current design draft. There is a talk summary at (blog version next week) and now the design draft (not proposal!) is updated.
9
94
254
@_rsc
Russ Cox
8 years
Happy 1st Birthday #rustlang from the #golang team. We're excited for your success and wish you even more next year.
1
138
245
@_rsc
Russ Cox
4 years
Three new friends arrived today! #golang
Tweet media one
4
15
242
@_rsc
Russ Cox
2 years
“Transparent Telemetry for Open-Source Projects”
18
47
240
@_rsc
Russ Cox
4 years
Back in Go land, I've just posted an initial draft design for replacing // +build lines with //go:build lines supporting proper boolean syntax. #golang
14
55
242
@_rsc
Russ Cox
4 years
Tweet media one
@realDonaldTrump
Donald J. Trump
4 years
STOP THE COUNT!
281K
87K
580K
0
18
233
@_rsc
Russ Cox
3 years
Programming.
@DavidKaib
David Kaib
3 years
What’s a major problem in your field that is unsolved?
997
135
2K
5
24
230
@_rsc
Russ Cox
4 years
Grep is not for code!? I’ve been doing it all wrong.
@dgryski
Damian Gryski
4 years
Fast and syntax-aware semantic code pattern search for many languages: like grep but for code
2
23
113
7
11
228
@_rsc
Russ Cox
4 years
I don't know why it took me so long to realize that the right answer to the URI vs URL debate is URl.
11
12
226
@_rsc
Russ Cox
5 years
At Google, we've made it very clear to the Go team that they need to worry about themselves and their families. Deadlines will be pushed back, features will be delayed, and that's OK. Work comes second, always! But especially now.
1
42
222
@_rsc
Russ Cox
4 years
Does the radical new architecture have all the old speculative execution vulnerabilities? Asking for a friend.
@intel
Intel
4 years
We’ve taken the traditional CPU design and radically re-architected it. Intel Foveros, an advanced new packaging technology, allows us to stack chiplets in three dimensions – an industry first – and enables performance and efficiency in a package smaller than a dime.
3
5
19
5
27
222
@_rsc
Russ Cox
5 years
It’s like the fortune file came to life.
Tweet media one
3
23
216
@_rsc
Russ Cox
7 years
Like Go, the whole tech industry needs everyone's help, and everyone isn't here. I hope the awfulness of this week catalyzes real change.
4
44
215
@_rsc
Russ Cox
10 years
Gophers are celebrating the deletion of the Go compiler written in C. #golang http://t.co/IVATXp3WF6
Tweet media one
11
235
213
@_rsc
Russ Cox
3 years
On “Trojan Source” Attacks —
6
78
216
@_rsc
Russ Cox
5 years
How many Go developers are there in the world? At least a million, maybe two! Spent a while today catching up on worldwide developer surveys and updated . #golang
3
47
211
@_rsc
Russ Cox
4 years
The computer people who named C have no problem with your one-letter variable names.
@computerfact
Computer Facts
4 years
computer people will chastise you if you use single-letter names for things in your code but also computer people named the most important programming language in the world "c" so who knows
11
142
916
6
15
209
@_rsc
Russ Cox
4 years
What have I done? Sweet Jesus, what have I done?
@matryer
Mat Ryer
4 years
Thinking of leaving Go because generics is now officially coming to the language? I broke out my guitar, and my pale face and channeled my inner Lin-Manuel Miranda. With lyrics from @_rsc , @FiloSottile and even @golang . (I'm as embarrassed as you are.)
40
102
533
7
15
210
@_rsc
Russ Cox
5 years
Apple has outdone themselves with this MacBook Pro keyboard replacement kit. The box doubling as a cover for the broken keyboard underneath (and, bonus!, the touch Bar) continues their excellence in packaging too. A++++. Would buy again!
Tweet media one
6
14
210
@_rsc
Russ Cox
4 years
Ever read a program and “This is full of bugs! How could it possibly have worked until now?” The answer is almost always: because it was tested. The inputs that mattered were tested, and bugs affecting *those* got fixed. But new inputs find new bugs and require new fixes.
1
31
210
@_rsc
Russ Cox
3 years
Should Go bother to add int128? Why/why not? What about int256? #golang
66
31
209
@_rsc
Russ Cox
6 years
New post: "The vgo proposal is accepted. Now what?" #golang
4
86
207
@_rsc
Russ Cox
8 years
Dependency hell is NP-complete, and what you might do about it.
20
147
208
@_rsc
Russ Cox
7 years
Tweet media one
2
36
207
@_rsc
Russ Cox
4 years
@bryanl @_oshell I guess I must be a junior. @rob_pike too.
4
17
207
@_rsc
Russ Cox
7 years
Semantic Import Versioning. #golang
Tweet media one
5
91
205
@_rsc
Russ Cox
3 years
Are disk sector overwrites atomic? Looks like empirically no for HDDs, probably yes for SSDs. This is one of the nicest StackOverflow answers I've ever seen:
4
43
205
@_rsc
Russ Cox
4 years
The Commodore 64 I started out on had a CPU with ~3500 transistors. The iPhone 12 mini in my hand has a CPU with 11.8 billion. An Apple store table with one of each of the four different iPhone 12 models holds more transistors than all the Commodore 64s ever sold! (12M)
11
29
202
@_rsc
Russ Cox
6 years
Irrelevant it is.
@beeman_nl
beeman 🅿️
6 years
You want to stay relevant as a software developer for the next 10 years? These are 3 major things you should focus on: - GraphQL. - Web Assembly. - Web Components. You will most likely end up using it so no better time to start learning it than today! 🔥
193
467
2K
2
20
203
@_rsc
Russ Cox
5 years
Thanks @goinggodotnet for this open letter about try. I wanted to share a few brief thoughts. 1/
@goinggodotnet
William (Bill) Kennedy
5 years
An open letter to the #golang team about the `try` proposal.
28
136
345
5
58
198
@_rsc
Russ Cox
7 years
Want to speak at a Go conference this year? I started a page with useful resources and a list of people who would be happy to help you. #golang
Tweet media one
6
67
192
@_rsc
Russ Cox
7 years
Kavya Joshi @kavya719 is giving an incredible overview of the runtime scheduler and channel implementation. #golang #gophercon
Tweet media one
3
38
190
@_rsc
Russ Cox
3 years
“Go’s Version Control History” #golang
3
48
187
@_rsc
Russ Cox
4 years
I had nothing to do with this, but I'm really happy that Google Meet (aka Hangouts aka GVC) is free for everyone now. It is easily one of my favorite things about working at Google.
4
45
183
@_rsc
Russ Cox
3 years
@kelseyhightower Disagree strongly about the first half. If you want an immutable public ledger, that can be done very efficiently. You don't need to heat the planet to do it.
10
12
189
@_rsc
Russ Cox
5 years
Really enjoying the new #golang panic smiley face^W^W text emoji.
Tweet media one
3
20
187
@_rsc
Russ Cox
3 months
Breaking my Twitter silence because @junyer has passed away, and this is the site where he was most active. I know we had at least a few followers in common. There is a public memorial page of sorts at .
3
36
189
@_rsc
Russ Cox
4 years
Even if you think you know the origin of RMS, EMACS, and GPL, you probably don't. Christopher Kelty's book about open source, Two Bits, contains the most meticulously documented telling I know. See Chapter 6 (p.179 on paper, p.195 on PDF).
6
31
189
@_rsc
Russ Cox
1 year
9
33
172
@_rsc
Russ Cox
3 years
Who controls which code installs as part of your software? There’s only one acceptable answer: you. ‘npm install’ adds: everyone else whose code you depend on. Hence the colors and node-ipc attacks. It will get worse as dependency trees grow. It doesn’t have to be this way.
@_rsc
Russ Cox
3 years
“What NPM Should Do Today To Stop A New Colors Attack Tomorrow”
8
66
282
7
31
174
@_rsc
Russ Cox
6 years
@mattfarina @Crell @sdboyer This is an absolutely fair criticism - we have not handled the community process around dependency management well. The core Go team was not involved early or often enough for that process to lead to a smooth landing. As tech lead for Go, that was my fault, and I apologize.
7
32
170
@_rsc
Russ Cox
8 years
Lock-Free Bugs.
0
96
171
@_rsc
Russ Cox
6 years
New post: "What is Software Engineering?" #golang (and thanks to @TitusWinters for the answer)
6
88
169
@_rsc
Russ Cox
8 years
Fun experiment released today: Python in Go. #golang #python
3
126
171
@_rsc
Russ Cox
5 years
On the flight deck of the USS Midway at #GopherCon !
Tweet media one
5
9
168
@_rsc
Russ Cox
7 years
Really great slide deck. Anyone running production servers should be familiar with the basics here.
@_emfree_
Eben Freeman
7 years
Slides from my #LISA17 talk on "Queueing Theory in Practice":
5
112
369
1
49
166