Point 2 in this advice to new developers is

"Never use a plugin which you can't write yourself"

I think this is really bad advice, although his less extreme version -- that you should try to read and understand other people's libraries -- is actually good, and not really the same thing.

Arguments about the merits of programming paradigms always concentrate on what's best in the abstract, or their suitability to different problem domains or to the shape and size of either the project team or the codebase or both.

And the comments sections on those posts are full of people saying "I'm an FP person" or "I'm an OO guy", but they always elide the fact that different developers' talents and skills and temperaments are different, and that it is these factors that determine which languages we feel the most comfortable in.

And the same goes for libraries. Writing a library to work in all sorts of contexts to meet a complex and widely-used protocol is a very different job from writing a web app: we shouldn't expect the same person to be good at both, or even be capable of both. I'm very grateful for all the libraries out there written by developers with talents which are very different from my own. Doing everything yourself is for castaways and cranks. You live in a civilisation, take advantage of it.

The problem here might be that we've taken the maxim "computers are universal machines" and applied it to our own brains, which are neither universal nor machines.

I think this may be why functional programming fans get up peoples' noses so much. We've found solutions which satisfy us at a deep level and we often act like this happiness comes only from the fact that we're smart enough to live up to an abstract idea of the right way to do programming, not from the way our own particular minds work. And then we act as if this is because of our intelligence or talent, not our temperament and taste.


Comments

comments powered by Disqus