Rob Pike Profile picture
Jul 25, 2018 10 tweets 1 min read Twitter logo Read on Twitter
Thrilled by the announcement (blog.golang.org) of the portable #golang cloud APIs, but I feel the hard-fought lessons and wins from portability are being forgotten.
It was an immeasurably great improvement when my code would run anywhere, unedited. Unix and C pioneered that (really dmr and scj).
But now there are a million incompatible Unix variants and clones.
SQL is a standard that isn't.
And so on and so on.
We're back in the model of differentiation by difference, incompatible difference. I think it's really hard to see how much that loses, how much that costs.
Ironically, I think it's Unix's success, making hardware variance irrelevant, that pushed portability out of people's minds, to our great detriment. Eternal vigilance is required.
So kudos to the Go folks for their attempt at addressing that. (Not my work, don't thank me, although I've wanted this for ages.)
And to everyone here: Push for portability, please.
Things should just work.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Rob Pike

Rob Pike Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @rob_pike

May 29, 2018
The key thing to realize about this process is the need for convergence on a single standard. By analogy with how gofmt helped unify Go code, and hence the community, we need a single way forward for dependency management.
I've been saddened by some of the fractious conversation on the topic lately, and while it's always difficult to make big changes, it's also always possible to do them better with the application of hindsight.
So as things go forward, keep in mind that the community-oriented aspects of dependency management are arguably as important as the technical ones. It will take work on both fronts to succeed.
Read 4 tweets
May 21, 2018
People keep quoting my '5 Rules of Programming'. Actually there were (and still are) 6 rules.
Plus they need proper context. The original version was a handout (we used paper for things back then) for a graduate operating systems course at Princeton in 1987. The rules are the gist of the section on complexity.
Since then, there have appeared many corrupted version of those notes, with bad formatting or punctuation or what have you.
Read 9 tweets
Feb 23, 2018
/bin/true used to be an empty file. The shell would open it, do nothing, and exit with a true status code.
When the Unix Support Group (development organization at Bell Labs) formalized everything, they gave it a long SCCS header, as they did every other file, and then needed to add "exit 0" at the end. The file was therefore infinitely larger than before.
At some point, somewhere (not sure where) it was decided this was poor engineering, probably because the shell spends time reading that big SCCS header as a comment one byte at a time.
Read 8 tweets
Jan 13, 2018
I recently bought a @Cisco SPA112. Good product, but one unforgiveable flaw.
To set it up, one connects over HTTP to an administration port. Standard stuff.
Login "admin", password "admin". Standard stuff, but read on.
Read 14 tweets
Dec 17, 2017
Whenever someone from Java or C++ or C# comes to Go, they look for "class", find "struct", and stop looking. #golang
This misses two fundamental differences between Go and "traditional" OO languages. (But for "traditional" read "recent, mostly C-derived".)
The first is that it's not only structs: Any concrete type can have methods: ints, bools, slices, even funcs: golang.org/pkg/net/http/#…
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(