Re: OT: lines of code (was Re: [dwm] jr-patchset up to date)

From: Ville Koskinen <vrkosk_AT_utu.fi>
Date: Wed, 30 Aug 2006 18:49:22 +0300

On Wed, 30 Aug 2006 12:34:55 +0000 (GMT)
David Tweed <tweed314_AT_yahoo.co.uk> wrote:

> One difficulty I have with emphasising minimising the lines of
> code is that it tempts people to design functions which `work
> given that we know other functions f1() and f2() happen to
> produce certain things in a certain way',

Isn't that called Programming by Contract? (Yes, a lame joke.)

> That's why I'm more interested in programs that do one well-defined
> thing rather than lots of vaguely related things. To be fair, I think
> this is the sort of thing Anselm is getting at with `shortest
> program'.

I would rather call it "functional minimalism", although of course I
can only guess at Anselm's motives.

- Functional: it does everything it is supposed to do
- Minimalism: it does everything in the shortest way possible and with
the least amount of bling-bling [0]
- Functional Minimalism: it does everything it is supposed to do in the
shortest way possible and with the least amount of bling-bling, but it
is not minimalist simply for the sake of being minimalist; it also works

I've been using this term privately for some time, so I don't know how
established it is. Wikipedia does have an article about Computing
Minimalism [1], and there are of course many programming books
dedicated to the subject. What you described (small, individual
programs that do one thing well) is the centerpiece of the Unix
philosophy [2], too. Also, a famous quote from Albert Einstein (I've
seen a couple of variations, but this is the most common on):

"Everything should be as simple as possible, but no simpler."

Not to step on anyone's feet, but I think something like the above
definition could work better than simple 10KLOC, although one can (and
should) give 10KLOC as an example of how to achieve the goal with
larger programs!

The term Functional Minimalism seems to in use at least in architecture
and (furniture) design [3].

 [0] bling-bling is a slang term, meaning eye candy, useless "features",
the like
 [1] http://en.wikipedia.org/wiki/Computing_Minimalism
 [2] http://www.faqs.org/docs/artu/
 [3] http://www.google.com/search?q=functional+minimalism

-- 
Ville Koskinen
Received on Wed Aug 30 2006 - 17:49:57 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 14:30:45 UTC