Do (not) Repeat Yourself

tags
Don't Repeat Yourself

Notes

Programmers walk a fine line between seeking ecstatic singularities while at the same time enduring dutiful and crushing conformity to correctness and con- vention,

NOTER_PAGE: (6 . 0.22943396226415094)

‘joy’ is contrasted with repetition, something much less desirable and seen as valueless,

NOTER_PAGE: (6 . 0.5418867924528301)

it is often the programmers’ recognition of a pattern already learned through repetition that is most compelling

NOTER_PAGE: (6 . 0.6158490566037735)

In contrast to the practice of belonging, the fun to be had in the pioneering discovery of the novel or unique is isolating.

NOTER_PAGE: (6 . 0.7169811320754716)

repetition is intrinsically intertwined with the development of the craft of programming.

NOTER_PAGE: (6 . 0.7381132075471698)

the better your technique, the longer you can rehearse without becoming bored.

NOTER_PAGE: (7 . 0.19773584905660377)

Far from celebrating the birth of a unique new creation from scratch, it is rather a joyful expression of the pattern that increasingly be- comes physically embodied in the programmer him/herself. Here, the material that one once struggled with, with time becomes something ingrained in ‘one’s fingers’.

NOTER_PAGE: (7 . 0.3132075471698113)

abstraction promises the programmer that if he/she can only get the abstraction right, he/she will never have to deal with a particular kind of problem again.

NOTER_PAGE: (7 . 0.42339622641509433)

Rather than removing the problem, repetition produces increased capacity to deal with the problem

NOTER_PAGE: (7 . 0.5215094339622641)

The fact that experienced programmers might directly write code using concise and ‘correct’ abstractions is more a reflection of their experience than an absolute (and transferable) measure of quality.

NOTER_PAGE: (8 . 0.11547169811320754)

I had to accept that I was only the vehicle for the system expressing its own desire for simplicity.

NOTER_PAGE: (8 . 0.3237735849056604)

the struggles of programming often get pro- jected from programmers onto the code.

NOTER_PAGE: (8 . 0.5418867924528301)

I can no longer come up with meaningful names for things. Have started using names like aa, bb, and aaa. Switching between these abstract symbols seems easier;

NOTER_PAGE: (9 . 0.4226415094339622)

Can no longer remember what task I am currently working on. I start writing down tasks not ‘to do’, but what I’m supposedly ‘doing now’, so that each time I slip, I can refer to the note.

NOTER_PAGE: (9 . 0.500377358490566)

According to the principles of DRY, it would seem that the job of a program- mer is to detect patterns and to fold these into redundancy-free perfection.

NOTER_PAGE: (11 . 0.43849056603773584)

Programming is more akin to an illness, a fever, an obsession. It is like riding a train and never being able to get off.

NOTER_PAGE: (11 . 0.5977358490566037)

compares software design to using methamphetamine, as the ‘speed high is the only state that approximates the feel of a project at its inception. Yes, I understand. Yes, it can be done. Yes, how straightforward. Oh yes, I see’.

NOTER_PAGE: (11 . 0.6618867924528301)

‘once you find the easy way you don’t have to think about it, . . . it will almost do itself’,

NOTER_PAGE: (12 . 0.6166037735849056)

The easier you do it the less you have to do. He who has learned to do nothing with his whole mind and body will have everything done for him.

NOTER_PAGE: (13 . 0.15622641509433963)

In a system where code is a product to be protected and exploited commercially, the efficiency of the process tends to eliminate the usefulness of the programmer; truly efficient coding would lead to a point where the coder him/herself becomes ‘redundant’, expendable.

NOTER_PAGE: (13 . 0.2550943396226415)

The value of free software is the community of developers, documenters, researchers, designers and users which is rather than the ‘shrink-wrapped product’ or ‘killer app’ per se.

NOTER_PAGE: (13 . 0.5652830188679245)

The free software community is a rich tapestry of duplication, forked projects and reinventions of the proverbial wheel.

NOTER_PAGE: (14 . 0.09433962264150943)

maxims, such as ‘Don’t repeat yourself’ only work when they are not taken literally,

NOTER_PAGE: (14 . 0.4362264150943396)