Just a quick observation: writing software is like carving. You start with the computer and all of its potential, and you whittle away the possibilities, constraining the program until you get what you envisioned.
You’re reading Signal v. Noise, a publication about the web by Basecamp since 1999. Happy !
Just a quick observation: writing software is like carving. You start with the computer and all of its potential, and you whittle away the possibilities, constraining the program until you get what you envisioned.
Lu
on 25 Mar 08Let’s leave “carving” for wood, shall we.
mfelix
on 25 Mar 08reminds me of a favorite design quote:
- Antoine de Saint-Exupery
Don Schenck
on 25 Mar 08I do my “carving” on a surfboard. It’s very Zen.
Matt Large
on 25 Mar 08I once worked with someone who suggested it was more like poetry than carving, but I agree with the general artistic principal :)
—Matt
Tyler Karaszewski
on 25 Mar 08No it’s not. You’re not “whittling away the possibilities” from software that already does everything, you’re building them from software that does nothing.
You could say the same thing about anything, really: “Losing weight is like carving. You start with a flabby body and whittle away the parts you don’t want.” “building a road is like carving. You start with infinite possible paths, and whittle away the possibilities until the road only goes one place.”
Or more generally: “Creating anything is like carving, because ‘anything’ is a subset of ‘all things’ and the reduction from the set of all things to a single item is inherently carving-like (somehow, I guess).”
JohnR
on 25 Mar 08I dont know about that, Jamis.
Anonymous Coward
on 25 Mar 08Really, Jamis?
Tim
on 25 Mar 08It’s tough when you’re into something and think it is smart and get trashed by almost everyone…
The thing is that people are right I think. It’s not because it sounds poetic that it’s true or relevant.
Quick observation: writing a blog post is like carving. You start from all the potential of the words and then you whittle away the possibilities constraining the post until you get what you envisioned. And then you hit too hard with your tool and you screw up the whole thing.
Jamis
on 25 Mar 08@Tim, it’s not tough, it’s just people having different points of view and backgrounds. The power of analogy is its ability to discover different views of a subject. And the weakness of analogy is the same thing. I found value in the analogy, and I hope others do, too, but it’s no real surprise to me that some don’t.
Tim
on 25 Mar 08@Jamis, I’m glad you take it like that. There is actually no other way to take it. It’s not really “tough”.
My apologies for being (or trying to be) a smartass. I think I got abducted by the power of internet’s anonymity and got lost in Hahayouresodumbland.
some guy
on 25 Mar 08i’d rather have software be too focused and narrow than try to be everything to everyone.
focused but flexible lets you use it as part of a larger toolchain. the classic example is unix application conventions that let you string together commands with piping to create ad-hoc new ones as needed rather than needing to even write a single line of code.
CJ Curtis
on 26 Mar 08I don’t get it either…sorry Jamis. In carving or sculpture, it’s true that you start with “everything.” But with software, you generally start with nothing, no?
Cedric
on 26 Mar 08I’ve had this same thought actually, so I guess I’m in the minority here.
Primarily in regards to when to unveil features/functionality as they take shape and also in terms of working on the detail areas of a given project (some features take on nooks and crannies as needed).
I think this analogy is directly related to a rapid, iterative process. You build the block of wood through initial rapid feature development and then begin to whittle out the features that make it usable, and recognizable. Also, I think if you develop with frameworks that offer generators/scaffolding, this analogy resonates more, because you are often ‘whittling’ into and out of generated code.
Mark
on 27 Mar 08I like that philosophy, it could have been an old chinese saying :-) I feel somehow the same, however, it is not completely true. “You start with the computer and all of its potential” => that’s certainly true, without this potential, nothing could be made.
But after you ‘carved’ your application, that same potential is still there, waiting for someone else to carve it.
Your statement would be entirely true if you carve the whole OS into a single application without the possibility to do anything else with it, you would even need to ‘carve’ the hardware to achieve that.
I guess no-one wants software to be like that :-)
Justin Knoll
on 27 Mar 08My point today is that, if we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”: the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.
—E.W. Dijkstra
Ernest
on 01 Apr 08God forbid that you carve anything beautiful or intricate. Then people wouldn’t want to look at it. Right?
This discussion is closed.