This jumped out at me as well. Something like “once developed, they can be made to run everywhere” is probably a more intuitively reasonable wording that communicates the same intended message.
If you read pg’s essay, his quote—within context—expresses something much more modest than what calcsam is saying within their own context.
There is something ironic, to me, in the bald assertion that “roles and rules” are like programs; it is a topic of hot debate within the software engineering community whether “methodologies”, that is, programs of precisely this sort governing the creation of software by humans, can in fact be written once and run everywhere; they have been the focus of the discipline for over forty years of its history, but the consensus is, I think, tending away from this belief. (Here is a representative article.)
methodologies are a different kettle of fish to something like the rules of running a McD’s.
The former tries to create rules around an essentially creative process. The latter covers something that really is not creative. Big Macs and clean floors are made the same way the world around—so a set of rules can in fact cover just about every likely eventuality in a regular McD’s store.
Not so methodologies which attempt to place a “do it the same every time” framework (learned from such systems as franchise burger joints) to a process that, by it’s nature must be different every time—and also involve creative scope that a set of rigid rules just can’t handle.
My point? Methodologies really can’t be written “like software” (at least not yet), but franchise-operating rules can.
I’m still struggling to explain why this is (to people who ask) without devolving into a “different magisteria” kind of explanation. :P
The irony is that “good sets of rules resemble programs” is an intuition which may appeal most to people with limited understanding and experience of what it takes to create a useful and robust program.
In particular, I strongly doubt that there will be anything McDonalds’-like about a successful effort to raise the rationality waterline.
The further irony: we know that there is a set of rules for McDonald’s which has program-like precision. However, we do not have much evidence that this program is followed with computer-like compliance; and in fact whenever I actually enter a McDonald’s restaurant (which I grant is very seldom, but still) I find blatant evidence of non-compliance: dirty floors, french fries cold and slumped because they’ve sat too long before being served, burgers in similar condition...
More generally the existence of “work to rule” strikes suggests that, even when workers in a given context are popularly conceived to follow program-like rules with computer-like obedience, this is rarely in fact the case and these rules only appear to be effective precisely because workers in fact exert some significant degree of autonomy and judgement in carrying out those rules.
TL;DR: the more you know about either programming or McDonalds, the less grounds you have to think that “good sets of rules resemble programs”.
In particular, I strongly doubt that there will be anything McDonalds’-like about a successful effort to raise the rationality waterline.
Yes I agree. Changing people’s thinking falls into the “creative process” box for me.
However, we do not have much evidence that this program is followed with computer-like compliance
Good point. I guess the rules are “more like guidelines”—but when they’re followed well they lead to a much higher chance of a successful McD’s franchise… (though it’d be interesting to see if that pans out in a study).
Perhaps by analogy to territorial colonization? Programmers are like prospectors, trying to find shiny, expensive spots amid a vast desert of potential code sequences, the overwhelming majority of which are garbage. Once a section of idea-space is found to be valuable and habitable, franchise-builders are like early law enforcement: the law doesn’t have to be perfect, there’s no motherlode to aim for. It just has to lay down some standards the people are willing to accept, and then enforce them consistently enough that society can continue to stabilize.
A law like “don’t murder people for pocket change” that people will accept in New York, they’ll probably accept in Santa Fe too. But a rock that had gold under it in Santa Fe won’t still have gold under it after you carry it back to New York.
I’m not sure you get the issue that is the problem.
think about it by comparing to another creative process: painting art.
What “methodology” can be put in place to always ensure that your art is exceptional?
Sure—you can find techniques that have worked in the past… but if you enforce only one way to paint, then you’ll destroy all creativity… which is kinda the point with art.
For programming—creativity in solving problems is the key. Every problem is different—and sure, there are techniques that have been useful in the past—but if you enforce them, rigidly—it stops a new. creative breakthrough of a solution… and creative breakthroughs—innovative ways of solving problems is kinda the point with programming.
I agree that a set of heuristics are useful… ie the equivalent to your general rules.
but AFAICT, there’s no way that it can ever settle down into a set of rules in the way that laws can. Fundamentally, programming needs to remain fluid and flexible—it needs to always remain a bit of a frontier… to leave it open to new innovations. Just like art will never settle down to be “just one methodology”.
Paul Graham, who wrote something very similar which is referenced in a footnote, most certainly is.
This jumped out at me as well. Something like “once developed, they can be made to run everywhere” is probably a more intuitively reasonable wording that communicates the same intended message.
Point taken, thanks.
If you read pg’s essay, his quote—within context—expresses something much more modest than what calcsam is saying within their own context.
There is something ironic, to me, in the bald assertion that “roles and rules” are like programs; it is a topic of hot debate within the software engineering community whether “methodologies”, that is, programs of precisely this sort governing the creation of software by humans, can in fact be written once and run everywhere; they have been the focus of the discipline for over forty years of its history, but the consensus is, I think, tending away from this belief. (Here is a representative article.)
methodologies are a different kettle of fish to something like the rules of running a McD’s.
The former tries to create rules around an essentially creative process. The latter covers something that really is not creative. Big Macs and clean floors are made the same way the world around—so a set of rules can in fact cover just about every likely eventuality in a regular McD’s store.
Not so methodologies which attempt to place a “do it the same every time” framework (learned from such systems as franchise burger joints) to a process that, by it’s nature must be different every time—and also involve creative scope that a set of rigid rules just can’t handle.
My point? Methodologies really can’t be written “like software” (at least not yet), but franchise-operating rules can.
I’m still struggling to explain why this is (to people who ask) without devolving into a “different magisteria” kind of explanation. :P
Yes to the above, for the most part.
The irony is that “good sets of rules resemble programs” is an intuition which may appeal most to people with limited understanding and experience of what it takes to create a useful and robust program.
In particular, I strongly doubt that there will be anything McDonalds’-like about a successful effort to raise the rationality waterline.
The further irony: we know that there is a set of rules for McDonald’s which has program-like precision. However, we do not have much evidence that this program is followed with computer-like compliance; and in fact whenever I actually enter a McDonald’s restaurant (which I grant is very seldom, but still) I find blatant evidence of non-compliance: dirty floors, french fries cold and slumped because they’ve sat too long before being served, burgers in similar condition...
More generally the existence of “work to rule” strikes suggests that, even when workers in a given context are popularly conceived to follow program-like rules with computer-like obedience, this is rarely in fact the case and these rules only appear to be effective precisely because workers in fact exert some significant degree of autonomy and judgement in carrying out those rules.
TL;DR: the more you know about either programming or McDonalds, the less grounds you have to think that “good sets of rules resemble programs”.
Yes I agree. Changing people’s thinking falls into the “creative process” box for me.
Good point. I guess the rules are “more like guidelines”—but when they’re followed well they lead to a much higher chance of a successful McD’s franchise… (though it’d be interesting to see if that pans out in a study).
Perhaps by analogy to territorial colonization? Programmers are like prospectors, trying to find shiny, expensive spots amid a vast desert of potential code sequences, the overwhelming majority of which are garbage. Once a section of idea-space is found to be valuable and habitable, franchise-builders are like early law enforcement: the law doesn’t have to be perfect, there’s no motherlode to aim for. It just has to lay down some standards the people are willing to accept, and then enforce them consistently enough that society can continue to stabilize.
A law like “don’t murder people for pocket change” that people will accept in New York, they’ll probably accept in Santa Fe too. But a rock that had gold under it in Santa Fe won’t still have gold under it after you carry it back to New York.
I’m not sure you get the issue that is the problem.
think about it by comparing to another creative process: painting art.
What “methodology” can be put in place to always ensure that your art is exceptional? Sure—you can find techniques that have worked in the past… but if you enforce only one way to paint, then you’ll destroy all creativity… which is kinda the point with art.
For programming—creativity in solving problems is the key. Every problem is different—and sure, there are techniques that have been useful in the past—but if you enforce them, rigidly—it stops a new. creative breakthrough of a solution… and creative breakthroughs—innovative ways of solving problems is kinda the point with programming.
I agree that a set of heuristics are useful… ie the equivalent to your general rules.
but AFAICT, there’s no way that it can ever settle down into a set of rules in the way that laws can. Fundamentally, programming needs to remain fluid and flexible—it needs to always remain a bit of a frontier… to leave it open to new innovations. Just like art will never settle down to be “just one methodology”.
Anything you can do reliably will rapidly cease being “exceptional.”
Yes, that’s true.
And in computing—anything that’s not exceptional rapidly ceases to be acceptable.