Managing API use across an organization
Access specifiers in programming languages can be frustrating. Superficially, they seem ok. You use public to mark the methods you want to allow anyone to call, and use private to hide the ones that people shouldn’t call. When you’re writing code, it’s easy enough to make that decision, but there are situations where it would be useful to . . .
I’ve been reading quite a few attempts to define Functional Programming recently. It’s hard because we’ve taken so many paths in the industry. There’s some nexus around immutability, referential transparency, and typing. Each language makes its choices, and — if we are looking at those three qualities — it’s clear that you don’t need all of . . .
If you’ve been in software development for a while, you know that small web applications are ill-suited for massive load. I’m writing this a few days after Black Friday in the US. This year, another large retailer had a site outage, losing tens of millions of dollars in expected sales. The retailer definitely didn’t have a small system, but . . .
I can’t recall when I first heard Nick Bostrom’s Simulation Argument, but I know that it was a long time ago. It seems to resurface in the popular consciousness every few years — often when it is tied to the plot of a movie, or when a celebrity or entrepreneur makes reference to it.
The core of the argument can be found in the . . .
Modeling The Dynamics Of Code And Attention
In conversations about software development, I often ask people whether they’ve heard of Conway’s Law. It’s a doorway to a richer conversation. We can talk about the dynamics of design — how our environment affects us as designers and how the things that we design become part of that environment in a broad feedback loop. Without this . . .
Exploring Structural and Behavioral Abstraction
I’m fascinated by correspondence — when we see the same pattern in more than one place, or even a very different domain. A good example is Postel’s Law, sometimes known as The Robustness Principle. It states that when you are designing components in software you should design them so that they are open to accepting many kinds of input yet . . .
One of my favorite essays from the early 2000s is Clay Shirky’s A Group Is It’s Own Worst Enemy. It describes a dysfunction of on-line communities that is very familiar to us now in the age of social media.Communities often start as free spaces, but eventually chaos and harassment appear. Once they do, quite a bit of the group’s activity . . .