Patronizing Language Design?
Nick Sabalausky
a at a.a
Mon Jul 13 14:50:25 PDT 2009
"Walter Bright" <newshound1 at digitalmars.com> wrote in message
news:h3g51a$2e3r$1 at digitalmars.com...
> Here's certainly a different take on language design:
>
> http://blog.objectmentor.com/articles/2009/07/13/ending-the-era-of-patronizing-language-design
>
> I'm not convinced. All my engineering experience supports the idea that
> the larger the project and the more people are involved in it, the better
> off you are with isolation between modules and better enforcement of
> interfaces.
>
> Simply relying on programmers being responsible isn't good enough when
> you've got a high risk application.
>
> What are your experiences?
I've always considered myself a highly responsible coder. But I still make
mistakes. Hell, the best programmers in the world make mistakes. The article
seems to assume that safety features are for irresponsible coders. That's
nonsense. There's always a way to get into some sort of trouble (even if
it's just creating a pile of unmaintainable code), and irresponsible coders
are going find it, because they're the ones who think they don't make
mistakes. What makes a responsible coder responsible is *admitting* that
they're infallible and responsibly using the appropriate tools to catch or
prevent any possible mishaps.
Irresponsibility is skating along the edge of a cliff because "It's ok! I'm
a responsible person!" Responsibility is making sure there's a f*^&* fence
first.
"You can program safe, secure, high quality applications in dynamically
typed languages. People do it all the time..." Yea, I'm sure they do. And
there are a hell of a lot of people who ride motorcycles at 75+ mph without
a helmet on a regular basis, never get into a single accident and live long
productive lives. Doesn't mean it isn't stupid.
The whole article seems screwy anyway:
The author seems to be under the impression that whenever a particular
feature is missing from a language, like metaprogramming or reflection, that
it must be because it was deemed unsafe. Straw-man, anyone?
Also, maybe I'm wrong, but doesn't Ruby (and Python for that matter) lack
direct memory access/management, reinterpret casts, etc? If so, then so much
for the claim that those languages are all about throwing away safety nets
and trusting the programmer. In fact, so much for the whole idea of placing
all responsibility on the programmer because (unless I'm mistaken) *even
those* supposedly "trust-the-programmer" languages know perfectly well not
to truly trust the programmer.
More information about the Digitalmars-d
mailing list