Object Relational Mappers are evil (a meditation)
aioe.org at technicalbloke.com
Wed Dec 16 16:26:01 CET 2009
J Kenneth King wrote:
> Steven D'Aprano <steve at REMOVE-THIS-cybersource.com.au> writes:
>> On Fri, 11 Dec 2009 19:20:21 -0500, Steve Holden wrote:
>>> Hear, hear!
>> That's all very well, but some languages and techniques encourage the
>> programmer to write bad code.
> That's just BS.
> Bad code doesn't just write itself. Programmers write bad code. And
> ignorance is not an excuse.
> Just because a language allows a programmer to write sloppy code doesn't
> put the language at fault for the bad code programmers write with it.
Okay, as long as you realize the corollary of your argument is:
It is impossible for a language to encourage programmers to write good
code and promote good programming practices by design.
I'm not sure that's entirely true either.
I think python's "one way to do something" design philosophy goes some
way toward that, as does Smalltalk's enforced message passing. I think
PHP's superglobals and namespacing encourage bad practices (or used to
back in the day), as do Basic's GOTO and Ecmascript's prototype overriding.
Surely a language CAN be said to encourage kludges and sloppiness if it
allows a good way and a bad way and makes the bad way much easier to
implement or understand for noobs.
More information about the Python-list