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.
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/
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).”
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/*
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
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?
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:
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
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.
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.
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
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!
&
... 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
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.
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:
@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.
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.
@_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.
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
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/
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.
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!
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).
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.
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
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.
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.
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
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
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.)
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!
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.
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:
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)
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! 🔥
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.
@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.
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 .
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).
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.
@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.