hachyderm.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
Hachyderm is a safe space, LGBTQIA+ and BLM, primarily comprised of tech industry professionals world wide. Note that many non-user account types have restrictions - please see our About page.

Administered by:

Server stats:

10K
active users

rob pike

I was looking in my old Bell Labs notebooks and found this (handwritten) passage from 1997. It has some arguable points, and I'd probably say much of it differently today (with fewer male pronouns at least), but I found it worth rereading. I was thinking about the book that would eventually become The Practice Of Programming with BWK.

Note that there are whole sentences in this short passage that can't fit in a toot, but the alt text appears unbounded, so grab it there if you care.

Also, life is short, so if you want to engage in debate about how I thought about software 27 years ago by arguing the fine points in this excerpt from a private notebook, I might act unkindly and block you.

@robpike "Don't write code; build software." I'm pretty proud of this concise little mantra I came up with years ago that seems to align with your musings. :)

@robpike Appreciate this (and The Practice of Programming). Thanks!

@robpike This is great! It took me a long time to figure out why programming didn't "feel" like math to me even though most folks talk about it that way. This sums it up really well.

@robpike I'm curious: Given that you've spent a good chunk of your career inventing things that most programmers consider fundamental (operating systems, languages), is there a different phrase than "practicing programmer" that you would use to describe yourself?

@robpike

This text got me thinking about the role of intuition in my work.

It's easy to make something that solves the immediate problem. It's harder to get something that will fit future problems and solutions. Most of code decisions I make daily are based on "gut feeling" of what we will need years later, based on my knowledge of what are our business ambitions, on my experience of scalable patterns, and just, you know, plain intuition of what feels right.

@orsinium @robpike

So true, for every development and design process. Most of one's current effort is devoted to building capabilities that will help future efforts. And "intuition" is the name we give to our ability to assess which current action will best serve us in as-yet-undefined future projects.

@robpike Reminds me of how my brother is the more artsy one, but I still spend much of my time being a solution architect thinking about creative solutions in an ever changing IT landscape.

@robpike the problem with the house analogy (i used it too) is we usually know how a house is built, whereas a programmer seeks to build a florbenflomp which has never been built before. because once it is built, replication is virtually free, and so it usually is unneccessary to build another one. hence every new programming project worth its salt is revolutionary and alienating. you're not just assembling components like an engineer, but also deriving logical foundations like a mathematician.

@lritter @robpike I feel more like a painter or song writer than an engineer most of the time.

@photex @robpike yes! my original forte used to be electronic music composition. all disciplines that manifest completely original works from first principles.

@robpike 💯 btw, I still recommend the testing chapter of PoP fairly frequently!

@robpike amongst other phrasing variations of this, I like how resounding the one from Systemantics is: “A complex system that works is invariably found to have evolved from a simple system that worked” (principles-wiki.net/principles)

principles-wiki.netGall's Law [Principles Wiki]

@robpike programming is design, not engineering.

@multiplex @robpike engineering and programming are both forms of design

@fasterandworse @robpike good point - there was a different point that was being made but words get in the way.

@multiplex @robpike oh I wasn't disagreeing with you, just riffing off you :)

@robpike

"We must understand their properties and how to choose and combine wisely, but we must ignore most of the detail and depend on intuition [...]."

Beautifully put. The art of making.