Over the last 30 years I have written production code in a dozen
different languages.  To me each language was the manifestation
of a different paradidgm, a different mindset, a different
model.  I therefore developed a personal abstraction method that
allowed me to say, "OK, I know what needs to be done.  Now, how
do I do that with THIS tool?" Perhaps, because this all took
place before the internet, grunt programmers simply did not have
access to the language developers.  So that, not once did it
occur to me to say, "What a stupid way to write a language. It
implements functionality A differently than language X.  It must
be a bug or a design flaw."  Yet, today, I see this phenomenon on
every language ML and NG on the web.  It is totally baffling to
me.

A Metaphor:  A young carpenter went to work for a progressive
builder.  The carpenter had learned classical carpentry in his
previous experience.  He loved the feel of a newly sharpened hand
saw, the heft and balance of a good hammer.  But his new employer
had acquired some new fangled contraptions: power saws and nail
guns. When confronted with the nail gun his reaction was: "What a
stupid looking hammer.  Who designed this piece of crap? But,
persisting, he placed a nail between his thumb and index finger
placed the point where he wanted it. With great effort he swung
the gun high and then down, crushing his fingers and firing half
a dozen nails through his hand.

According to the Buddha, expectations are the root of all evil. 
I really know of no other field of endeavor where so many
"professionals" carry so much baggage of expectations into a
totally new place.  Who here has an explanation for this plague
of rigidity?
-- 
"It requires wisdom to understand wisdom:
 the music is nothing if the audience is deaf."
 - Walter Lippman