Object Relational Mappers are evil (a meditation)

J Kenneth King james at agentultra.com
Wed Dec 16 23:17:23 EST 2009


Neil Cerutti <neilc at norwich.edu> writes:

> On 2009-12-16, J Kenneth King <james at agentultra.com> wrote:
>> The language doesn't encourage anything.  It's just a medium
>> like oil paints and canvas.  A painting can be good or bad
>> despite the medium it is constructed on.  The skill of the
>> painter is what matters.
>
> Technically, oil paints do encourage a certain kind of painting.
> They can be layered on top of old paint easily, and they dry
> slowly, allowing you to slowly "build up" a painting in layers,
> and create effects with texture. If you try doing thse things
> with watercolors, and you'll probably be discouraged.
>
> I think a programming language does encourage a certain kind of
> code. Good code in one language can be poor in another.

It's a weak analogy on my part, but I think I do understand what you
mean here.

In regards to my original point, I think I just came up with a clearer
way to express it:

A language is a thing.  It may have syntax and semantics that bias it
towards the conventions and philosophies of its designers.  But in the
end, a language by itself would have a hard time convincing a human
being to adopt bad practises.

I believe it's the fault of the programmer who adopts those poor
practises.  Surely their acceptance of GOTO statements and
prototype-overloading are signs of their own preferences and ignorance?
It suggests to me that they learnt enough of one language to get by and
stopped thinking critically as soon as they sat in front of their
keyboard.

Throw an idiot behind a Python interpreter and it won't teach them a
damn thing unless they're capable of learning it on their own.  No
matter how well you manage to hard code your conventions into the
language.  Bad code is written by bad programmers, not bad programming
languages.



More information about the Python-list mailing list